Commit 41ad70d0a8d5bf294197be5da26411bc7aa33fcc

Ben Straub 2012-07-16T11:32:24

Use git_blob__getbuf.

diff --git a/src/checkout.c b/src/checkout.c
index 1e02935..61e81c5 100644
--- a/src/checkout.c
+++ b/src/checkout.c
@@ -19,6 +19,7 @@
 #include "buffer.h"
 #include "repository.h"
 #include "filter.h"
+#include "blob.h"
 
 GIT_BEGIN_DECL
 
@@ -34,16 +35,11 @@ typedef struct tree_walk_data
 static int unfiltered_blob_contents(git_buf *out, git_repository *repo, const git_oid *blob_id)
 {
 	int retcode = GIT_ERROR;
-
 	git_blob *blob;
-	if (!git_blob_lookup(&blob, repo, blob_id)) {
-		const void *contents = git_blob_rawcontent(blob);
-		size_t len = git_blob_rawsize(blob);
-		git_buf_clear(out);
-		git_buf_set(out, (const char*)contents, len);
-		git_blob_free(blob);
-		retcode = 0;
-	}
+
+	if (!(retcode = git_blob_lookup(&blob, repo, blob_id)))
+		retcode = git_blob__getbuf(out, blob);
+
 	return retcode;
 }