diff options
author | Vicent Martà <vicent@github.com> | 2013-04-22 08:07:20 -0700 |
---|---|---|
committer | Vicent Martà <vicent@github.com> | 2013-04-22 08:07:20 -0700 |
commit | d08dd728a80eb993d80ec30d8c9f9025664c8990 (patch) | |
tree | f5cf7daf3913578f57076c2efc94bfd1f728068c /src/blob.c | |
parent | a92dd316079250b27cc933b1fd00cd6af88b88d9 (diff) | |
parent | d87715926049390a2417a2476742114ec966686a (diff) | |
download | libgit2-d08dd728a80eb993d80ec30d8c9f9025664c8990.tar.gz |
Merge pull request #1454 from libgit2/vmg/new-cache
New caching
Diffstat (limited to 'src/blob.c')
-rw-r--r-- | src/blob.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/blob.c b/src/blob.c index 11e1f4d77..a68c4cc3e 100644 --- a/src/blob.c +++ b/src/blob.c @@ -18,32 +18,34 @@ const void *git_blob_rawcontent(const git_blob *blob) { assert(blob); - return blob->odb_object->raw.data; + return git_odb_object_data(blob->odb_object); } git_off_t git_blob_rawsize(const git_blob *blob) { assert(blob); - return (git_off_t)blob->odb_object->raw.len; + return (git_off_t)git_odb_object_size(blob->odb_object); } int git_blob__getbuf(git_buf *buffer, git_blob *blob) { return git_buf_set( - buffer, blob->odb_object->raw.data, blob->odb_object->raw.len); + buffer, + git_odb_object_data(blob->odb_object), + git_odb_object_size(blob->odb_object)); } -void git_blob__free(git_blob *blob) +void git_blob__free(void *blob) { - git_odb_object_free(blob->odb_object); + git_odb_object_free(((git_blob *)blob)->odb_object); git__free(blob); } -int git_blob__parse(git_blob *blob, git_odb_object *odb_obj) +int git_blob__parse(void *blob, git_odb_object *odb_obj) { assert(blob); git_cached_obj_incref((git_cached_obj *)odb_obj); - blob->odb_object = odb_obj; + ((git_blob *)blob)->odb_object = odb_obj; return 0; } @@ -315,8 +317,8 @@ int git_blob_is_binary(git_blob *blob) assert(blob); - content.ptr = blob->odb_object->raw.data; - content.size = min(blob->odb_object->raw.len, 4000); + content.ptr = blob->odb_object->buffer; + content.size = min(blob->odb_object->cached.size, 4000); return git_buf_text_is_binary(&content); } |