summaryrefslogtreecommitdiffhomepage
path: root/src/load.c
diff options
context:
space:
mode:
authortake_cheeze <[email protected]>2014-04-29 22:06:59 +0900
committertake_cheeze <[email protected]>2014-04-29 22:06:59 +0900
commit5073d14e280a82e4cb4e41692154de825b07b5e9 (patch)
tree6a120379e31fae527a10f2267bff9834020b6d2f /src/load.c
parent7ea82fedd5585bc753464aae7fc406cd2f1ce08e (diff)
downloadmruby-5073d14e280a82e4cb4e41692154de825b07b5e9.tar.gz
mruby-5073d14e280a82e4cb4e41692154de825b07b5e9.zip
Remove `lv_len` and use `nlocals - 1` instead.
Check that `lv`'s length is always `nlocals - 1`.
Diffstat (limited to 'src/load.c')
-rw-r--r--src/load.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/load.c b/src/load.c
index 27832af3c..912a28218 100644
--- a/src/load.c
+++ b/src/load.c
@@ -408,11 +408,9 @@ read_lv_record(mrb_state *mrb, const uint8_t *start, mrb_irep *irep, size_t *rec
size_t i;
ptrdiff_t diff;
- irep->lv_len = bin_to_uint16(bin);
- bin += sizeof(uint16_t);
- irep->lv = (struct mrb_locals*)mrb_malloc(mrb, sizeof(struct mrb_locals) * irep->lv_len);
+ irep->lv = (struct mrb_locals*)mrb_malloc(mrb, sizeof(struct mrb_locals) * (irep->nlocals - 1));
- for (i = 0; i < irep->lv_len; ++i) {
+ for (i = 0; i < (irep->nlocals - 1); ++i) {
uint16_t const sym_idx = bin_to_uint16(bin);
bin += sizeof(uint16_t);
if (sym_idx >= syms_len) {