diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2016-09-06 16:31:53 +0200 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2016-09-06 16:32:38 +0200 |
commit | 3807eddfdc82450d6ab9e4738752636939f25dfa (patch) | |
tree | ca5d757ae20c7328af2dc12fdb17d5e22cbba2cd | |
parent | 29a8b4fec14606e79e867d447b3327b3205ddb32 (diff) | |
download | libgphoto2-3807eddfdc82450d6ab9e4738752636939f25dfa.tar.gz |
increase ability list in 50 entry blocks to make this faster
-rw-r--r-- | libgphoto2/gphoto2-abilities-list.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libgphoto2/gphoto2-abilities-list.c b/libgphoto2/gphoto2-abilities-list.c index 86881bcd0..e8cb250d0 100644 --- a/libgphoto2/gphoto2-abilities-list.c +++ b/libgphoto2/gphoto2-abilities-list.c @@ -61,6 +61,7 @@ /** \internal */ struct _CameraAbilitiesList { int count; + int maxcount; CameraAbilities *abilities; }; @@ -510,9 +511,12 @@ gp_abilities_list_append (CameraAbilitiesList *list, CameraAbilities abilities) { C_PARAMS (list); - C_MEM (list->abilities = realloc (list->abilities, - sizeof (CameraAbilities) * (list->count + 1))); - + if (list->count == list->maxcount) { + C_MEM (list->abilities = realloc (list->abilities, + sizeof (CameraAbilities) * (list->maxcount + 50))); + list->maxcount += 50; + } + memcpy (&(list->abilities [list->count]), &abilities, sizeof (CameraAbilities)); @@ -541,6 +545,7 @@ gp_abilities_list_reset (CameraAbilitiesList *list) free (list->abilities); list->abilities = NULL; list->count = 0; + list->maxcount = 0; return (GP_OK); } |