From ddba2014c642b886fc9ae3bf44d6a8a10af58be5 Mon Sep 17 00:00:00 2001 From: ko1 Date: Tue, 8 Dec 2015 15:30:46 +0000 Subject: [PATCH] * compile.c (iseq_ibf_dump): dump extra data just string length. * sample/iseq_loader.rb: add using RubyVM::InstructionSequence.from_binary_format_extra_data method (commented out). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ compile.c | 2 +- sample/iseq_loader.rb | 5 ++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5166ba1d33..438b686df9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Wed Dec 9 00:24:33 2015 Koichi Sasada + + * compile.c (iseq_ibf_dump): dump extra data just string length. + + * sample/iseq_loader.rb: add using + RubyVM::InstructionSequence.from_binary_format_extra_data method + (commented out). + Mon Dec 9 00:21:19 2015 Yuki Nishijima * gems/bundled_gems: Upgrade the did_you_mean gem to 1.0.0.rc1 diff --git a/compile.c b/compile.c index 4c4cc324df..31741ca598 100644 --- a/compile.c +++ b/compile.c @@ -8116,7 +8116,7 @@ iseq_ibf_dump(const rb_iseq_t *iseq, VALUE opt) if (RTEST(opt)) { VALUE opt_str = opt; const char *ptr = StringValuePtr(opt_str); - header.extra_size = RSTRING_LENINT(opt_str) + 1; + header.extra_size = RSTRING_LENINT(opt_str); ibf_dump_write(dump, ptr, header.extra_size); } else { diff --git a/sample/iseq_loader.rb b/sample/iseq_loader.rb index 6c6a67d3c8..2fd9184a7d 100644 --- a/sample/iseq_loader.rb +++ b/sample/iseq_loader.rb @@ -70,7 +70,10 @@ class RubyVM::InstructionSequence $ISEQ_LOADER_LOADED += 1 STDERR.puts "[ISEQ_LOADER] #{Process.pid} load #{fname} from #{iseq_key}" if COMPILE_DEBUG binary = read_compiled_iseq(fname, iseq_key) - RubyVM::InstructionSequence.from_binary_format(binary) + iseq = RubyVM::InstructionSequence.from_binary_format(binary) + # p [extra_data(iseq.path), RubyVM::InstructionSequence.from_binary_format_extra_data(binary)] + # raise unless extra_data(iseq.path) == RubyVM::InstructionSequence.from_binary_format_extra_data(binary) + iseq elsif COMPILE_IF_NOT_COMPILED compile_and_save_iseq(fname, iseq_key) else