diff options
author | Jan Moskyto Matejka <mq@ucw.cz> | 2016-04-08 12:09:31 +0200 |
---|---|---|
committer | Jan Moskyto Matejka <mq@ucw.cz> | 2016-04-08 12:28:33 +0200 |
commit | 7a7ac656829223713f9e6bcef63d2b5a5efce7d2 (patch) | |
tree | 153afd214a815124b37fcd88c66134d716a390cf /lib/resource.c | |
parent | 4bdf1881dc6230b742d7efcaad8eeac4ed25f445 (diff) | |
parent | 06edbb67ed807811654e7fd8f0f9b83766430216 (diff) |
Merge branch 'master' into int-new-channels
Diffstat (limited to 'lib/resource.c')
-rw-r--r-- | lib/resource.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/lib/resource.c b/lib/resource.c index 64f9a39c..68718dfb 100644 --- a/lib/resource.c +++ b/lib/resource.c @@ -163,6 +163,7 @@ rfree(void *res) if (r->n.next) rem_node(&r->n); r->class->free(r); + r->class = NULL; xfree(r); } @@ -383,16 +384,9 @@ mb_allocz(pool *p, unsigned size) void * mb_realloc(void *m, unsigned size) { - struct mblock *ob = NULL; - - if (m) - { - ob = SKIP_BACK(struct mblock, data, m); - if (ob->r.n.next) - rem_node(&ob->r.n); - } + struct mblock *b = SKIP_BACK(struct mblock, data, m); - struct mblock *b = xrealloc(ob, sizeof(struct mblock) + size); + b = xrealloc(b, sizeof(struct mblock) + size); replace_node(&b->r.n, &b->r.n); b->size = size; return b->data; |