From: Stefan Esser Date: Sun, 16 Jan 2005 22:02:50 +0000 (+0000) Subject: if 2 of 3 tests are okay still do the 3rd test ! X-Git-Tag: php-5.0.4RC1~338 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d825ced8440ba2483cc7504c9af1e62d57738eda;p=php if 2 of 3 tests are okay still do the 3rd test ! --- diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c index 18c405b649..0e94b55fa3 100644 --- a/ext/standard/var_unserializer.c +++ b/ext/standard/var_unserializer.c @@ -56,9 +56,9 @@ static inline void var_push(php_unserialize_data_t *var_hashx, zval **rval) var_hash->data[var_hash->used_slots++] = *rval; } -static inline void var_push(php_unserialize_data_t *var_hashx, zval **rval) +static inline void var_push_dtor(php_unserialize_data_t *var_hashx, zval **rval) { - var_entries *var_hash = var_hashx->first, *prev = NULL; + var_entries *var_hash = var_hashx->first_dtor, *prev = NULL; while (var_hash && var_hash->used_slots == VAR_ENTRIES_MAX) { prev = var_hash; @@ -70,12 +70,13 @@ static inline void var_push(php_unserialize_data_t *var_hashx, zval **rval) var_hash->used_slots = 0; var_hash->next = 0; - if (!var_hashx->first) - var_hashx->first = var_hash; + if (!var_hashx->first_dtor) + var_hashx->first_dtor = var_hash; else prev->next = var_hash; } + (*rval)->refcount++; var_hash->data[var_hash->used_slots++] = *rval; } diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re index f354291815..b1fc58b52e 100644 --- a/ext/standard/var_unserializer.re +++ b/ext/standard/var_unserializer.re @@ -54,9 +54,9 @@ static inline void var_push(php_unserialize_data_t *var_hashx, zval **rval) var_hash->data[var_hash->used_slots++] = *rval; } -static inline void var_push(php_unserialize_data_t *var_hashx, zval **rval) +static inline void var_push_dtor(php_unserialize_data_t *var_hashx, zval **rval) { - var_entries *var_hash = var_hashx->first, *prev = NULL; + var_entries *var_hash = var_hashx->first_dtor, *prev = NULL; while (var_hash && var_hash->used_slots == VAR_ENTRIES_MAX) { prev = var_hash; @@ -68,12 +68,13 @@ static inline void var_push(php_unserialize_data_t *var_hashx, zval **rval) var_hash->used_slots = 0; var_hash->next = 0; - if (!var_hashx->first) - var_hashx->first = var_hash; + if (!var_hashx->first_dtor) + var_hashx->first_dtor = var_hash; else prev->next = var_hash; } + (*rval)->refcount++; var_hash->data[var_hash->used_slots++] = *rval; }