optimize pic_chunk
This commit is contained in:
parent
f263e9432e
commit
267cfb0a02
|
@ -26,8 +26,9 @@ struct pic_rope {
|
||||||
#define CHUNK_DECREF(c) do { \
|
#define CHUNK_DECREF(c) do { \
|
||||||
struct pic_chunk *c_ = (c); \
|
struct pic_chunk *c_ = (c); \
|
||||||
if (! --c_->refcnt) { \
|
if (! --c_->refcnt) { \
|
||||||
if (c_->str != c_->buf) \
|
if (c_->str != c_->buf) { \
|
||||||
pic_free(pic, c_->str); \
|
pic_free(pic, c_->str); \
|
||||||
|
} \
|
||||||
pic_free(pic, c_); \
|
pic_free(pic, c_); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
@ -56,7 +57,7 @@ pic_make_chunk(pic_state *pic, const char *str, size_t len)
|
||||||
{
|
{
|
||||||
struct pic_chunk *c;
|
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->refcnt = 1;
|
||||||
c->str = c->buf;
|
c->str = c->buf;
|
||||||
c->len = len;
|
c->len = len;
|
||||||
|
|
Loading…
Reference in New Issue