static void zend_persist_zval(zval *z TSRMLS_DC)
{
+ zend_uchar flags;
void *new_ptr;
#if ZEND_EXTENSION_API_NO >= PHP_5_3_X_API_NO
#endif
case IS_STRING:
case IS_CONSTANT:
+ flags = Z_STR_P(z)->gc.u.v.flags & ~ (IS_STR_PERSISTENT | IS_STR_INTERNED | IS_STR_PERMANENT);
zend_accel_store_interned_string(Z_STR_P(z));
+ Z_STR_P(z)->gc.u.v.flags |= flags;
break;
case IS_ARRAY:
case IS_CONSTANT_ARRAY:
/* persist bucket and key */
if (p->key) {
+ zend_uchar flags = p->key->gc.u.v.flags & ~ (IS_STR_PERSISTENT | IS_STR_INTERNED | IS_STR_PERMANENT);
ADD_INTERNED_STRING(p->key, 1);
+ p->key->gc.u.v.flags |= flags;
}
ADD_SIZE(pPersistElement(&p->val TSRMLS_CC));
static uint zend_persist_zval_calc(zval *z TSRMLS_DC)
{
+ zend_uchar flags;
uint size;
START_SIZE();
#endif
case IS_STRING:
case IS_CONSTANT:
+ flags = Z_STR_P(z)->gc.u.v.flags & ~ (IS_STR_PERSISTENT | IS_STR_INTERNED | IS_STR_PERMANENT);
ADD_INTERNED_STRING(Z_STR_P(z), 0);
+ Z_STR_P(z)->gc.u.v.flags |= flags;
break;
case IS_ARRAY:
case IS_CONSTANT_ARRAY: