zval *function_name_ptr, *function_name, *func;
call_slot *call = EX(call_slots) + opline->result.num;
- if (OP2_TYPE == IS_CONST) {
+ if (OP2_TYPE == IS_CONST && Z_TYPE_P(opline->op2.zv) == IS_STRING) {
function_name_ptr = function_name = (zval*)(opline->op2.zv+1);
if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv))) {
call->fbc = CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv));
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
- } else if (OP2_TYPE != IS_CONST &&
- EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) &&
+ } else if (EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) &&
zend_hash_num_elements(Z_ARRVAL_P(function_name)) == 2) {
zval *obj;
zval *method;
zval *function_name_ptr, *function_name, *func;
call_slot *call = EX(call_slots) + opline->result.num;
- if (IS_CONST == IS_CONST) {
+ if (IS_CONST == IS_CONST && Z_TYPE_P(opline->op2.zv) == IS_STRING) {
function_name_ptr = function_name = (zval*)(opline->op2.zv+1);
if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv))) {
call->fbc = CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv));
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
- } else if (IS_CONST != IS_CONST &&
- EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) &&
+ } else if (EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) &&
zend_hash_num_elements(Z_ARRVAL_P(function_name)) == 2) {
zval *obj;
zval *method;
zval *function_name_ptr, *function_name, *func;
call_slot *call = EX(call_slots) + opline->result.num;
- if (IS_TMP_VAR == IS_CONST) {
+ if (IS_TMP_VAR == IS_CONST && Z_TYPE_P(opline->op2.zv) == IS_STRING) {
function_name_ptr = function_name = (zval*)(opline->op2.zv+1);
if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv))) {
call->fbc = CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv));
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
- } else if (IS_TMP_VAR != IS_CONST &&
- EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) &&
+ } else if (EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) &&
zend_hash_num_elements(Z_ARRVAL_P(function_name)) == 2) {
zval *obj;
zval *method;
zval *function_name_ptr, *function_name, *func;
call_slot *call = EX(call_slots) + opline->result.num;
- if (IS_VAR == IS_CONST) {
+ if (IS_VAR == IS_CONST && Z_TYPE_P(opline->op2.zv) == IS_STRING) {
function_name_ptr = function_name = (zval*)(opline->op2.zv+1);
if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv))) {
call->fbc = CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv));
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
- } else if (IS_VAR != IS_CONST &&
- EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) &&
+ } else if (EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) &&
zend_hash_num_elements(Z_ARRVAL_P(function_name)) == 2) {
zval *obj;
zval *method;
zval *function_name_ptr, *function_name, *func;
call_slot *call = EX(call_slots) + opline->result.num;
- if (IS_CV == IS_CONST) {
+ if (IS_CV == IS_CONST && Z_TYPE_P(opline->op2.zv) == IS_STRING) {
function_name_ptr = function_name = (zval*)(opline->op2.zv+1);
if (CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv))) {
call->fbc = CACHED_PTR(Z_CACHE_SLOT_P(opline->op2.zv));
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
- } else if (IS_CV != IS_CONST &&
- EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) &&
+ } else if (EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY) &&
zend_hash_num_elements(Z_ARRVAL_P(function_name)) == 2) {
zval *obj;
zval *method;