From 996663c97d4ed3e44c0611f4d08d488e1a72e3da Mon Sep 17 00:00:00 2001 From: Nico von Geyso Date: Mon, 4 Mar 2013 11:18:58 +0100 Subject: [PATCH] diff - use new memory alloc macros --- src/diff.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/diff.c b/src/diff.c index 7440013..de19fdd 100644 --- a/src/diff.c +++ b/src/diff.c @@ -127,7 +127,7 @@ Diff_patch__get__(Diff *self) const git_diff_delta* delta; git_diff_patch* patch; char* str = NULL, *buffer = NULL; - int err; + int err = 0; size_t i, len, num, size; PyObject *py_patch; @@ -135,30 +135,29 @@ Diff_patch__get__(Diff *self) for (i = 0; i < num ; ++i) { err = git_diff_get_patch(&patch, &delta, self->diff, i); - if (err < 0 || git_diff_patch_to_str(&str, patch) < 0) - return Error_set(err); + if (err < 0 || (err = git_diff_patch_to_str(&str, patch)) < 0) + goto error; len = strlen(str) + 1; size = (buffer == NULL) ? len : strlen(buffer) + len; - buffer = realloc(buffer, size * sizeof(char)); + MALLOC(buffer, size, error); if (len == size) strcpy(buffer, str); else strcat(buffer, str); - free(str); + FREE(str); } py_patch = PyUnicode_FromString(buffer); - if (buffer != NULL) - free(buffer); +error: + FREE(str); + FREE(buffer); + FREE_FUNC(patch, git_diff_patch_free); - if (patch != NULL) - git_diff_patch_free; - - return py_patch; + return (err < 0) ? Error_set(err) : py_patch; } static int