#if 0
/* pre-evaluate functions:
constant(x)
- defined(x)
function_exists(x)
extension_loaded(x)
BAD: interacts badly with Accelerator
zval *arg = &OPLINE_OP1_LITERAL(sv);
char *fname = FUNCTION_CACHE->funcs[Z_LVAL(ZEND_OP1_LITERAL(fcall))].function_name;
int flen = FUNCTION_CACHE->funcs[Z_LVAL(ZEND_OP1_LITERAL(fcall))].name_len;
- if(flen == sizeof("defined")-1 && zend_binary_strcasecmp(fname, flen, "defined", sizeof("defined")-1) == 0) {
- zval c;
- if(zend_optimizer_get_persistent_constant(Z_STR_P(arg), &c, 0 ELS_CC) != 0) {
- literal_dtor(arg);
- MAKE_NOP(sv);
- MAKE_NOP(fcall);
- LITERAL_BOOL(opline->op1, 1);
- ZEND_OP1_TYPE(opline) = IS_CONST;
- }
- } else if((flen == sizeof("function_exists")-1 && zend_binary_strcasecmp(fname, flen, "function_exists", sizeof("function_exists")-1) == 0) ||
+ if((flen == sizeof("function_exists")-1 && zend_binary_strcasecmp(fname, flen, "function_exists", sizeof("function_exists")-1) == 0) ||
(flen == sizeof("is_callable")-1 && zend_binary_strcasecmp(fname, flen, "is_callable", sizeof("is_callable")-1) == 0)
) {
zend_function *function;
}
/* pre-evaluate constant functions:
- defined(x)
constant(x)
function_exists(x)
is_callable(x)
MAKE_NOP(opline);
break;
}
- } else if (Z_STRLEN(ZEND_OP2_LITERAL(init_opline)) == sizeof("defined")-1 &&
- !memcmp(Z_STRVAL(ZEND_OP2_LITERAL(init_opline)),
- "defined", sizeof("defined")-1) &&
- !zend_optimizer_is_disabled_func("defined", sizeof("defined") - 1)) {
- zval t;
-
- if (zend_optimizer_get_persistent_constant(Z_STR(ZEND_OP1_LITERAL(send1_opline)), &t, 0)) {
-
- ZVAL_TRUE(&t);
- if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_VAR, ZEND_RESULT(opline).var, &t)) {
- literal_dtor(&ZEND_OP2_LITERAL(init_opline));
- MAKE_NOP(init_opline);
- literal_dtor(&ZEND_OP1_LITERAL(send1_opline));
- MAKE_NOP(send1_opline);
- MAKE_NOP(opline);
- break;
- }
- }
} else if (Z_STRLEN(ZEND_OP2_LITERAL(init_opline)) == sizeof("constant")-1 &&
!memcmp(Z_STRVAL(ZEND_OP2_LITERAL(init_opline)),
"constant", sizeof("constant")-1) &&
break;
}
}
- } else if ((CG(compiler_options) & ZEND_COMPILE_NO_BUILTIN_STRLEN) == 0 &&
- Z_STRLEN(ZEND_OP2_LITERAL(init_opline)) == sizeof("strlen") - 1 &&
- !memcmp(Z_STRVAL(ZEND_OP2_LITERAL(init_opline)), "strlen", sizeof("strlen") - 1) &&
- !zend_optimizer_is_disabled_func("strlen", sizeof("strlen") - 1)) {
- zval t;
-
- ZVAL_LONG(&t, Z_STRLEN(ZEND_OP1_LITERAL(send1_opline)));
- if (zend_optimizer_replace_by_const(op_array, opline + 1, IS_VAR, ZEND_RESULT(opline).var, &t)) {
- literal_dtor(&ZEND_OP2_LITERAL(init_opline));
- MAKE_NOP(init_opline);
- literal_dtor(&ZEND_OP1_LITERAL(send1_opline));
- MAKE_NOP(send1_opline);
- MAKE_NOP(opline);
- break;
- }
/* dirname(IS_CONST/IS_STRING) -> IS_CONST/IS_STRING */
} else if (Z_STRLEN(ZEND_OP2_LITERAL(init_opline)) == sizeof("dirname")-1 &&
!memcmp(Z_STRVAL(ZEND_OP2_LITERAL(init_opline)),