summaryrefslogtreecommitdiff
path: root/src/sp_sloppy.c
diff options
context:
space:
mode:
authorjvoisin2022-08-21 15:58:09 +0200
committerjvoisin2022-08-21 19:40:17 +0200
commite6219a095de78ce03be4a36360020a6f4fe94105 (patch)
tree3b5701c88730e914e37ea9d2d966fd2262a63419 /src/sp_sloppy.c
parentb921322ce5faa5c49a14d71bb37f855b0634de0e (diff)
Fix sloppy comparison
Diffstat (limited to 'src/sp_sloppy.c')
-rw-r--r--src/sp_sloppy.c21
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
3void sp_sloppy_modify_opcode(zend_op_array* opline) { 3void 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}