diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2003-08-21 04:30:54 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2003-08-21 04:30:54 +0000 |
commit | ca337316984db69ef8c629fa7228a5d8e486f363 (patch) | |
tree | 6c35bbbf307e2e13e22170f9e4677e6f8487f7a7 /ext/ByteLoader | |
parent | 75d1b5dfc310050618a644104f03818db57b4915 (diff) | |
download | perl-ca337316984db69ef8c629fa7228a5d8e486f363.tar.gz |
Byteloader patching from Enache continues;
PADOFFSET handling was wrong.
p4raw-id: //depot/perl@20792
Diffstat (limited to 'ext/ByteLoader')
-rw-r--r-- | ext/ByteLoader/bytecode.h | 2 | ||||
-rw-r--r-- | ext/ByteLoader/byterun.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/ext/ByteLoader/bytecode.h b/ext/ByteLoader/bytecode.h index 8ca9382fa6..c0093a5b62 100644 --- a/ext/ByteLoader/bytecode.h +++ b/ext/ByteLoader/bytecode.h @@ -20,6 +20,8 @@ typedef char *pvindex; BGET_FREAD(&arg, sizeof(U32), 1) #define BGET_UV(arg) \ BGET_FREAD(&arg, sizeof(UV), 1) +#define BGET_PADOFFSET(arg) \ + BGET_FREAD(&arg, sizeof(PADOFFSET), 1) #define BGET_I32(arg) BGET_U32(arg) #define BGET_IV(arg) BGET_UV(arg) diff --git a/ext/ByteLoader/byterun.c b/ext/ByteLoader/byterun.c index 0a8afc627a..abf8fecefd 100644 --- a/ext/ByteLoader/byterun.c +++ b/ext/ByteLoader/byterun.c @@ -738,7 +738,7 @@ byterun(pTHX_ register struct byteloader_state *bstate) case INSN_OP_TARG: /* 97 */ { PADOFFSET arg; - BGET_U32(arg); + BGET_PADOFFSET(arg); PL_op->op_targ = arg; break; } @@ -823,7 +823,7 @@ byterun(pTHX_ register struct byteloader_state *bstate) case INSN_OP_PMREPLROOTPO: /* 109 */ { PADOFFSET arg; - BGET_U32(arg); + BGET_PADOFFSET(arg); cPMOP->op_pmreplroot = (OP*)arg; break; } @@ -881,7 +881,7 @@ byterun(pTHX_ register struct byteloader_state *bstate) case INSN_OP_PADIX: /* 117 */ { PADOFFSET arg; - BGET_U32(arg); + BGET_PADOFFSET(arg); cPADOP->op_padix = arg; break; } |