summaryrefslogtreecommitdiffhomepage
path: root/src/load.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-11-15 20:15:10 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-11-15 21:01:56 +0900
commit61f49690e43cea3df6ebbdf424cf6777826056b0 (patch)
tree25d4f8e4ecec412c79ac4232fae00bfe93663cda /src/load.c
parent1bea1e2050ee4c1b3e558a307c7d2731f6b52823 (diff)
downloadmruby-61f49690e43cea3df6ebbdf424cf6777826056b0.tar.gz
mruby-61f49690e43cea3df6ebbdf424cf6777826056b0.zip
Remove `filename`&`lines` from `mrb_irep` struct.
This patch slightly reduce memory consumption (2% for my test).
Diffstat (limited to 'src/load.c')
-rw-r--r--src/load.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/load.c b/src/load.c
index 70f5406eb..559fff1d4 100644
--- a/src/load.c
+++ b/src/load.c
@@ -215,12 +215,11 @@ read_section_irep(mrb_state *mrb, const uint8_t *bin, uint8_t flags)
return read_irep_record(mrb, bin, &len, flags);
}
+/* ignore lineno record */
static int
read_lineno_record_1(mrb_state *mrb, const uint8_t *bin, mrb_irep *irep, size_t *len)
{
size_t i, fname_len, niseq;
- char *fname;
- uint16_t *lines;
*len = 0;
bin += sizeof(uint32_t); /* record size */
@@ -228,9 +227,6 @@ read_lineno_record_1(mrb_state *mrb, const uint8_t *bin, mrb_irep *irep, size_t
fname_len = bin_to_uint16(bin);
bin += sizeof(uint16_t);
*len += sizeof(uint16_t);
- fname = (char *)mrb_malloc(mrb, fname_len + 1);
- memcpy(fname, bin, fname_len);
- fname[fname_len] = '\0';
bin += fname_len;
*len += fname_len;
@@ -241,15 +237,11 @@ read_lineno_record_1(mrb_state *mrb, const uint8_t *bin, mrb_irep *irep, size_t
if (SIZE_ERROR_MUL(niseq, sizeof(uint16_t))) {
return MRB_DUMP_GENERAL_FAILURE;
}
- lines = (uint16_t *)mrb_malloc(mrb, niseq * sizeof(uint16_t));
for (i = 0; i < niseq; i++) {
- lines[i] = bin_to_uint16(bin);
bin += sizeof(uint16_t); /* niseq */
*len += sizeof(uint16_t);
}
- irep->filename = fname;
- irep->lines = lines;
return MRB_DUMP_OK;
}