diff options
author | Paul "LeoNerd" Evans <leonerd@leonerd.org.uk> | 2021-12-03 22:42:26 +0000 |
---|---|---|
committer | Paul "LeoNerd" Evans <leonerd@leonerd.org.uk> | 2021-12-08 00:05:15 +0000 |
commit | 1dd1944b9e9757d121aa50a03029666ee4a07440 (patch) | |
tree | 1e9081530da05cb117aca1104907409d137b80ea /opcode.h | |
parent | d2817bd771b5f4a948f1a5395803b7d795453c07 (diff) | |
download | perl-1dd1944b9e9757d121aa50a03029666ee4a07440.tar.gz |
Give blessed() the same TRUEBOOL optimisation that ref() has in boolean contexts
Diffstat (limited to 'opcode.h')
-rw-r--r-- | opcode.h | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -2240,7 +2240,7 @@ EXTCONST U32 PL_opargs[] = { 0x0000011e, /* isweak */ 0x00000100, /* weaken */ 0x00000100, /* unweaken */ - 0x0000011e, /* blessed */ + 0x00000106, /* blessed */ 0x0000011e, /* refaddr */ 0x0000011e, /* reftype */ }; @@ -2917,7 +2917,7 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = { 75, /* isweak */ 0, /* weaken */ 0, /* unweaken */ - 75, /* blessed */ + 49, /* blessed */ 75, /* refaddr */ 75, /* reftype */ @@ -2952,14 +2952,14 @@ EXTCONST U16 PL_op_private_bitdefs[] = { 0x2fdc, 0x3658, 0x03d6, 0x4184, 0x0003, /* rv2sv */ 0x30cc, 0x0003, /* av2arylen, akeys, values, keys */ 0x339c, 0x1078, 0x0dd4, 0x014c, 0x4488, 0x4184, 0x0003, /* rv2cv */ - 0x05b4, 0x0650, 0x0003, /* ref */ + 0x05b4, 0x0650, 0x0003, /* ref, blessed */ 0x018f, /* bless, glob, sprintf, formline, unpack, pack, join, anonlist, anonhash, splice, warn, die, reset, exit, close, pipe_op, fileno, umask, binmode, tie, dbmopen, sselect, select, getc, read, enterwrite, sysopen, sysseek, sysread, syswrite, eof, tell, seek, truncate, fcntl, ioctl, send, recv, socket, sockpair, bind, connect, listen, accept, shutdown, gsockopt, ssockopt, open_dir, seekdir, gmtime, shmget, shmctl, shmread, shmwrite, msgget, msgctl, msgsnd, msgrcv, semop, semget, semctl, ghbyaddr, gnbyaddr, gpbynumber, gsbyname, gsbyport, syscall */ 0x383c, 0x3758, 0x2894, 0x27d0, 0x0003, /* backtick */ 0x05b5, /* subst */ 0x117c, 0x21b8, 0x09b4, 0x3fec, 0x2548, 0x4764, 0x07c1, /* trans, transr */ 0x0fbc, 0x04d8, 0x0067, /* sassign */ 0x0c78, 0x0b74, 0x0a70, 0x30cc, 0x05a8, 0x0067, /* aassign */ - 0x4530, 0x0003, /* chomp, schomp, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, ord, chr, chroot, rmdir, isbool, isweak, blessed, refaddr, reftype */ + 0x4530, 0x0003, /* chomp, schomp, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, ord, chr, chroot, rmdir, isbool, isweak, refaddr, reftype */ 0x05b4, 0x30cc, 0x0003, /* pos */ 0x4530, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract */ 0x1538, 0x0067, /* repeat */ @@ -3427,7 +3427,7 @@ EXTCONST U8 PL_op_private_valid[] = { /* ISWEAK */ (OPpARG1_MASK|OPpTARGET_MY), /* WEAKEN */ (OPpARG1_MASK), /* UNWEAKEN */ (OPpARG1_MASK), - /* BLESSED */ (OPpARG1_MASK|OPpTARGET_MY), + /* BLESSED */ (OPpARG1_MASK|OPpMAYBE_TRUEBOOL|OPpTRUEBOOL), /* REFADDR */ (OPpARG1_MASK|OPpTARGET_MY), /* REFTYPE */ (OPpARG1_MASK|OPpTARGET_MY), |