/* move 'to'`s references to 'from' */
to->start_opline = NULL;
to->access = 0;
-//???A efree(to->sources);
to->sources = NULL;
from_block->follow_to = to->follow_to;
if (to->op1_to) {
/* Mark all blocks as unaccessible and destroy back references */
b = blocks;
while (b != NULL) {
- zend_block_source *cs;
if (!start && b->access) {
start = b;
}
b->access = 0;
-//???A cs = b->sources;
-//???A while (cs) {
-//???A zend_block_source *n = cs->next;
-//???A efree(cs);
-//???A cs = n;
-//???A }
b->sources = NULL;
b = b->next;
}
assemble_code_blocks(&cfg, op_array);
/* Destroy CFG */
-/* ???A
- for (cur_block = cfg.blocks; cur_block; cur_block = cur_block->next) {
- zend_block_source *cs = cur_block->sources;
- while (cs) {
- zend_block_source *n = cs->next;
- efree(cs);
- cs = n;
- }
- }
-*/
zend_arena_release(&ctx->arena, checkpoint);
}
j = 0; cache_slots = 0;
zend_hash_init(&hash, 16, NULL, NULL, 0);
map = (int*)zend_arena_alloc(&ctx->arena, op_array->last_literal * sizeof(int));
-//???A
-memset(map, 0, op_array->last_literal * sizeof(int));
+ memset(map, 0, op_array->last_literal * sizeof(int));
for (i = 0; i < op_array->last_literal; i++) {
if (!info[i].flags) {
/* unsed literal */