@@ -4430,6 +4430,23 @@ static int zend_jit_setup_hot_counters(zend_op_array *op_array)
4430
4430
4431
4431
#include "jit/zend_jit_trace.c"
4432
4432
4433
+ /**
4434
+ * Allocate and initialize a new #zend_jit_op_array_extension for the
4435
+ * given #zend_op_array.
4436
+ */
4437
+ static zend_jit_op_array_extension * zend_jit_new_op_array_extension (zend_op_array * op_array )
4438
+ {
4439
+ zend_jit_op_array_extension * jit_extension = (zend_jit_op_array_extension * )zend_shared_alloc (sizeof (zend_jit_op_array_extension ));
4440
+ if (!jit_extension ) {
4441
+ return NULL ;
4442
+ }
4443
+
4444
+ memset (& jit_extension -> func_info , 0 , sizeof (zend_func_info ));
4445
+ ZEND_SET_FUNC_INFO (op_array , (void * )jit_extension );
4446
+ zend_shared_alloc_register_xlat_entry (op_array -> opcodes , jit_extension );
4447
+ return jit_extension ;
4448
+ }
4449
+
4433
4450
ZEND_EXT_API int zend_jit_op_array (zend_op_array * op_array , zend_script * script )
4434
4451
{
4435
4452
if (dasm_ptr == NULL ) {
@@ -4453,16 +4470,13 @@ ZEND_EXT_API int zend_jit_op_array(zend_op_array *op_array, zend_script *script)
4453
4470
opline ++ ;
4454
4471
}
4455
4472
}
4456
- jit_extension = ( zend_jit_op_array_extension * ) zend_shared_alloc ( sizeof ( zend_jit_op_array_extension ) );
4473
+ jit_extension = zend_jit_new_op_array_extension ( op_array );
4457
4474
if (!jit_extension ) {
4458
4475
return FAILURE ;
4459
4476
}
4460
- memset (& jit_extension -> func_info , 0 , sizeof (zend_func_info ));
4461
4477
jit_extension -> func_info .flags = ZEND_FUNC_JIT_ON_FIRST_EXEC ;
4462
4478
jit_extension -> orig_handler = (void * )opline -> handler ;
4463
- ZEND_SET_FUNC_INFO (op_array , (void * )jit_extension );
4464
4479
opline -> handler = (const void * )zend_jit_runtime_jit_handler ;
4465
- zend_shared_alloc_register_xlat_entry (op_array -> opcodes , jit_extension );
4466
4480
4467
4481
return SUCCESS ;
4468
4482
} else if (JIT_G (trigger ) == ZEND_JIT_ON_PROF_REQUEST ) {
@@ -4482,16 +4496,13 @@ ZEND_EXT_API int zend_jit_op_array(zend_op_array *op_array, zend_script *script)
4482
4496
opline ++ ;
4483
4497
}
4484
4498
}
4485
- jit_extension = ( zend_jit_op_array_extension * ) zend_shared_alloc ( sizeof ( zend_jit_op_array_extension ) );
4499
+ jit_extension = zend_jit_new_op_array_extension ( op_array );
4486
4500
if (!jit_extension ) {
4487
4501
return FAILURE ;
4488
4502
}
4489
- memset (& jit_extension -> func_info , 0 , sizeof (zend_func_info ));
4490
4503
jit_extension -> func_info .flags = ZEND_FUNC_JIT_ON_PROF_REQUEST ;
4491
4504
jit_extension -> orig_handler = (void * )opline -> handler ;
4492
- ZEND_SET_FUNC_INFO (op_array , (void * )jit_extension );
4493
4505
opline -> handler = (const void * )zend_jit_profile_jit_handler ;
4494
- zend_shared_alloc_register_xlat_entry (op_array -> opcodes , jit_extension );
4495
4506
}
4496
4507
4497
4508
return SUCCESS ;
0 commit comments