summaryrefslogtreecommitdiffhomepage
path: root/src/load.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-05-14 17:32:30 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-05-14 17:32:30 +0900
commit9184d254e23c14a67b5b1aa5dc5dbbbf747a9ff6 (patch)
treebde5cc097e632ebb83a03c9e2c46ace0db80cd76 /src/load.c
parent7a5d8a40fecb89c4f9fbbce46a12595f26a71260 (diff)
downloadmruby-9184d254e23c14a67b5b1aa5dc5dbbbf747a9ff6.tar.gz
mruby-9184d254e23c14a67b5b1aa5dc5dbbbf747a9ff6.zip
resize register number in LVAR section from 32bits to 16bits
Diffstat (limited to 'src/load.c')
-rw-r--r--src/load.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/load.c b/src/load.c
index dc5a5bf06..89a5f7cd2 100644
--- a/src/load.c
+++ b/src/load.c
@@ -408,7 +408,7 @@ read_lv_record(mrb_state *mrb, const uint8_t *start, mrb_irep *irep, size_t *rec
irep->lv = (struct mrb_locals*)mrb_malloc(mrb, sizeof(struct mrb_locals) * (irep->nlocals - 1));
- for (i = 0; i < (irep->nlocals - 1); ++i) {
+ for (i = 0; i + 1< irep->nlocals; ++i) {
uint16_t const sym_idx = bin_to_uint16(bin);
bin += sizeof(uint16_t);
if (sym_idx >= syms_len) {
@@ -416,8 +416,8 @@ read_lv_record(mrb_state *mrb, const uint8_t *start, mrb_irep *irep, size_t *rec
}
irep->lv[i].name = syms[sym_idx];
- irep->lv[i].r = bin_to_uint32(bin);
- bin += sizeof(uint32_t);
+ irep->lv[i].r = bin_to_uint16(bin);
+ bin += sizeof(uint16_t);
}
for (i = 0; i < irep->rlen; ++i) {