summaryrefslogtreecommitdiff
path: root/libgphoto2
diff options
context:
space:
mode:
authorMarcus Meissner <marcus@jet.franken.de>2016-09-06 16:31:53 +0200
committerMarcus Meissner <marcus@jet.franken.de>2016-09-06 16:32:38 +0200
commit3807eddfdc82450d6ab9e4738752636939f25dfa (patch)
treeca5d757ae20c7328af2dc12fdb17d5e22cbba2cd /libgphoto2
parent29a8b4fec14606e79e867d447b3327b3205ddb32 (diff)
downloadlibgphoto2-3807eddfdc82450d6ab9e4738752636939f25dfa.tar.gz
increase ability list in 50 entry blocks to make this faster
Diffstat (limited to 'libgphoto2')
-rw-r--r--libgphoto2/gphoto2-abilities-list.c11
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);
}