@@ -1798,14 +1798,14 @@ binary_assign_op_addr: {
1798
1798
case ZEND_FETCH_CLASS :
1799
1799
{
1800
1800
zend_class_entry * * pce ;
1801
+ zend_bool is_const ;
1802
+ char * class_name_strval ;
1803
+ zend_uint class_name_strlen ;
1804
+ zval * class_name ;
1805
+ zval tmp ;
1806
+ int retval ;
1801
1807
1802
1808
if (EX (opline )-> op1 .op_type == IS_UNUSED ) {
1803
- zval tmp ;
1804
- zval * class_name ;
1805
- zend_bool is_const ;
1806
- char * class_name_strval ;
1807
- zend_uint class_name_strlen ;
1808
-
1809
1809
if (EX (opline )-> extended_value == ZEND_FETCH_CLASS_SELF ) {
1810
1810
if (!EG (scope )) {
1811
1811
zend_error (E_ERROR , "Cannot fetch self:: when no class scope is active" );
@@ -1824,40 +1824,40 @@ binary_assign_op_addr: {
1824
1824
}
1825
1825
EX (Ts )[EX (opline )-> result .u .var ].EA .class_entry = EG (scope )-> parent ;
1826
1826
NEXT_OPCODE ();
1827
- }
1827
+ }
1828
+ }
1828
1829
1829
- is_const = (EX (opline )-> op2 .op_type == IS_CONST );
1830
+ is_const = (EX (opline )-> op2 .op_type == IS_CONST );
1830
1831
1831
- if (is_const ) {
1832
- class_name_strval = EX (opline )-> op2 .u .constant .value .str .val ;
1833
- class_name_strlen = EX (opline )-> op2 .u .constant .value .str .len ;
1834
- } else {
1835
- class_name = get_zval_ptr (& EX (opline )-> op2 , EX (Ts ), & EG (free_op2 ), BP_VAR_R );
1832
+ if (is_const ) {
1833
+ class_name_strval = EX (opline )-> op2 .u .constant .value .str .val ;
1834
+ class_name_strlen = EX (opline )-> op2 .u .constant .value .str .len ;
1835
+ } else {
1836
+ class_name = get_zval_ptr (& EX (opline )-> op2 , EX (Ts ), & EG (free_op2 ), BP_VAR_R );
1836
1837
1837
- tmp = * class_name ;
1838
- zval_copy_ctor (& tmp );
1839
- convert_to_string (& tmp );
1840
- zend_str_tolower (tmp .value .str .val , tmp .value .str .len );
1838
+ tmp = * class_name ;
1839
+ zval_copy_ctor (& tmp );
1840
+ convert_to_string (& tmp );
1841
+ zend_str_tolower (tmp .value .str .val , tmp .value .str .len );
1841
1842
1842
- class_name_strval = tmp .value .str .val ;
1843
- class_name_strlen = tmp .value .str .len ;
1844
- }
1843
+ class_name_strval = tmp .value .str .val ;
1844
+ class_name_strlen = tmp .value .str .len ;
1845
+ }
1845
1846
1846
- if (zend_lookup_class (class_name_strval , class_name_strlen , & pce TSRMLS_CC ) == FAILURE ) {
1847
- zend_error (E_ERROR , "Class '%s' not found" , class_name_strval );
1848
- } else {
1849
- EX (Ts )[EX (opline )-> result .u .var ].EA .class_entry = * pce ;
1850
- }
1851
- if (!is_const ) {
1852
- zval_dtor (& tmp );
1853
- FREE_OP (EX (Ts ), & EX (opline )-> op2 , EG (free_op2 ));
1854
- }
1847
+ if (EX (opline )-> op1 .op_type == IS_UNUSED ) {
1848
+ retval = zend_lookup_class (class_name_strval , class_name_strlen , & pce TSRMLS_CC );
1855
1849
} else {
1856
- if (zend_hash_find (& EX (Ts )[EX (opline )-> op1 .u .var ].EA .class_entry -> class_table , EX (opline )-> op2 .u .constant .value .str .val , EX (opline )-> op2 .u .constant .value .str .len + 1 , (void * * )& pce ) == FAILURE ) {
1857
- zend_error (E_ERROR , "Class '%s' not found" , EX (opline )-> op2 .u .constant .value .str .val );
1858
- } else {
1859
- EX (Ts )[EX (opline )-> result .u .var ].EA .class_entry = * pce ;
1860
- }
1850
+ retval = zend_hash_find (& EX (Ts )[EX (opline )-> op1 .u .var ].EA .class_entry -> class_table , class_name_strval , class_name_strlen + 1 , (void * * )& pce );
1851
+ }
1852
+
1853
+ if (retval == FAILURE ) {
1854
+ zend_error (E_ERROR , "Class '%s' not found" , class_name_strval );
1855
+ } else {
1856
+ EX (Ts )[EX (opline )-> result .u .var ].EA .class_entry = * pce ;
1857
+ }
1858
+ if (!is_const ) {
1859
+ zval_dtor (& tmp );
1860
+ FREE_OP (EX (Ts ), & EX (opline )-> op2 , EG (free_op2 ));
1861
1861
}
1862
1862
NEXT_OPCODE ();
1863
1863
}
0 commit comments