From 500bd38dfe12899ded93f049741afffdb03974a1 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 30 Aug 2018 00:25:25 +0900 Subject: `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. --- include/mruby/irep.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3