summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Make.rules2
-rw-r--r--src/apk_defines.h5
2 files changed, 4 insertions, 3 deletions
diff --git a/Make.rules b/Make.rules
index fce3a77..aa1a8b3 100644
--- a/Make.rules
+++ b/Make.rules
@@ -67,7 +67,7 @@ LD := $(CROSS_COMPILE)ld
INSTALL := install
INSTALLDIR := $(INSTALL) -d
-CFLAGS ?= -g
+CFLAGS ?= -g -O2
CFLAGS_ALL := -Werror -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99
CFLAGS_ALL += $(CFLAGS)
diff --git a/src/apk_defines.h b/src/apk_defines.h
index 755d971..49ca9eb 100644
--- a/src/apk_defines.h
+++ b/src/apk_defines.h
@@ -83,12 +83,13 @@ typedef void (*apk_progress_cb)(void *cb_ctx, size_t);
{ \
struct array_type_name *tmp; \
int oldnum = a ? a->num : 0; \
+ int diff = size - oldnum; \
tmp = (struct array_type_name *) \
realloc(a, sizeof(struct array_type_name) + \
size * sizeof(elem_type_name)); \
- if (size > oldnum) \
+ if (diff > 0) \
memset(&tmp->item[oldnum], 0, \
- (size - oldnum) * sizeof(a->item[0])); \
+ diff * sizeof(a->item[0])); \
tmp->num = size; \
return tmp; \
} \