Skip to content

Commit bb9197e

Browse files
committed
Move ds3_convert_file_list's ds3_bulk_object_list initialization code
into a new ds3_init_bullk_object_list function that clients can use in case ds3_convert_file_list (i.e. _ds3_bulkl_object_from_file) isn't suitable. ds3_init_bulk_object_list only allocates the required memory , for the "list" and the structure itself, and sets "size". It's up to the user to set list's contents.
1 parent a36cc4d commit bb9197e

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

src/ds3.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1522,9 +1522,7 @@ static ds3_bulk_object _ds3_bulk_object_from_file(const char* file_name) {
15221522

15231523
ds3_bulk_object_list* ds3_convert_file_list(const char** file_list, uint64_t num_files) {
15241524
uint64_t i;
1525-
ds3_bulk_object_list* obj_list = g_new0(ds3_bulk_object_list, 1);
1526-
obj_list->size = num_files;
1527-
obj_list->list = g_new0(ds3_bulk_object, num_files);
1525+
ds3_bulk_object_list* obj_list = ds3_init_bulk_object_list(num_files);
15281526

15291527
for(i = 0; i < num_files; i++) {
15301528
obj_list->list[i] = _ds3_bulk_object_from_file(file_list[i]);
@@ -1533,6 +1531,14 @@ ds3_bulk_object_list* ds3_convert_file_list(const char** file_list, uint64_t num
15331531
return obj_list;
15341532
}
15351533

1534+
ds3_bulk_object_list* ds3_init_bulk_object_list(uint64_t num_files) {
1535+
ds3_bulk_object_list* obj_list = g_new0(ds3_bulk_object_list, 1);
1536+
obj_list->size = num_files;
1537+
obj_list->list = g_new0(ds3_bulk_object, num_files);
1538+
1539+
return obj_list;
1540+
}
1541+
15361542
void ds3_free_bulk_object_list(ds3_bulk_object_list* object_list) {
15371543
uint64_t i, count;
15381544
if(object_list == NULL) {

src/ds3.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,8 @@ LIBRARY_API void ds3_print_request(const ds3_request* request);
223223
LIBRARY_API size_t ds3_write_to_file(void* buffer, size_t size, size_t nmemb, void* user_data);
224224
LIBRARY_API size_t ds3_read_from_file(void* buffer, size_t size, size_t nmemb, void* user_data);
225225

226-
LIBRARY_API ds3_bulk_object_list * ds3_convert_file_list(const char** file_list, uint64_t num_files);
226+
LIBRARY_API ds3_bulk_object_list* ds3_convert_file_list(const char** file_list, uint64_t num_files);
227+
LIBRARY_API ds3_bulk_object_list* ds3_init_bulk_object_list(uint64_t num_files);
227228
LIBRARY_API void ds3_free_bulk_object_list(ds3_bulk_object_list* object_list);
228229

229230
#ifdef __cplusplus

0 commit comments

Comments
 (0)