Skip to content

Commit 7a8ac15

Browse files
committed
discard content buffer for actual line content
1 parent 998ec28 commit 7a8ac15

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

generate/templates/manual/src/convenient_patch.cc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,11 @@ PatchData *createFromRaw(git_patch *raw) {
7878
storeLine->num_lines = line->num_lines;
7979
storeLine->content_len = line->content_len;
8080
storeLine->content_offset = line->content_offset;
81-
storeLine->content = strdup(line->content);
81+
char * transferContent = (char *)malloc(storeLine->content_len + 1);
82+
memcpy(transferContent, line->content, storeLine->content_len);
83+
transferContent[storeLine->content_len] = '\0';
84+
storeLine->content = strdup(transferContent);
85+
free((void *)transferContent);
8286
hunkData->lines->push_back(storeLine);
8387
}
8488
patch->hunks->push_back(hunkData);

lib/diff_line.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ var NodeGit = require("../");
22
var DiffLine = NodeGit.DiffLine;
33

44
/**
5-
* Pointer to diff text, not NUL-byte terminated
5+
* The non utf8 translated text
66
* @return {String}
77
*/
88
var rawContent = DiffLine.prototype.content;

test/tests/diff.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,11 @@ describe("Diff", function() {
133133
assert.equal(patches.length, 3);
134134
assert(patches[2].isUntracked());
135135

136-
var oldFile = patches[2].delta.oldFile();
136+
var oldFile = patches[2].oldFile();
137137
assert.equal(oldFile.path(), "wddiff.txt");
138138
assert.equal(oldFile.size(), 0);
139139

140-
var newFile = patches[2].delta.newFile();
140+
var newFile = patches[2].newFile();
141141
assert.equal(newFile.path(), "wddiff.txt");
142142
assert.equal(newFile.size(), 23);
143143
});

0 commit comments

Comments
 (0)