diff options
| author | dearblue <[email protected]> | 2021-12-13 22:58:57 +0900 |
|---|---|---|
| committer | dearblue <[email protected]> | 2021-12-13 22:58:57 +0900 |
| commit | fa33a5bb0cf08a5ba7405ab1553655bcfabee8cf (patch) | |
| tree | a5618055d4f6040399513d499bec366b784960b6 /src/dump.c | |
| parent | 8a74b2a25d5a0b66326d9642567fef894ea90d10 (diff) | |
| download | mruby-fa33a5bb0cf08a5ba7405ab1553655bcfabee8cf.tar.gz mruby-fa33a5bb0cf08a5ba7405ab1553655bcfabee8cf.zip | |
Avoid losing the upper digits for mruby binary
- `rlen` keeps 16 bits.
- `ilen` keeps 32 bits.
Note that this change will break mruby binary format compatibility.
Diffstat (limited to 'src/dump.c')
| -rw-r--r-- | src/dump.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dump.c b/src/dump.c index 4327cb375..2b7379d8e 100644 --- a/src/dump.c +++ b/src/dump.c @@ -51,7 +51,7 @@ get_iseq_block_size(mrb_state *mrb, const mrb_irep *irep) size_t size = 0; size += sizeof(uint16_t); /* clen */ - size += sizeof(uint16_t); /* ilen */ + size += sizeof(uint32_t); /* ilen */ size += irep->ilen * sizeof(mrb_code); /* iseq(n) */ size += irep->clen * sizeof(struct mrb_irep_catch_handler); @@ -66,7 +66,7 @@ write_iseq_block(mrb_state *mrb, const mrb_irep *irep, uint8_t *buf, uint8_t fla irep->clen * sizeof(struct mrb_irep_catch_handler); cur += uint16_to_bin(irep->clen, cur); /* number of catch handlers */ - cur += uint16_to_bin(irep->ilen, cur); /* number of opcode */ + cur += uint32_to_bin(irep->ilen, cur); /* number of opcode */ memcpy(cur, irep->iseq, seqlen); cur += seqlen; |
