diff options
| author | Peter Zhu <peter@peterzhu.ca> | 2025-09-08 16:28:45 +0200 |
|---|---|---|
| committer | Peter Zhu <peter@peterzhu.ca> | 2025-09-17 09:25:17 -0400 |
| commit | 3f3497558146c46350b740db2e71fdf28d30c204 (patch) | |
| tree | b6d02dd4c41d31ce5585ea80218c133868a74c62 /string.c | |
| parent | 42b6ec0149fbf97d79ddd4d957cecc0fc08f2701 (diff) | |
Clear out memory for newly alloated string
Diffstat (limited to 'string.c')
| -rw-r--r-- | string.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -1006,6 +1006,8 @@ str_alloc_embed(VALUE klass, size_t capa) NEWOBJ_OF(str, struct RString, klass, T_STRING | (RGENGC_WB_PROTECTED_STRING ? FL_WB_PROTECTED : 0), size, 0); + str->len = 0; + return (VALUE)str; } @@ -1015,6 +1017,10 @@ str_alloc_heap(VALUE klass) NEWOBJ_OF(str, struct RString, klass, T_STRING | STR_NOEMBED | (RGENGC_WB_PROTECTED_STRING ? FL_WB_PROTECTED : 0), sizeof(struct RString), 0); + str->len = 0; + str->as.heap.aux.capa = 0; + str->as.heap.ptr = NULL; + return (VALUE)str; } @@ -1866,6 +1872,8 @@ ec_str_alloc_embed(struct rb_execution_context_struct *ec, VALUE klass, size_t c NEWOBJ_OF(str, struct RString, klass, T_STRING | (RGENGC_WB_PROTECTED_STRING ? FL_WB_PROTECTED : 0), size, ec); + str->len = 0; + return (VALUE)str; } @@ -1875,6 +1883,9 @@ ec_str_alloc_heap(struct rb_execution_context_struct *ec, VALUE klass) NEWOBJ_OF(str, struct RString, klass, T_STRING | STR_NOEMBED | (RGENGC_WB_PROTECTED_STRING ? FL_WB_PROTECTED : 0), sizeof(struct RString), ec); + str->as.heap.aux.capa = 0; + str->as.heap.ptr = NULL; + return (VALUE)str; } |
