|
Revision 14466, 0.5 kB
(checked in by yappo, 7 months ago)
|
|
Perlのオペコードの数字が3の倍数の命令を実行する時だけPerl VMがアホになります。 これでいいんかなぁ?
|
| Line | |
|---|
| 1 | #define PERL_CORE |
|---|
| 2 | |
|---|
| 3 | #include "EXTERN.h" |
|---|
| 4 | #include "perl.h" |
|---|
| 5 | #include "XSUB.h" |
|---|
| 6 | |
|---|
| 7 | #include "ppport.h" |
|---|
| 8 | |
|---|
| 9 | static OP *(*PL_ppaddr_bak[OP_max + 1])(pTHX); |
|---|
| 10 | |
|---|
| 11 | OP * aho(pTHX) { |
|---|
| 12 | if (!(PL_op->op_type % 3)) PerlIO_printf(PerlIO_stderr(), "AHO: %d\n", PL_op->op_type); |
|---|
| 13 | return PL_ppaddr_bak[PL_op->op_type](aTHX); |
|---|
| 14 | } |
|---|
| 15 | |
|---|
| 16 | MODULE = Acme::NabeAtzz PACKAGE = Acme::NabeAtzz |
|---|
| 17 | |
|---|
| 18 | PROTOTYPES: ENABLE |
|---|
| 19 | |
|---|
| 20 | void |
|---|
| 21 | _setup() |
|---|
| 22 | PROTOTYPE: |
|---|
| 23 | CODE: |
|---|
| 24 | int i; |
|---|
| 25 | for (i = 0;i < OP_max;i++) { |
|---|
| 26 | PL_ppaddr_bak[i] = PL_ppaddr[i]; |
|---|
| 27 | PL_ppaddr[i] = aho; |
|---|
| 28 | } |
|---|