X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=opcode.h;h=a8a04399997e6a51d7ff5a40d1449dd9a8077e30;hb=265757707c25dcaf2ab1b88e3380267b0db1bcba;hp=fd12e46afe85efce42690cc96177fcea9a74fe20;hpb=a27978d3b51a1694fbb3bf9d13a41f0518386f5c;p=p5sagit%2Fp5-mst-13.2.git diff --git a/opcode.h b/opcode.h index fd12e46..a8a0439 100644 --- a/opcode.h +++ b/opcode.h @@ -11,6 +11,16 @@ START_EXTERN_C +#ifdef PERL_CUSTOM_OPS +#define OP_NAME(o) (o->op_type == OP_CUSTOM ? custom_op_name(o) : \ + PL_op_name[o->op_type]) +#define OP_DESC(o) (o->op_type == OP_CUSTOM ? custom_op_desc(o) : \ + PL_op_desc[o->op_type]) +#else +#define OP_NAME(o) PL_op_name[o->op_type] +#define OP_DESC(o) PL_op_desc[o->op_type] +#endif + #ifndef DOINIT EXT char *PL_op_name[]; #else @@ -366,6 +376,7 @@ EXT char *PL_op_name[] = { "threadsv", "setstate", "method_named", + "custom", }; #endif @@ -724,6 +735,7 @@ EXT char *PL_op_desc[] = { "per-thread value", "set statement info", "method with known name", + "unknown custom operator", }; #endif @@ -1289,7 +1301,7 @@ EXT OP * (CPERLscope(*PL_check)[]) (pTHX_ OP *op) = { MEMBER_TO_FPTR(Perl_ck_fun), /* close */ MEMBER_TO_FPTR(Perl_ck_fun), /* pipe_op */ MEMBER_TO_FPTR(Perl_ck_fun), /* fileno */ - MEMBER_TO_FPTR(Perl_ck_octmode), /* umask */ + MEMBER_TO_FPTR(Perl_ck_fun), /* umask */ MEMBER_TO_FPTR(Perl_ck_fun), /* binmode */ MEMBER_TO_FPTR(Perl_ck_fun), /* tie */ MEMBER_TO_FPTR(Perl_ck_fun), /* untie */ @@ -1361,13 +1373,13 @@ EXT OP * (CPERLscope(*PL_check)[]) (pTHX_ OP *op) = { MEMBER_TO_FPTR(Perl_ck_fun), /* chown */ MEMBER_TO_FPTR(Perl_ck_fun), /* chroot */ MEMBER_TO_FPTR(Perl_ck_fun), /* unlink */ - MEMBER_TO_FPTR(Perl_ck_octmode), /* chmod */ + MEMBER_TO_FPTR(Perl_ck_fun), /* chmod */ MEMBER_TO_FPTR(Perl_ck_fun), /* utime */ MEMBER_TO_FPTR(Perl_ck_fun), /* rename */ MEMBER_TO_FPTR(Perl_ck_fun), /* link */ MEMBER_TO_FPTR(Perl_ck_fun), /* symlink */ MEMBER_TO_FPTR(Perl_ck_fun), /* readlink */ - MEMBER_TO_FPTR(Perl_ck_octmode), /* mkdir */ + MEMBER_TO_FPTR(Perl_ck_fun), /* mkdir */ MEMBER_TO_FPTR(Perl_ck_fun), /* rmdir */ MEMBER_TO_FPTR(Perl_ck_fun), /* open_dir */ MEMBER_TO_FPTR(Perl_ck_fun), /* readdir */ @@ -1445,6 +1457,7 @@ EXT OP * (CPERLscope(*PL_check)[]) (pTHX_ OP *op) = { MEMBER_TO_FPTR(Perl_ck_null), /* threadsv */ MEMBER_TO_FPTR(Perl_ck_null), /* setstate */ MEMBER_TO_FPTR(Perl_ck_null), /* method_named */ + MEMBER_TO_FPTR(Perl_ck_null), /* custom */ }; #endif @@ -1803,6 +1816,7 @@ EXT U32 PL_opargs[] = { 0x00000044, /* threadsv */ 0x00001404, /* setstate */ 0x00000c40, /* method_named */ + 0x00000000, /* custom */ }; #endif