@@ -2728,15 +2728,15 @@ static zend_lifetime_interval** zend_jit_trace_allocate_registers(zend_jit_trace
27282728 ZEND_ASSERT (ssa -> var_info != NULL );
27292729
27302730 start = do_alloca (sizeof (int ) * ssa -> vars_count * 2 +
2731- ZEND_MM_ALIGNED_SIZE (sizeof (uint8_t ) * ssa -> vars_count ) +
2732- ZEND_MM_ALIGNED_SIZE (sizeof (zend_op_array * ) * ssa -> vars_count ),
2731+ ZEND_MM_ALIGNED_SIZE (sizeof (uint8_t ) * ssa -> vars_count ),
27332732 use_heap );
27342733 if (!start ) {
27352734 return NULL ;
27362735 }
27372736 end = start + ssa -> vars_count ;
27382737 flags = (uint8_t * )(end + ssa -> vars_count );
2739- vars_op_array = (const zend_op_array * * )(flags + ZEND_MM_ALIGNED_SIZE (sizeof (uint8_t ) * ssa -> vars_count ));
2738+ checkpoint = zend_arena_checkpoint (CG (arena ));
2739+ vars_op_array = zend_arena_calloc (& CG (arena ), ssa -> vars_count , sizeof (zend_op_array * ));
27402740
27412741 memset (start , -1 , sizeof (int ) * ssa -> vars_count * 2 );
27422742 memset (flags , 0 , sizeof (uint8_t ) * ssa -> vars_count );
@@ -3131,10 +3131,10 @@ static zend_lifetime_interval** zend_jit_trace_allocate_registers(zend_jit_trace
31313131
31323132 if (!count ) {
31333133 free_alloca (start , use_heap );
3134+ zend_arena_release (& CG (arena ), checkpoint );
31343135 return NULL ;
31353136 }
31363137
3137- checkpoint = zend_arena_checkpoint (CG (arena ));
31383138 intervals = zend_arena_calloc (& CG (arena ), ssa -> vars_count , sizeof (zend_lifetime_interval ));
31393139 memset (intervals , 0 , sizeof (zend_lifetime_interval * ) * ssa -> vars_count );
31403140 list = zend_arena_alloc (& CG (arena ), sizeof (zend_lifetime_interval ) * count );
0 commit comments