mirror of
https://github.com/libgit2/libgit2.git
synced 2026-01-25 02:56:17 +00:00
odb_mempack: use an out param
This commit is contained in:
@@ -104,10 +104,11 @@ GIT_EXTERN(int) git_mempack_reset(git_odb_backend *backend);
|
||||
/**
|
||||
* Get the total number of objects in mempack
|
||||
*
|
||||
* @param count The count of objects in the mempack
|
||||
* @param backend The mempack backend
|
||||
* @return the number of objects in the mempack, -1 on error
|
||||
* @return 0 on success, or -1 on error
|
||||
*/
|
||||
GIT_EXTERN(int) git_mempack_object_count(git_odb_backend *backend);
|
||||
GIT_EXTERN(int) git_mempack_object_count(size_t *count, git_odb_backend *backend);
|
||||
|
||||
GIT_END_DECL
|
||||
|
||||
|
||||
@@ -210,9 +210,18 @@ int git_mempack_new(git_odb_backend **out)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int git_mempack_object_count(git_odb_backend *_backend)
|
||||
int git_mempack_object_count(size_t *out, git_odb_backend *_backend)
|
||||
{
|
||||
struct memory_packer_db *db = (struct memory_packer_db *)_backend;
|
||||
uint32_t count;
|
||||
|
||||
GIT_ASSERT_ARG(_backend);
|
||||
return git_odb_mempack_oidmap_size(&db->objects);
|
||||
|
||||
count = git_odb_mempack_oidmap_size(&db->objects);
|
||||
|
||||
if (count < 0)
|
||||
return count;
|
||||
|
||||
*out = (size_t)count;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -61,17 +61,22 @@ void test_odb_backend_mempack__blob_create_from_buffer_succeeds(void)
|
||||
|
||||
void test_odb_backend_mempack__empty_object_count_succeeds(void)
|
||||
{
|
||||
cl_assert_equal_sz(0, git_mempack_object_count(_backend));
|
||||
size_t count;
|
||||
cl_git_pass(git_mempack_object_count(&count, _backend));
|
||||
cl_assert_equal_sz(0, count);
|
||||
}
|
||||
|
||||
void test_odb_backend_mempack__object_count_succeeds(void)
|
||||
{
|
||||
const char *data = "data";
|
||||
size_t count;
|
||||
cl_git_pass(git_odb_write(&_oid, _odb, data, strlen(data) + 1, GIT_OBJECT_BLOB));
|
||||
cl_assert_equal_sz(1, git_mempack_object_count(_backend));
|
||||
cl_git_pass(git_mempack_object_count(&count, _backend));
|
||||
cl_assert_equal_sz(1, count);
|
||||
}
|
||||
|
||||
void test_odb_backend_mempack__object_count_fails(void)
|
||||
{
|
||||
cl_git_fail_with(-1, git_mempack_object_count(0));
|
||||
size_t count;
|
||||
cl_git_fail_with(-1, git_mempack_object_count(&count, 0));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user