summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-04-14 20:36:05 +0900
committerGitHub <[email protected]>2019-04-14 20:36:05 +0900
commit6ad89d30d22021e15e9a0ed8e26f5db53fada4d5 (patch)
treef1a6eb7f52b372685cfe2d8f899ceba492f86bcd /src
parente74a8a7360bea3572e7bed42ea9ca5b7522e08c8 (diff)
parentd8527d17ea504aebcdbd3970127899e0216d46dc (diff)
downloadmruby-6ad89d30d22021e15e9a0ed8e26f5db53fada4d5.tar.gz
mruby-6ad89d30d22021e15e9a0ed8e26f5db53fada4d5.zip
Merge pull request #4377 from dearblue/wrong-iv-size
Fix wrong size of instance variable if occur out of memory
Diffstat (limited to 'src')
-rw-r--r--src/variable.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/variable.c b/src/variable.c
index f97b09c52..983fe52f7 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -79,19 +79,19 @@ iv_put(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value val)
}
/* Not found */
- t->size++;
if (matched_seg) {
matched_seg->key[matched_idx] = sym;
matched_seg->val[matched_idx] = val;
+ t->size++;
return;
}
seg = (segment*)mrb_malloc(mrb, sizeof(segment));
- if (!seg) return;
seg->next = NULL;
seg->key[0] = sym;
seg->val[0] = val;
t->last_len = 1;
+ t->size++;
if (prev) {
prev->next = seg;
}