cvs: /php4/ext/session session.c php_session.h
| From: | Sascha Schumann | Date: | Thu, 16 Sep 1999 12:55:32 +0000 |
| Subject: | cvs: /php4/ext/session session.c php_session.h | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-4515@lists.php.net to get a copy of this message | ||
sas Thu Sep 16 08:55:32 1999 EDT
Modified files:
/php4/ext/session session.c php_session.h
Log:
wddx decode works as well
Index: php4/ext/session/session.c
diff -u php4/ext/session/session.c:1.49 php4/ext/session/session.c:1.50
--- php4/ext/session/session.c:1.49 Thu Sep 16 08:00:58 1999
+++ php4/ext/session/session.c Thu Sep 16 08:55:31 1999
@@ -214,7 +214,6 @@
wddx_packet *packet;
char *key;
zval **struc;
- char *buf;
ELS_FETCH();
packet = _php_wddx_constructor();
@@ -250,13 +249,14 @@
char tmp[128];
ulong idx;
int hash_type;
+ int dofree = 1;
ELS_FETCH();
if(vallen == 0) return FAILURE;
MAKE_STD_ZVAL(retval);
- _php_wddx_deserialize(val, retval);
+ _php_wddx_deserialize_ex(val, vallen, retval);
for(zend_hash_internal_pointer_reset(retval->value.ht);
zend_hash_get_current_data(retval->value.ht, (void **) &ent) == SUCCESS;
@@ -267,10 +267,14 @@
case HASH_KEY_IS_LONG:
sprintf(tmp, "%ld", idx);
key = tmp;
+ dofree = 0;
case HASH_KEY_IS_STRING:
zval_add_ref(ent);
zend_hash_update(&EG(symbol_table), key, strlen(key) + 1,
ent, sizeof(ent), NULL);
+ PS_ADD_VAR(key);
+ if(dofree) efree(key);
+ dofree = 1;
}
}
Index: php4/ext/session/php_session.h
diff -u php4/ext/session/php_session.h:1.17 php4/ext/session/php_session.h:1.18
--- php4/ext/session/php_session.h:1.17 Thu Sep 16 08:00:58 1999
+++ php4/ext/session/php_session.h Thu Sep 16 08:55:31 1999
@@ -148,11 +148,9 @@
#define session_adapt_uris(a,b,c,d) do { } while(0)
#endif
-#if 0
#if HAVE_WDDX
#define WDDX_SERIALIZER
#include "ext/wddx/php_wddx_api.h"
-#endif
#endif
#endif