cvs: php4 / fopen-wrappers.c /ext/wddx/ wddx.c
| From: | Andrei Zmievski | Date: | Fri, 09 Jun 2000 13:50:39 +0000 |
| Subject: | cvs: php4 / fopen-wrappers.c /ext/wddx/ wddx.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-116@lists.php.net to get a copy of this message | ||
andrei Fri Jun 9 06:50:39 2000 EDT
Modified files:
/php4 fopen-wrappers.c
/php4/ext/wddx wddx.c
Log:
@- Changed WDDX to always serialize arrays as structs. (Andrei)
Changed WDDX to always serialize arrays as structs. PR #4924
Index: php4/fopen-wrappers.c
diff -u php4/fopen-wrappers.c:1.61 php4/fopen-wrappers.c:1.62
--- php4/fopen-wrappers.c:1.61 Thu Jun 8 02:43:12 2000
+++ php4/fopen-wrappers.c Fri Jun 9 06:50:39 2000
@@ -16,7 +16,7 @@
| Jim Winstead <jimw@php.net> |
+----------------------------------------------------------------------+
*/
-/* $Id: fopen-wrappers.c,v 1.61 2000/06/08 09:43:12 hholzgra Exp $ */
+/* $Id: fopen-wrappers.c,v 1.62 2000/06/09 13:50:39 andrei Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -987,7 +987,7 @@
const char *protocol=NULL;
int n=0;
- for(p=path;isalnum(*p);p++)
+ for(p=path;isalnum((int)*p);p++)
n++;
if((*p==':')&&(n>1)) {
protocol=path;
Index: php4/ext/wddx/wddx.c
diff -u php4/ext/wddx/wddx.c:1.36 php4/ext/wddx/wddx.c:1.37
--- php4/ext/wddx/wddx.c:1.36 Thu Jun 8 20:00:02 2000
+++ php4/ext/wddx/wddx.c Fri Jun 9 06:50:39 2000
@@ -27,7 +27,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: wddx.c,v 1.36 2000/06/09 03:00:02 andrei Exp $ */
+/* $Id: wddx.c,v 1.37 2000/06/09 13:50:39 andrei Exp $ */
#include "php.h"
#include "php_wddx.h"
@@ -385,60 +385,39 @@
{
zval **ent;
char *key;
- int hash_type, ent_type;
ulong idx;
HashTable *target_hash;
char tmp_buf[WDDX_BUF_LEN];
target_hash = HASH_OF(var);
+ php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
/* If variable is an object, always use struct and serialize its classname */
if (var->type == IS_OBJECT) {
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
sprintf(tmp_buf, WDDX_VAR_S, PHP_CLASS_NAME_VAR);
php_wddx_add_chunk(packet, tmp_buf);
php_wddx_add_chunk_static(packet, WDDX_STRING_S);
php_wddx_add_chunk_ex(packet, var->value.obj.ce->name,
var->value.obj.ce->name_length);
php_wddx_add_chunk_static(packet, WDDX_STRING_E);
php_wddx_add_chunk_static(packet, WDDX_VAR_E);
- } else {
- zend_hash_internal_pointer_reset(target_hash);
-
- hash_type = zend_hash_get_current_key(target_hash, &key, &idx);
-
- if (hash_type == HASH_KEY_IS_STRING) {
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
- efree(key);
- } else {
- sprintf(tmp_buf, WDDX_ARRAY_S, zend_hash_num_elements(target_hash));
- php_wddx_add_chunk(packet, tmp_buf);
- }
}
- for (;zend_hash_get_current_data(target_hash, (void**)&ent) == SUCCESS;
- zend_hash_move_forward(target_hash)) {
+ for (zend_hash_internal_pointer_reset(target_hash);
+ zend_hash_get_current_data(target_hash, (void**)&ent) == SUCCESS;
+ zend_hash_move_forward(target_hash)) {
if (*ent == var)
continue;
-
- if (var->type == IS_OBJECT || hash_type == HASH_KEY_IS_STRING) {
- ent_type = zend_hash_get_current_key(target_hash, &key, &idx);
- if (ent_type == HASH_KEY_IS_STRING) {
- php_wddx_serialize_var(packet, *ent, key);
- efree(key);
- } else {
- sprintf(tmp_buf, "%ld", idx);
- php_wddx_serialize_var(packet, *ent, tmp_buf);
- }
- } else
- php_wddx_serialize_var(packet, *ent, NULL);
+ if (zend_hash_get_current_key(target_hash, &key, &idx) == HASH_KEY_IS_STRING) {
+ php_wddx_serialize_var(packet, *ent, key);
+ efree(key);
+ } else {
+ sprintf(tmp_buf, "%ld", idx);
+ php_wddx_serialize_var(packet, *ent, tmp_buf);
+ }
}
- if (var->type == IS_OBJECT || hash_type == HASH_KEY_IS_STRING) {
- php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
- } else {
- php_wddx_add_chunk_static(packet, WDDX_ARRAY_E);
- }
+ php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
}
/* }}} */