From 267cfb0a020f47e6ff33ab5ea371613c29ad2367 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Mon, 8 Feb 2016 01:17:33 +0900 Subject: [PATCH] optimize pic_chunk --- extlib/benz/string.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/extlib/benz/string.c b/extlib/benz/string.c index 224ff41e..25e9099d 100644 --- a/extlib/benz/string.c +++ b/extlib/benz/string.c @@ -26,8 +26,9 @@ struct pic_rope { #define CHUNK_DECREF(c) do { \ struct pic_chunk *c_ = (c); \ if (! --c_->refcnt) { \ - if (c_->str != c_->buf) \ + if (c_->str != c_->buf) { \ pic_free(pic, c_->str); \ + } \ pic_free(pic, c_); \ } \ } while (0) @@ -56,7 +57,7 @@ pic_make_chunk(pic_state *pic, const char *str, size_t len) { struct pic_chunk *c; - c = pic_malloc(pic, sizeof(struct pic_chunk) + len); + c = pic_malloc(pic, offsetof(struct pic_chunk, buf) + len + 1); c->refcnt = 1; c->str = c->buf; c->len = len;