]> granicus.if.org Git - php/commitdiff
and use it...
authorStefan Esser <sesser@php.net>
Sat, 15 Jan 2005 18:30:16 +0000 (18:30 +0000)
committerStefan Esser <sesser@php.net>
Sat, 15 Jan 2005 18:30:16 +0000 (18:30 +0000)
ext/standard/var_unserializer.c
ext/standard/var_unserializer.re

index 354ab0fbdccfa6efc44fa164369e309f7ac07d59..c1800258d37d7aeb32334370fc3af0c347e42339 100644 (file)
@@ -241,14 +241,14 @@ static inline int process_nested_data(UNSERIALIZE_PARAMETER, HashTable *ht, int
 
                switch (Z_TYPE_P(key)) {
                        case IS_LONG:
-                               if (zend_hash_index_find(ht, Z_LVAL_P(key), (void **)&old_data)) {
-                                       var_replace(var_hash, old_data, rval);
+                               if (zend_hash_index_find(ht, Z_LVAL_P(key), (void **)&old_data)==SUCCESS) {
+                                       var_push_dtor(var_hash, old_data);
                                }
                                zend_hash_index_update(ht, Z_LVAL_P(key), &data, sizeof(data), NULL);
                                break;
                        case IS_STRING:
-                               if (zend_hash_find(ht, Z_STRVAL_P(key), Z_STRLEN_P(key) + 1, (void **)&old_data)) {
-                                       var_replace(var_hash, old_data, rval);
+                               if (zend_hash_find(ht, Z_STRVAL_P(key), Z_STRLEN_P(key) + 1, (void **)&old_data)==SUCCESS) {
+                                       var_push_dtor(var_hash, old_data);
                                }
                                zend_hash_update(ht, Z_STRVAL_P(key), Z_STRLEN_P(key) + 1, &data, sizeof(data), NULL);
                                break;
index 4d0ea6c3dc8bdac8594da382058b9a4ffd313c07..e345240028ff6a7a981bac6b557c6b7d0ae11253 100644 (file)
@@ -244,14 +244,14 @@ static inline int process_nested_data(UNSERIALIZE_PARAMETER, HashTable *ht, int
 
                switch (Z_TYPE_P(key)) {
                        case IS_LONG:
-                               if (zend_hash_index_find(ht, Z_LVAL_P(key), (void **)&old_data)) {
-                                       var_replace(var_hash, old_data, rval);
+                               if (zend_hash_index_find(ht, Z_LVAL_P(key), (void **)&old_data)==SUCCESS) {
+                                       var_push_dtor(var_hash, old_data);
                                }
                                zend_hash_index_update(ht, Z_LVAL_P(key), &data, sizeof(data), NULL);
                                break;
                        case IS_STRING:
-                               if (zend_hash_find(ht, Z_STRVAL_P(key), Z_STRLEN_P(key) + 1, (void **)&old_data)) {
-                                       var_replace(var_hash, old_data, rval);
+                               if (zend_hash_find(ht, Z_STRVAL_P(key), Z_STRLEN_P(key) + 1, (void **)&old_data)==SUCCESS) {
+                                       var_push_dtor(var_hash, old_data);
                                }
                                zend_hash_update(ht, Z_STRVAL_P(key), Z_STRLEN_P(key) + 1, &data, sizeof(data), NULL);
                                break;