diff - use new memory alloc macros

This commit is contained in:
Nico von Geyso
2013-03-04 11:18:58 +01:00
parent 4b89994ff4
commit 996663c97d

View File

@@ -127,7 +127,7 @@ Diff_patch__get__(Diff *self)
const git_diff_delta* delta; const git_diff_delta* delta;
git_diff_patch* patch; git_diff_patch* patch;
char* str = NULL, *buffer = NULL; char* str = NULL, *buffer = NULL;
int err; int err = 0;
size_t i, len, num, size; size_t i, len, num, size;
PyObject *py_patch; PyObject *py_patch;
@@ -135,30 +135,29 @@ Diff_patch__get__(Diff *self)
for (i = 0; i < num ; ++i) { for (i = 0; i < num ; ++i) {
err = git_diff_get_patch(&patch, &delta, self->diff, i); err = git_diff_get_patch(&patch, &delta, self->diff, i);
if (err < 0 || git_diff_patch_to_str(&str, patch) < 0) if (err < 0 || (err = git_diff_patch_to_str(&str, patch)) < 0)
return Error_set(err); goto error;
len = strlen(str) + 1; len = strlen(str) + 1;
size = (buffer == NULL) ? len : strlen(buffer) + len; size = (buffer == NULL) ? len : strlen(buffer) + len;
buffer = realloc(buffer, size * sizeof(char)); MALLOC(buffer, size, error);
if (len == size) if (len == size)
strcpy(buffer, str); strcpy(buffer, str);
else else
strcat(buffer, str); strcat(buffer, str);
free(str); FREE(str);
} }
py_patch = PyUnicode_FromString(buffer); py_patch = PyUnicode_FromString(buffer);
if (buffer != NULL) error:
free(buffer); FREE(str);
FREE(buffer);
FREE_FUNC(patch, git_diff_patch_free);
if (patch != NULL) return (err < 0) ? Error_set(err) : py_patch;
git_diff_patch_free;
return py_patch;
} }
static int static int