- PLIST_MOV_EXPAND(list, index);
- PLIST_CPY(list, PLIST_ELE(list, index), ptr);
- list->count = new_count;
+ new_count = MAX(list->count + 1, index);
+ if (new_count) {
+ list = realloc(list, sizeof(*list) + list->size + new_count * list->size);
+ }
+ if (list) {
+ PLIST_MOV_EXPAND(list, index);
+ PLIST_CPY(list, PLIST_ELE(list, index), ptr);
+ list->count = new_count;
+ }