Further Byteloader tweaks from Enache.
[p5sagit/p5-mst-13.2.git] / ext / B / B / Disassembler.pm
index a563715..fc115d4 100644 (file)
@@ -139,13 +139,14 @@ sub GET_op_tr_array {
     my $fh = shift;
     my $len = unpack "S", $fh->readn(2);
     my @ary = unpack "S*", $fh->readn($len*2);
-    return join(",", @ary);
+    return join(",", $len, @ary);
 }
 
 sub GET_IV64 {
     my $fh = shift;
-    my ($hi, $lo) = unpack("LL", $fh->readn(8));
-    return sprintf("0x%x%08x", $hi, $lo); # cheat
+    my $str = $fh->readn(8);
+    croak "reached EOF while reading I32" unless length($str) == 8;
+    return sprintf "0x%09llx", unpack("q", $str);
 }
 
 sub GET_IV {