Commit 090a07d29548ce69034b4be6ba043014226893c9

Carlos Martín Nieto 2013-08-17T02:12:04

odb: avoid hashing twice in and edge case If none of the backends support direct writes and we must stream the whole file, we already know what the object's id should be; so use the stream's functions directly, bypassing the frontend's hashing and overwriting of our existing id.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/src/odb.c b/src/odb.c
index d2be60f..21b46bf 100644
--- a/src/odb.c
+++ b/src/odb.c
@@ -864,8 +864,8 @@ int git_odb_write(
 	if ((error = git_odb_open_wstream(&stream, db, len, type)) != 0)
 		return error;
 
-	git_odb_stream_write(stream, data, len);
-	error = git_odb_stream_finalize_write(oid, stream);
+	stream->write(stream, data, len);
+	error = stream->finalize_write(stream, oid);
 	git_odb_stream_free(stream);
 
 	return error;