From 23c6c70d713bfdd062af6f3963d874e0d0254b51 Mon Sep 17 00:00:00 2001 From: John Haley Date: Tue, 7 Apr 2015 13:28:09 -0700 Subject: [PATCH] Fix freeing a `GitOid` that was passed as a string --- generate/templates/partials/sync_function.cc | 2 +- test/tests/oid.js | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/generate/templates/partials/sync_function.cc b/generate/templates/partials/sync_function.cc index 136f8427c..eaca6480f 100644 --- a/generate/templates/partials/sync_function.cc +++ b/generate/templates/partials/sync_function.cc @@ -82,7 +82,7 @@ from_{{ arg.name }} {%each args|argsInfo as arg %} {%if arg | isOid %} if (args[{{ arg.jsArg }}]->IsString()) { - free(&from_{{ arg.name }}); + free((void *)from_{{ arg.name }}); } {%endif%} {%endeach%} diff --git a/test/tests/oid.js b/test/tests/oid.js index 8efcb12b4..7ec57631d 100644 --- a/test/tests/oid.js +++ b/test/tests/oid.js @@ -1,4 +1,6 @@ var assert = require("assert"); +var path = require("path"); +var local = path.join.bind(path, __dirname); describe("Oid", function() { var NodeGit = require("../../"); @@ -26,4 +28,19 @@ describe("Oid", function() { assert.equal(inspect, "[Oid " + oid + "]"); }); + + it("can convert strings to oids in parameters", function() { + return NodeGit.Repository.open(local("../repos/workdir")) + .then(function(repo) { + var revwalk = repo.createRevWalk(); + revwalk.sorting(NodeGit.Revwalk.SORT.TIME); + + revwalk.push(oid); + + return revwalk.getCommits(1); + }) + .then(function(commits) { + assert.equal(commits[0].toString(), oid); + }); + }); });