diff options
Diffstat (limited to 'src/load.c')
| -rw-r--r-- | src/load.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/load.c b/src/load.c index 30bd5d8be..247fce687 100644 --- a/src/load.c +++ b/src/load.c @@ -98,7 +98,12 @@ read_irep_record_1(mrb_state *mrb, const uint8_t *bin, uint32_t *len, mrb_bool a tt = *src++; //pool TT pool_data_len = bin_to_uint16(src); //pool data length src += sizeof(uint16_t); - s = mrb_str_new(mrb, (char *)src, pool_data_len); + if (alloc) { + s = mrb_str_new(mrb, (char *)src, pool_data_len); + } + else { + s = mrb_str_new_static(mrb, (char *)src, pool_data_len); + } src += pool_data_len; switch (tt) { //pool data case IREP_TT_FIXNUM: |
