]> granicus.if.org Git - php/commitdiff
Simplify code using XOR
authorZeev Suraski <zeev@php.net>
Mon, 4 Aug 2003 07:53:09 +0000 (07:53 +0000)
committerZeev Suraski <zeev@php.net>
Mon, 4 Aug 2003 07:53:09 +0000 (07:53 +0000)
Zend/zend_compile.c

index 1ff9bb1e37e94ace5e6be25e48e912f5413deaa3..894b96c15cd64bc201c418433778d68f64ace514 100644 (file)
@@ -1607,15 +1607,12 @@ static zend_bool zend_do_perform_implementation_check(zend_function *fe)
        }
 
        for (i=0; i< fe->common.num_args; i++) {
-               if (fe->common.arg_info[i].class_name) {
-                       if (fe->common.prototype->common.arg_info[i].class_name) {
-                               if (strcmp(fe->common.arg_info[i].class_name, fe->common.prototype->common.arg_info[i].class_name)!=0) {
-                                       return 0;
-                               }
-                       } else {
-                               return 0;
-                       }
-               } else if (fe->common.prototype->common.arg_info[i].class_name) {
+               if (ZEND_LOG_XOR(fe->common.arg_info[i].class_name, fe->common.prototype->common.arg_info[i].class_name)) {
+                       /* Only one has a type hint and the other one doesn't */
+                       return 0;
+               }
+               if (fe->common.arg_info[i].class_name
+                       && strcmp(fe->common.arg_info[i].class_name, fe->common.prototype->common.arg_info[i].class_name)!=0) {
                        return 0;
                }
                if (fe->common.arg_info[i].pass_by_reference != fe->common.prototype->common.arg_info[i].pass_by_reference) {