diff options
Diffstat (limited to 'plugins/inventory/inventory.c')
-rw-r--r-- | plugins/inventory/inventory.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/inventory/inventory.c b/plugins/inventory/inventory.c index c3b533d..9923561 100644 --- a/plugins/inventory/inventory.c +++ b/plugins/inventory/inventory.c @@ -29,7 +29,11 @@ void inventory_add(struct inventory *self, struct itemstack stack) } } - *ptr = add_element(*ptr, make_buffer(&stack, sizeof(struct itemstack))); + struct itemstack *buf = make_buffer(&stack, sizeof(struct itemstack)); + *ptr = add_element(*ptr, buf); + + if (buf->item->on_create) + buf->item->on_create(buf); } /* @@ -81,6 +85,9 @@ static void decrease_item_count(struct list **ptr, struct itemstack *stack) if (stack->item->on_destroy) stack->item->on_destroy(stack); + if (stack->meta) + free(stack->meta); + free(stack); free(*ptr); |