@@ -1541,17 +1541,16 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
1541
1541
{
1542
1542
USE_OPLINE
1543
1543
zend_function *fbc;
1544
- zval *function_name, *func ;
1544
+ zval *function_name;
1545
1545
1546
1546
if (IS_CONST == IS_CONST && Z_TYPE_P(EX_CONSTANT(opline->op2)) == IS_STRING) {
1547
1547
function_name = (zval*)(EX_CONSTANT(opline->op2)+1);
1548
1548
if (CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)))) {
1549
1549
fbc = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)));
1550
- } else if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(function_name))) == NULL )) {
1550
+ } else if (UNEXPECTED(!ZEND_LOOKUP_FUNCTION_BY_NAME( Z_STR_P(function_name), fbc) )) {
1551
1551
SAVE_OPLINE();
1552
1552
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
1553
1553
} else {
1554
- fbc = Z_FUNC_P(func);
1555
1554
CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), fbc);
1556
1555
}
1557
1556
@@ -1561,7 +1560,6 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
1561
1560
/*CHECK_EXCEPTION();*/
1562
1561
ZEND_VM_NEXT_OPCODE();
1563
1562
} else {
1564
- zend_string *lcname;
1565
1563
zend_free_op free_op2;
1566
1564
zend_class_entry *called_scope;
1567
1565
zend_object *object;
@@ -1571,19 +1569,10 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE
1571
1569
1572
1570
try_function_name:
1573
1571
if (IS_CONST != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) {
1574
- if (Z_STRVAL_P(function_name)[0] == '\\') {
1575
- lcname = zend_string_alloc(Z_STRLEN_P(function_name) - 1, 0);
1576
- zend_str_tolower_copy(lcname->val, Z_STRVAL_P(function_name) + 1, Z_STRLEN_P(function_name) - 1);
1577
- } else {
1578
- lcname = zend_string_alloc(Z_STRLEN_P(function_name), 0);
1579
- zend_str_tolower_copy(lcname->val, Z_STRVAL_P(function_name), Z_STRLEN_P(function_name));
1580
- }
1581
- if (UNEXPECTED((func = zend_hash_find(EG(function_table), lcname)) == NULL)) {
1572
+ if (UNEXPECTED(!ZEND_LOOKUP_FUNCTION_BY_NAME(Z_STR_P(function_name), fbc))) {
1582
1573
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(function_name));
1583
1574
}
1584
- zend_string_free(lcname);
1585
1575
1586
- fbc = Z_FUNC_P(func);
1587
1576
called_scope = NULL;
1588
1577
object = NULL;
1589
1578
} else if (IS_CONST != IS_CONST &&
@@ -1693,17 +1682,15 @@ static int ZEND_FASTCALL ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPC
1693
1682
func_name = EX_CONSTANT(opline->op2) + 1;
1694
1683
if (CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)))) {
1695
1684
fbc = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)));
1696
- } else if ((func = zend_hash_find(EG(function_table), Z_STR_P(func_name))) == NULL ) {
1685
+ } else if (!ZEND_LOOKUP_FUNCTION_BY_NAME( Z_STR_P(func_name), fbc) ) {
1697
1686
func_name++;
1698
- if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(func_name))) == NULL )) {
1687
+ if (!ZEND_LOOKUP_FUNCTION_BY_NAME( Z_STR_P(func_name), fbc )) {
1699
1688
SAVE_OPLINE();
1700
1689
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
1701
1690
} else {
1702
- fbc = Z_FUNC_P(func);
1703
1691
CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), fbc);
1704
1692
}
1705
1693
} else {
1706
- fbc = Z_FUNC_P(func);
1707
1694
CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), fbc);
1708
1695
}
1709
1696
@@ -1718,16 +1705,14 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER
1718
1705
USE_OPLINE
1719
1706
1720
1707
zval *fname = EX_CONSTANT(opline->op2);
1721
- zval *func;
1722
1708
zend_function *fbc;
1723
1709
1724
1710
if (CACHED_PTR(Z_CACHE_SLOT_P(fname))) {
1725
1711
fbc = CACHED_PTR(Z_CACHE_SLOT_P(fname));
1726
- } else if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(fname))) == NULL )) {
1712
+ } else if (UNEXPECTED(!ZEND_LOOKUP_FUNCTION_BY_NAME( Z_STR_P(fname), fbc) )) {
1727
1713
SAVE_OPLINE();
1728
1714
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(fname));
1729
1715
} else {
1730
- fbc = Z_FUNC_P(func);
1731
1716
CACHE_PTR(Z_CACHE_SLOT_P(fname), fbc);
1732
1717
}
1733
1718
@@ -1925,17 +1910,16 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
1925
1910
{
1926
1911
USE_OPLINE
1927
1912
zend_function *fbc;
1928
- zval *function_name, *func ;
1913
+ zval *function_name;
1929
1914
1930
1915
if (IS_CV == IS_CONST && Z_TYPE_P(EX_CONSTANT(opline->op2)) == IS_STRING) {
1931
1916
function_name = (zval*)(EX_CONSTANT(opline->op2)+1);
1932
1917
if (CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)))) {
1933
1918
fbc = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)));
1934
- } else if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(function_name))) == NULL )) {
1919
+ } else if (UNEXPECTED(!ZEND_LOOKUP_FUNCTION_BY_NAME( Z_STR_P(function_name), fbc) )) {
1935
1920
SAVE_OPLINE();
1936
1921
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
1937
1922
} else {
1938
- fbc = Z_FUNC_P(func);
1939
1923
CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), fbc);
1940
1924
}
1941
1925
@@ -1945,7 +1929,6 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
1945
1929
/*CHECK_EXCEPTION();*/
1946
1930
ZEND_VM_NEXT_OPCODE();
1947
1931
} else {
1948
- zend_string *lcname;
1949
1932
zend_free_op free_op2;
1950
1933
zend_class_entry *called_scope;
1951
1934
zend_object *object;
@@ -1955,19 +1938,10 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CV_HANDLER(ZEND_OPCODE_HA
1955
1938
1956
1939
try_function_name:
1957
1940
if (IS_CV != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) {
1958
- if (Z_STRVAL_P(function_name)[0] == '\\') {
1959
- lcname = zend_string_alloc(Z_STRLEN_P(function_name) - 1, 0);
1960
- zend_str_tolower_copy(lcname->val, Z_STRVAL_P(function_name) + 1, Z_STRLEN_P(function_name) - 1);
1961
- } else {
1962
- lcname = zend_string_alloc(Z_STRLEN_P(function_name), 0);
1963
- zend_str_tolower_copy(lcname->val, Z_STRVAL_P(function_name), Z_STRLEN_P(function_name));
1964
- }
1965
- if (UNEXPECTED((func = zend_hash_find(EG(function_table), lcname)) == NULL)) {
1941
+ if (UNEXPECTED(!ZEND_LOOKUP_FUNCTION_BY_NAME(Z_STR_P(function_name), fbc))) {
1966
1942
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(function_name));
1967
1943
}
1968
- zend_string_free(lcname);
1969
1944
1970
- fbc = Z_FUNC_P(func);
1971
1945
called_scope = NULL;
1972
1946
object = NULL;
1973
1947
} else if (IS_CV != IS_CONST &&
@@ -2115,17 +2089,16 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMPVAR_HANDLER(ZEND_OPCOD
2115
2089
{
2116
2090
USE_OPLINE
2117
2091
zend_function *fbc;
2118
- zval *function_name, *func ;
2092
+ zval *function_name;
2119
2093
2120
2094
if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_TYPE_P(EX_CONSTANT(opline->op2)) == IS_STRING) {
2121
2095
function_name = (zval*)(EX_CONSTANT(opline->op2)+1);
2122
2096
if (CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)))) {
2123
2097
fbc = CACHED_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)));
2124
- } else if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(function_name))) == NULL )) {
2098
+ } else if (UNEXPECTED(!ZEND_LOOKUP_FUNCTION_BY_NAME( Z_STR_P(function_name), fbc) )) {
2125
2099
SAVE_OPLINE();
2126
2100
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
2127
2101
} else {
2128
- fbc = Z_FUNC_P(func);
2129
2102
CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), fbc);
2130
2103
}
2131
2104
@@ -2135,7 +2108,6 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMPVAR_HANDLER(ZEND_OPCOD
2135
2108
/*CHECK_EXCEPTION();*/
2136
2109
ZEND_VM_NEXT_OPCODE();
2137
2110
} else {
2138
- zend_string *lcname;
2139
2111
zend_free_op free_op2;
2140
2112
zend_class_entry *called_scope;
2141
2113
zend_object *object;
@@ -2145,20 +2117,11 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_TMPVAR_HANDLER(ZEND_OPCOD
2145
2117
2146
2118
try_function_name:
2147
2119
if ((IS_TMP_VAR|IS_VAR) != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) {
2148
- if (Z_STRVAL_P(function_name)[0] == '\\') {
2149
- lcname = zend_string_alloc(Z_STRLEN_P(function_name) - 1, 0);
2150
- zend_str_tolower_copy(lcname->val, Z_STRVAL_P(function_name) + 1, Z_STRLEN_P(function_name) - 1);
2151
- } else {
2152
- lcname = zend_string_alloc(Z_STRLEN_P(function_name), 0);
2153
- zend_str_tolower_copy(lcname->val, Z_STRVAL_P(function_name), Z_STRLEN_P(function_name));
2154
- }
2155
- if (UNEXPECTED((func = zend_hash_find(EG(function_table), lcname)) == NULL)) {
2120
+ if (UNEXPECTED(!ZEND_LOOKUP_FUNCTION_BY_NAME(Z_STR_P(function_name), fbc))) {
2156
2121
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(function_name));
2157
2122
}
2158
- zend_string_free(lcname);
2159
2123
zval_ptr_dtor_nogc(free_op2);
2160
2124
2161
- fbc = Z_FUNC_P(func);
2162
2125
called_scope = NULL;
2163
2126
object = NULL;
2164
2127
} else if ((IS_TMP_VAR|IS_VAR) != IS_CONST &&
0 commit comments