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.
This commit is contained in:
Carlos Martín Nieto 2013-08-17 02:12:04 +02:00
parent 7a3764bee9
commit 090a07d295

View File

@ -864,8 +864,8 @@ int git_odb_write(
if ((error = git_odb_open_wstream(&stream, db, len, type)) != 0) if ((error = git_odb_open_wstream(&stream, db, len, type)) != 0)
return error; return error;
git_odb_stream_write(stream, data, len); stream->write(stream, data, len);
error = git_odb_stream_finalize_write(oid, stream); error = stream->finalize_write(stream, oid);
git_odb_stream_free(stream); git_odb_stream_free(stream);
return error; return error;