diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2018-08-30 00:25:25 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2018-08-30 00:29:35 +0900 |
| commit | 500bd38dfe12899ded93f049741afffdb03974a1 (patch) | |
| tree | 8ea14c352a08f8b8d251162492fe1df47d744ec9 | |
| parent | 2c93e4a0a816d9c0d547a27b9f09fa61a2497d95 (diff) | |
| download | mruby-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.h | 3 |
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 |
