Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/lib/skin_parser/skin_buffer.c b/lib/skin_parser/skin_buffer.c
- index 3c0870e..0f72f76 100644
- --- a/lib/skin_parser/skin_buffer.c
- +++ b/lib/skin_parser/skin_buffer.c
- @@ -63,8 +63,8 @@ static unsigned char *buffer_front = NULL;
- #ifdef USE_HOST_MALLOC
- struct malloc_object {
- - void* object;
- struct malloc_object *next;
- + char buf[0];
- };
- static struct malloc_object *malloced_head = NULL, *malloced_tail = NULL;
- @@ -76,7 +76,6 @@ static void skin_free_malloced(void)
- {
- this = obj;
- obj = this->next;
- - free(this->object);
- free(this);
- }
- malloced_head = NULL;
- @@ -108,17 +107,16 @@ void* skin_buffer_alloc(size_t size)
- retval = buffer_front;
- buffer_front += size;
- #elif defined(USE_HOST_MALLOC)
- - struct malloc_object *obj = malloc(sizeof (struct malloc_object));
- - if (!obj)
- - return NULL;
- - obj->object = malloc(size);
- + size_t malloc_size = sizeof(struct malloc_object) + size;
- + struct malloc_object *obj = malloc(malloc_size);
- + retval = &obj->buf;
- obj->next = NULL;
- if (malloced_tail == NULL)
- malloced_head = malloced_tail = obj;
- else
- malloced_tail->next = obj;
- malloced_tail = obj;
- - retval = obj->object;
- +
- #else
- retval = malloc(size);
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement