File tree Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -9353,8 +9353,18 @@ static int zend_jit_init_static_method_call(zend_jit_ctx         *jit,
93539353		if (opline->op1_type == IS_UNUSED
93549354		 && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT ||
93559355		     (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) {
9356- 			if (! op_array->scope || (op_array-> fn_flags & ZEND_ACC_STATIC) ) {
9356+ 			if (op_array->fn_flags & ZEND_ACC_STATIC) {
93579357				scope_ref = ir_LOAD_A(jit_EX(This.value.ref));
9358+ 			} else if (op_array->fn_flags & ZEND_ACC_CLOSURE) {
9359+ 				ir_ref if_object, values = IR_UNUSED;
9360+ 
9361+ 				if_object = ir_IF(ir_EQ(jit_Z_TYPE_ref(jit, jit_EX(This)), ir_CONST_U8(IS_OBJECT)));
9362+ 				ir_IF_TRUE(if_object);
9363+ 				ir_END_PHI_list(values,
9364+ 					ir_LOAD_A(ir_ADD_OFFSET(ir_LOAD_A(jit_EX(This.value.ref)), offsetof(zend_object, ce))));
9365+ 				ir_IF_FALSE(if_object);
9366+ 				ir_END_PHI_list(values, ir_LOAD_A(jit_EX(This.value.ref)));
9367+ 				ir_PHI_list(values);
93589368			} else {
93599369				scope_ref = ir_LOAD_A(ir_ADD_OFFSET(ir_LOAD_A(jit_EX(This.value.ref)), offsetof(zend_object, ce)));
93609370			}
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments