diff options
| author | dearblue <[email protected]> | 2020-05-24 00:19:04 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-10-12 16:21:32 +0900 |
| commit | a54a3df32c379a6953664f1d9241c731066915ec (patch) | |
| tree | 37ef8811bfe2aaf8533253f6a1025a35bdc58d4d /mruby-source.gemspec | |
| parent | 3ad6bbc40c87f24819c6d8f25446bc74d348c822 (diff) | |
| download | mruby-a54a3df32c379a6953664f1d9241c731066915ec.tar.gz mruby-a54a3df32c379a6953664f1d9241c731066915ec.zip | |
Extended mruby binary format
The catch handler table is combined with iseq block.
This is to prevent the structure from growing by adding a field for the
catch handler table to the `mrb_irep` structure.
"iseq block" and "catch handler table":
[number of catch handler table (2 bytes)]
[number of byte code (4 bytes)]
[iseq (any bytes)]
[catch handlers (multiple of 7 bytes)]
catch handler:
[catch type (1 byte)]
[begin offset (2 bytes)]
[end offset (2 bytes)]
[target offset (2 bytes)]
catch type: enum mrb_catch_type (0 = rescue, 1 = ensure)
begin offset: Includes the specified instruction address
end offset: Does not include the specified instruction address
target offset: replaces pc with the specified instruction address
This table is not expanded by `read_irep_record_1()`.
The necessary elements are expanded one by one when used.
Diffstat (limited to 'mruby-source.gemspec')
0 files changed, 0 insertions, 0 deletions
