summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-08-30 00:25:25 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-08-30 00:29:35 +0900
commit500bd38dfe12899ded93f049741afffdb03974a1 (patch)
tree8ea14c352a08f8b8d251162492fe1df47d744ec9
parent2c93e4a0a816d9c0d547a27b9f09fa61a2497d95 (diff)
downloadmruby-500bd38dfe12899ded93f049741afffdb03974a1.tar.gz
mruby-500bd38dfe12899ded93f049741afffdb03974a1.zip
`uint16_t` is too small for reference count; fix #4093
Use `uint32_t` instead. Theoretically `uint32_t` can overflow as well, but I think it is sufficient size for embeddable Ruby VM.
-rw-r--r--include/mruby/irep.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/mruby/irep.h b/include/mruby/irep.h
index 7dcf33735..76bafb25c 100644
--- a/include/mruby/irep.h
+++ b/include/mruby/irep.h
@@ -44,7 +44,8 @@ typedef struct mrb_irep {
uint16_t *lines;
struct mrb_irep_debug_info* debug_info;
- uint16_t ilen, plen, slen, rlen, refcnt;
+ uint16_t ilen, plen, slen, rlen;
+ uint32_t refcnt;
} mrb_irep;
#define MRB_ISEQ_NO_FREE 1