Commit d80e9d55aa2d0629f7f207db42762494075d7854

Vicent Marti 2010-10-31T06:01:46

Fix in-memory commit getters trying to parse Issue 9 on the tracker. The commit object getters for in-memory objects were trying to parse an inexistant on-disk object when one of the commit attributes which were still not set was queried. We now return a NULL value when this happens. Signed-off-by: Vicent Marti <tanoku@gmail.com>

diff --git a/src/commit.c b/src/commit.c
index 4270bcd..d0eb59f 100644
--- a/src/commit.c
+++ b/src/commit.c
@@ -237,7 +237,8 @@ int git_commit__parse_full(git_commit *commit)
 		assert(commit); \
 		if (commit->_name) \
 			return commit->_name; \
-		git_commit__parse_full(commit); \
+		if (!commit->object.in_memory) \
+			git_commit__parse_full(commit); \
 		return commit->_name; \
 	}
 
@@ -258,7 +259,9 @@ time_t git_commit_time(git_commit *commit)
 	if (commit->commit_time)
 		return commit->commit_time;
 
-	git_commit__parse_full(commit);
+	if (!commit->object.in_memory)
+		git_commit__parse_full(commit);
+
 	return commit->commit_time;
 }