commit - dabc100859385b31dcfbe62d04187d6947a12795
commit + 32be30224703df053be11d1c953763e7d7f2a5f6
blob - bb6e626bf9c86e3fa8598f4710496f81737f2c17
blob + badedfc28278523e489b303c0c470e925bbbabfa
--- include/diff/arraylist.h
+++ include/diff/arraylist.h
#define ARRAYLIST(MEMBER_TYPE) \
struct { \
MEMBER_TYPE *head; \
+ MEMBER_TYPE *p; \
unsigned int len; \
unsigned int allocated; \
unsigned int alloc_blocksize; \
|| (ARRAY_LIST).allocated < (ARRAY_LIST).len + 1) { \
(ARRAY_LIST).allocated += \
(ARRAY_LIST).alloc_blocksize ? : 8; \
- (ARRAY_LIST).head = recallocarray((ARRAY_LIST).head, \
+ (ARRAY_LIST).p = recallocarray((ARRAY_LIST).head, \
(ARRAY_LIST).len, \
(ARRAY_LIST).allocated, \
sizeof(*(ARRAY_LIST).head)); \
+ if ((ARRAY_LIST).p == NULL) { \
+ NEW_ITEM_P = NULL; \
+ break; \
+ } \
+ (ARRAY_LIST).head = (ARRAY_LIST).p; \
+ (ARRAY_LIST).p = NULL; \
}; \
- if (!(ARRAY_LIST).head \
+ if ((ARRAY_LIST).head == NULL \
|| (ARRAY_LIST).allocated < (ARRAY_LIST).len + 1) { \
NEW_ITEM_P = NULL; \
break; \