There should not be any need to persist references, and it's unlikely
that persisting a reference will behave correctly at runtime, because
we don't have a concept of an immutable reference.
}
}
break;
- case IS_REFERENCE:
- new_ptr = zend_shared_alloc_get_xlat_entry(Z_REF_P(z));
- if (new_ptr) {
- Z_REF_P(z) = new_ptr;
- } else {
- Z_REF_P(z) = zend_shared_memdup_put_free(Z_REF_P(z), sizeof(zend_reference));
- zend_persist_zval(Z_REFVAL_P(z));
- }
- break;
case IS_CONSTANT_AST:
new_ptr = zend_shared_alloc_get_xlat_entry(Z_AST_P(z));
if (new_ptr) {
}
break;
default:
- ZEND_ASSERT(Z_TYPE_P(z) != IS_OBJECT);
- ZEND_ASSERT(Z_TYPE_P(z) != IS_RESOURCE);
+ ZEND_ASSERT(Z_TYPE_P(z) < IS_STRING);
break;
}
}
} ZEND_HASH_FOREACH_END();
}
break;
- case IS_REFERENCE:
- size = zend_shared_memdup_size(Z_REF_P(z), sizeof(zend_reference));
- if (size) {
- ADD_SIZE(size);
- zend_persist_zval_calc(Z_REFVAL_P(z));
- }
- break;
case IS_CONSTANT_AST:
size = zend_shared_memdup_size(Z_AST_P(z), sizeof(zend_ast_ref));
if (size) {
}
break;
default:
- ZEND_ASSERT(Z_TYPE_P(z) != IS_OBJECT);
- ZEND_ASSERT(Z_TYPE_P(z) != IS_RESOURCE);
+ ZEND_ASSERT(Z_TYPE_P(z) < IS_STRING);
break;
}
}