compare_function() now has to be compatible with binary_op_type (use fastcall convention).
Introduced new zval_compare_function() to be used as zval comparison callback instead of compare_function().
}
/* }}} */
-ZEND_API int compare_function(zval *result, zval *op1, zval *op2) /* {{{ */
+static zend_always_inline int i_compare_function(zval *result, zval *op1, zval *op2) /* {{{ */
{
int ret;
int converted = 0;
}
/* }}} */
+ZEND_API int ZEND_FASTCALL compare_function(zval *result, zval *op1, zval *op2) /* {{{ */
+{
+ return i_compare_function(result, op1, op2);
+}
+/* }}} */
+
+ZEND_API int zval_compare_function(zval *result, zval *op1, zval *op2) /* {{{ */
+{
+ return i_compare_function(result, op1, op2);
+}
+/* }}} */
+
static int hash_zval_identical_function(zval *z1, zval *z2) /* {{{ */
{
zval result;
return result;
}
-ZEND_API int compare_function(zval *result, zval *op1, zval *op2);
+ZEND_API int ZEND_FASTCALL compare_function(zval *result, zval *op1, zval *op2);
+ZEND_API int zval_compare_function(zval *result, zval *op1, zval *op2);
ZEND_API int numeric_compare_function(zval *result, zval *op1, zval *op2);
ZEND_API int string_compare_function_ex(zval *result, zval *op1, zval *op2, zend_bool case_insensitive);
ZEND_API int string_compare_function(zval *result, zval *op1, zval *op2);
case PHP_SORT_REGULAR:
default:
- ARRAYG(compare_func) = compare_function;
+ ARRAYG(compare_func) = zval_compare_function;
break;
}
}