diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/chunk.h | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/src/chunk.h b/src/chunk.h index 1bea422..a2248f5 100644 --- a/src/chunk.h +++ b/src/chunk.h @@ -77,9 +77,7 @@ static CMARK_INLINE const char *cmark_chunk_to_cstr(cmark_mem *mem,  static CMARK_INLINE void cmark_chunk_set_cstr(cmark_mem *mem, cmark_chunk *c,                                                const char *str) { -  if (c->alloc) { -    mem->free(c->data); -  } +  unsigned char *old = c->alloc ? c->data : NULL;    if (str == NULL) {      c->len = 0;      c->data = NULL; @@ -90,6 +88,9 @@ static CMARK_INLINE void cmark_chunk_set_cstr(cmark_mem *mem, cmark_chunk *c,      c->alloc = 1;      memcpy(c->data, str, c->len + 1);    } +  if (old != NULL) { +    mem->free(old); +  }  }  static CMARK_INLINE cmark_chunk cmark_chunk_literal(const char *data) {  | 
