diff options
Diffstat (limited to 'ext/Opcode')
-rw-r--r-- | ext/Opcode/Makefile.PL | 2 | ||||
-rw-r--r-- | ext/Opcode/Opcode.pm | 6 | ||||
-rw-r--r-- | ext/Opcode/Opcode.xs | 5 |
3 files changed, 7 insertions, 6 deletions
diff --git a/ext/Opcode/Makefile.PL b/ext/Opcode/Makefile.PL index c7ddaafd29..7fdcdf6ac1 100644 --- a/ext/Opcode/Makefile.PL +++ b/ext/Opcode/Makefile.PL @@ -3,5 +3,5 @@ WriteMakefile( NAME => 'Opcode', MAN3PODS => ' ', VERSION_FROM => 'Opcode.pm', - XS_VERSION => '1.01' + XS_VERSION => '1.02' ); diff --git a/ext/Opcode/Opcode.pm b/ext/Opcode/Opcode.pm index b3cfb50374..a35ad1b47b 100644 --- a/ext/Opcode/Opcode.pm +++ b/ext/Opcode/Opcode.pm @@ -4,8 +4,8 @@ require 5.002; use vars qw($VERSION $XS_VERSION @ISA @EXPORT_OK); -$VERSION = "1.03"; -$XS_VERSION = "1.01"; +$VERSION = "1.04"; +$XS_VERSION = "1.02"; use strict; use Carp; @@ -382,7 +382,7 @@ such as open would need to be enabled. print sysread syswrite send recv - eof tell seek systell sysseek + eof tell seek sysseek readdir telldir seekdir rewinddir diff --git a/ext/Opcode/Opcode.xs b/ext/Opcode/Opcode.xs index ef2be80594..538f0ecf30 100644 --- a/ext/Opcode/Opcode.xs +++ b/ext/Opcode/Opcode.xs @@ -46,7 +46,7 @@ op_names_init() while(i-- > 0) bitmap[i] = 0xFF; /* Take care to set the right number of bits in the last byte */ - bitmap[len-1] = ~(0xFF << (maxo & 0x07)); + bitmap[len-1] = (maxo & 0x07) ? ~(0xFF << (maxo & 0x07)) : 0xFF; put_op_bitspec(":all",0, opset_all); /* don't mortalise */ } @@ -290,7 +290,8 @@ invert_opset(opset) while(len-- > 0) bitmap[len] = ~bitmap[len]; /* take care of extra bits beyond maxo in last byte */ - bitmap[opset_len-1] &= ~(0xFF << (maxo & 0x07)); + if (maxo & 07) + bitmap[opset_len-1] &= ~(0xFF << (maxo & 0x07)); } ST(0) = opset; |