From 464aed92cb130fe2afd04a0731b47932a728dab3 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 4 Mar 2013 22:02:56 -0800 Subject: [PATCH] Don't return before freeing references --- native/v8_extensions/git.mm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/native/v8_extensions/git.mm b/native/v8_extensions/git.mm index 488c9d506..960b44da2 100644 --- a/native/v8_extensions/git.mm +++ b/native/v8_extensions/git.mm @@ -156,6 +156,7 @@ namespace v8_extensions { } CefRefPtr GetAheadBehindCounts() { + CefRefPtr result = NULL; git_reference *head; if (git_repository_head(&head, repo) == GIT_OK) { const char* upstreamBranchName; @@ -167,12 +168,11 @@ namespace v8_extensions { const git_oid* upstreamSha = git_reference_target(upstream); git_oid mergeBase; if (git_merge_base(&mergeBase, repo, headSha, upstreamSha) == GIT_OK) { - CefRefPtr result = CefV8Value::CreateObject(NULL); + result = CefV8Value::CreateObject(NULL); int ahead = GetCommitCount(headSha, &mergeBase); result->SetValue("ahead", CefV8Value::CreateInt(ahead), V8_PROPERTY_ATTRIBUTE_NONE); int behind = GetCommitCount(upstreamSha, &mergeBase); result->SetValue("behind", CefV8Value::CreateInt(behind), V8_PROPERTY_ATTRIBUTE_NONE); - return result; } git_reference_free(upstream); } @@ -181,7 +181,10 @@ namespace v8_extensions { git_reference_free(head); } - return CefV8Value::CreateNull(); + if (result != NULL) + return result; + else + return CefV8Value::CreateNull(); } CefRefPtr IsIgnored(const char *path) {