Expose a malloc function to 3rd party ODB backends

This commit is contained in:
Philip Kelley 2012-08-27 09:59:13 -04:00
parent 2b175ca972
commit c49d328cf4
2 changed files with 11 additions and 0 deletions

View File

@ -26,6 +26,10 @@ struct git_odb_stream;
struct git_odb_backend { struct git_odb_backend {
git_odb *odb; git_odb *odb;
/* read and read_prefix each return to libgit2 a buffer which
* will be freed later. The buffer should be allocated using
* the function git_odb_backend_malloc to ensure that it can
* be safely freed later. */
int (* read)( int (* read)(
void **, size_t *, git_otype *, void **, size_t *, git_otype *,
struct git_odb_backend *, struct git_odb_backend *,
@ -102,6 +106,8 @@ GIT_EXTERN(int) git_odb_backend_pack(git_odb_backend **backend_out, const char *
GIT_EXTERN(int) git_odb_backend_loose(git_odb_backend **backend_out, const char *objects_dir, int compression_level, int do_fsync); GIT_EXTERN(int) git_odb_backend_loose(git_odb_backend **backend_out, const char *objects_dir, int compression_level, int do_fsync);
GIT_EXTERN(int) git_odb_backend_one_pack(git_odb_backend **backend_out, const char *index_file); GIT_EXTERN(int) git_odb_backend_one_pack(git_odb_backend **backend_out, const char *index_file);
GIT_EXTERN(void *) git_odb_backend_malloc(git_odb_backend *backend, size_t len);
GIT_END_DECL GIT_END_DECL
#endif #endif

View File

@ -708,6 +708,11 @@ int git_odb_open_rstream(git_odb_stream **stream, git_odb *db, const git_oid *oi
return error; return error;
} }
void * git_odb_backend_malloc(git_odb_backend *backend, size_t len)
{
return git__malloc(len);
}
int git_odb__error_notfound(const char *message, const git_oid *oid) int git_odb__error_notfound(const char *message, const git_oid *oid)
{ {
if (oid != NULL) { if (oid != NULL) {