From e0d967a0dc880da3ec96b1b111092cbac014633d Mon Sep 17 00:00:00 2001 From: Fuji Goro Date: Tue, 30 Aug 2011 19:16:41 +0900 Subject: [PATCH] Fix disasm.pl --- tool/disasm.pl | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tool/disasm.pl b/tool/disasm.pl index eee23ae8..13f1a875 100644 --- a/tool/disasm.pl +++ b/tool/disasm.pl @@ -1,16 +1,26 @@ #!perl -w use strict; -use Text::Xslate; +use Data::MessagePack; use Data::Dumper; -my $tx = Text::Xslate->new(cache => 2); +use File::Slurp qw(slurp); $Data::Dumper::Indent = 0; $Data::Dumper::Terse = 1; $Data::Dumper::Useqq = 1; foreach my $file(@ARGV) { - my $asm = $tx->load_file($file); - foreach my $c(@{$asm}) { + my $data = slurp($file); + my $unpacker = Data::MessagePack::Unpacker->new(); + + my $offset = $unpacker->execute($data); + my $is_utf8 = $unpacker->data(); + $unpacker->reset(); + $unpacker->utf8($is_utf8); + + while($offset < length($data)) { + $offset = $unpacker->execute($data, $offset); + my $c = $unpacker->data(); + $unpacker->reset(); print Dumper($c), "\n"; } }