diff options
Diffstat (limited to 'src/sp_sloppy.c')
| -rw-r--r-- | src/sp_sloppy.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/sp_sloppy.c b/src/sp_sloppy.c index 2c6ef6a..4c97d0e 100644 --- a/src/sp_sloppy.c +++ b/src/sp_sloppy.c | |||
| @@ -1,16 +1,17 @@ | |||
| 1 | #include "php_snuffleupagus.h" | 1 | #include "php_snuffleupagus.h" |
| 2 | 2 | ||
| 3 | void sp_sloppy_modify_opcode(zend_op_array* opline) { | 3 | void sp_sloppy_modify_opcode(zend_op_array* opline) { |
| 4 | if (NULL != opline) { | 4 | if (NULL == opline) { |
| 5 | for (size_t i = 0; i < opline->last; i++) { | 5 | return; |
| 6 | zend_op* orig_opline = &(opline->opcodes[i]); | 6 | } |
| 7 | if (orig_opline->opcode == ZEND_IS_EQUAL) { | 7 | for (size_t i = 0; i < opline->last; i++) { |
| 8 | orig_opline->opcode = ZEND_IS_IDENTICAL; | 8 | zend_op* orig_opline = &(opline->opcodes[i]); |
| 9 | zend_vm_set_opcode_handler(orig_opline); | 9 | if (orig_opline->opcode == ZEND_IS_EQUAL) { |
| 10 | } else if (orig_opline->opcode == ZEND_IS_NOT_EQUAL) { | 10 | orig_opline->opcode = ZEND_IS_IDENTICAL; |
| 11 | orig_opline->opcode = ZEND_IS_NOT_IDENTICAL; | 11 | zend_vm_set_opcode_handler(orig_opline); |
| 12 | zend_vm_set_opcode_handler(orig_opline); | 12 | } else if (orig_opline->opcode == ZEND_IS_NOT_EQUAL) { |
| 13 | } | 13 | orig_opline->opcode = ZEND_IS_NOT_IDENTICAL; |
| 14 | zend_vm_set_opcode_handler(orig_opline); | ||
| 14 | } | 15 | } |
| 15 | } | 16 | } |
| 16 | } | 17 | } |
