diff options
author | Vicent Marti <tanoku@gmail.com> | 2014-07-23 13:23:05 +0200 |
---|---|---|
committer | Vicent Marti <tanoku@gmail.com> | 2014-07-23 13:23:05 +0200 |
commit | 1e711a39918dcdf3ccd70aa5252baf90dc8475df (patch) | |
tree | 0f5123e3a6c8a2385c699de12a6fbab67c25bbdb | |
parent | 15b66b4d793b5aefdbb1aa40a2e110ac241ba26e (diff) | |
download | libgit2-vmg/read-types.tar.gz |
Remove assertsvmg/read-types
-rw-r--r-- | include/git2/sys/odb_backend.h | 5 | ||||
-rw-r--r-- | src/odb.c | 10 | ||||
-rw-r--r-- | src/odb_loose.c | 7 | ||||
-rw-r--r-- | src/odb_pack.c | 2 |
4 files changed, 18 insertions, 6 deletions
diff --git a/include/git2/sys/odb_backend.h b/include/git2/sys/odb_backend.h index 1fc3c3159..a720027f8 100644 --- a/include/git2/sys/odb_backend.h +++ b/include/git2/sys/odb_backend.h @@ -42,6 +42,11 @@ struct git_odb_backend { git_oid *, void **, size_t *, git_otype *, git_odb_backend *, const git_oid *, size_t); + /* Read the header information for a given object. + * + * The passed `size_t` or `git_otype` can be NULL of either information + * is not required + */ int (* read_header)( size_t *, git_otype *, git_odb_backend *, const git_oid *); @@ -716,7 +716,7 @@ int git_odb__read_header_or_object( int error = GIT_ENOTFOUND; git_odb_object *object; - assert(db && id && out && len_p && type_p); + assert(db && id && out); if ((object = git_cache_get_raw(odb_cache(db), id)) != NULL) { *len_p = object->cached.size; @@ -745,8 +745,12 @@ int git_odb__read_header_or_object( if ((error = git_odb_read(&object, db, id)) < 0) return error; /* error already set - pass along */ - *len_p = object->cached.size; - *type_p = object->cached.type; + if (len_p != NULL) + *len_p = object->cached.size; + + if (type_p != NULL) + *type_p = object->cached.type; + *out = object; return 0; diff --git a/src/odb_loose.c b/src/odb_loose.c index b2e8bed4d..0718d4a91 100644 --- a/src/odb_loose.c +++ b/src/odb_loose.c @@ -606,8 +606,11 @@ static int loose_backend__read_header(size_t *len_p, git_otype *type_p, git_odb_ if (locate_object(&object_path, (loose_backend *)backend, oid) < 0) error = git_odb__error_notfound("no matching loose object", oid); else if ((error = read_header_loose(&raw, &object_path)) == 0) { - *len_p = raw.len; - *type_p = raw.type; + if (len_p != NULL) + *len_p = raw.len; + + if (type_p != NULL) + *type_p = raw.type; } git_buf_free(&object_path); diff --git a/src/odb_pack.c b/src/odb_pack.c index 1757cf920..d3bc81925 100644 --- a/src/odb_pack.c +++ b/src/odb_pack.c @@ -353,7 +353,7 @@ static int pack_backend__read_header_internal( struct git_pack_entry e; int error; - assert(len_p && type_p && backend && oid); + assert(backend && oid); if ((error = pack_entry_find(&e, (struct pack_backend *)backend, oid)) < 0) return error; |