Commit: ef54a95b7184899c63b4bd7be400c4621dd36360
Author: Anatol Belski <a...@php.net> Thu, 28 Nov 2013 20:00:27 +0100
Parents: 262fca3a39137a22c5fb237e453e68ef64dce126
Branches: str_size_and_int64
Link:
http://git.php.net/?p=php-src.git;a=commitdiff;h=ef54a95b7184899c63b4bd7be400c4621dd36360
Log:
fixed ext/wddx
Changed paths:
M ext/wddx/php_wddx_api.h
M ext/wddx/wddx.c
diff --git a/ext/wddx/php_wddx_api.h b/ext/wddx/php_wddx_api.h
index 1a01945..9487c15 100644
--- a/ext/wddx/php_wddx_api.h
+++ b/ext/wddx/php_wddx_api.h
@@ -57,11 +57,11 @@ typedef smart_str wddx_packet;
wddx_packet* php_wddx_constructor(void);
void php_wddx_destructor(wddx_packet *packet);
-void php_wddx_packet_start(wddx_packet *packet, char *comment, int
comment_len);
+void php_wddx_packet_start(wddx_packet *packet, char *comment,
zend_str_size_int comment_len);
void php_wddx_packet_end(wddx_packet *packet);
-void php_wddx_serialize_var(wddx_packet *packet, zval *var, char
*name, int name_len TSRMLS_DC);
-int php_wddx_deserialize_ex(char *, int, zval *return_value);
+void php_wddx_serialize_var(wddx_packet *packet, zval *var, char
*name, zend_str_size_int name_len TSRMLS_DC);
+int php_wddx_deserialize_ex(char *, zend_str_size_int, zval
*return_value);
#define php_wddx_gather(packet) estrndup(packet->c, packet->len)
#endif /* PHP_WDDX_API_H */
diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c
index afeca90..8ed2d35 100644
--- a/ext/wddx/wddx.c
+++ b/ext/wddx/wddx.c
@@ -295,9 +295,9 @@ PS_SERIALIZER_DECODE_FUNC(wddx)
zval *retval;
zval **ent;
char *key;
- uint key_length;
+ zend_str_size_uint key_length;
char tmp[128];
- ulong idx;
+ php_uint_t idx;
int hash_type;
int ret;
@@ -366,7 +366,7 @@ PHP_MINFO_FUNCTION(wddx)
/* {{{ php_wddx_packet_start
*/
-void php_wddx_packet_start(wddx_packet *packet, char *comment, int comment_len)
+void php_wddx_packet_start(wddx_packet *packet, char *comment,
zend_str_size_int comment_len)
{
php_wddx_add_chunk_static(packet, WDDX_PACKET_S);
if (comment) {
@@ -403,11 +403,11 @@ static void php_wddx_serialize_string(wddx_packet
*packet, zval *var TSRMLS_DC)
{
php_wddx_add_chunk_static(packet, WDDX_STRING_S);
- if (Z_STRLEN_P(var) > 0) {
+ if (Z_STRSIZE_P(var) > 0) {
char *buf;
size_t buf_len;
- buf = php_escape_html_entities(Z_STRVAL_P(var),
Z_STRLEN_P(var), &buf_len, 0, ENT_QUOTES, NULL TSRMLS_CC);
+ buf = php_escape_html_entities(Z_STRVAL_P(var),
Z_STRSIZE_P(var), &buf_len, 0, ENT_QUOTES, NULL TSRMLS_CC);
php_wddx_add_chunk_ex(packet, buf, buf_len);
@@ -458,7 +458,7 @@ static void php_wddx_serialize_object(wddx_packet *packet,
zval *obj)
zval **ent, *fname, **varname;
zval *retval = NULL;
const char *key;
- ulong idx;
+ php_uint_t idx;
char tmp_buf[WDDX_BUF_LEN];
HashTable *objhash, *sleephash;
TSRMLS_FETCH();
@@ -496,15 +496,15 @@ static void php_wddx_serialize_object(wddx_packet
*packet, zval *obj)
continue;
}
- if (zend_hash_find(objhash,
Z_STRVAL_PP(varname), Z_STRLEN_PP(varname)+1, (void **)&ent) == SUCCESS) {
- php_wddx_serialize_var(packet, *ent,
Z_STRVAL_PP(varname), Z_STRLEN_PP(varname) TSRMLS_CC);
+ if (zend_hash_find(objhash,
Z_STRVAL_PP(varname), Z_STRSIZE_PP(varname)+1, (void **)&ent) == SUCCESS) {
+ php_wddx_serialize_var(packet, *ent,
Z_STRVAL_PP(varname), Z_STRSIZE_PP(varname) TSRMLS_CC);
}
}
php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
}
} else {
- uint key_len;
+ zend_str_size_uint key_len;
PHP_CLASS_ATTRIBUTES;
@@ -556,12 +556,12 @@ static void php_wddx_serialize_array(wddx_packet *packet,
zval *arr)
{
zval **ent;
char *key;
- uint key_len;
+ zend_str_size_uint key_len;
int is_struct = 0, ent_type;
- ulong idx;
+ php_uint_t idx;
HashTable *target_hash;
char tmp_buf[WDDX_BUF_LEN];
- ulong ind = 0;
+ php_uint_t ind = 0;
int type;
TSRMLS_FETCH();
@@ -624,7 +624,7 @@ static void php_wddx_serialize_array(wddx_packet *packet,
zval *arr)
/* {{{ php_wddx_serialize_var
*/
-void php_wddx_serialize_var(wddx_packet *packet, zval *var, char *name, int
name_len TSRMLS_DC)
+void php_wddx_serialize_var(wddx_packet *packet, zval *var, char *name,
zend_str_size_int name_len TSRMLS_DC)
{
HashTable *ht;
@@ -700,8 +700,8 @@ static void php_wddx_add_var(wddx_packet *packet, zval
*name_var)
zend_rebuild_symbol_table(TSRMLS_C);
}
if (zend_hash_find(EG(active_symbol_table),
Z_STRVAL_P(name_var),
- Z_STRLEN_P(name_var)+1,
(void**)&val) != FAILURE) {
- php_wddx_serialize_var(packet, *val,
Z_STRVAL_P(name_var), Z_STRLEN_P(name_var) TSRMLS_CC);
+
Z_STRSIZE_P(name_var)+1, (void**)&val) != FAILURE) {
+ php_wddx_serialize_var(packet, *val,
Z_STRVAL_P(name_var), Z_STRSIZE_P(name_var) TSRMLS_CC);
}
} else if (Z_TYPE_P(name_var) == IS_ARRAY || Z_TYPE_P(name_var) ==
IS_OBJECT) {
int is_array = Z_TYPE_P(name_var) == IS_ARRAY;
@@ -754,7 +754,7 @@ static void php_wddx_push_element(void *user_data, const
XML_Char *name, const X
INIT_PZVAL(ent.data);
Z_TYPE_P(ent.data) = IS_STRING;
Z_STRVAL_P(ent.data) = STR_EMPTY_ALLOC();
- Z_STRLEN_P(ent.data) = 0;
+ Z_STRSIZE_P(ent.data) = 0;
wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
} else if (!strcmp(name, EL_BINARY)) {
ent.type = ST_BINARY;
@@ -764,7 +764,7 @@ static void php_wddx_push_element(void *user_data, const
XML_Char *name, const X
INIT_PZVAL(ent.data);
Z_TYPE_P(ent.data) = IS_STRING;
Z_STRVAL_P(ent.data) = STR_EMPTY_ALLOC();
- Z_STRLEN_P(ent.data) = 0;
+ Z_STRSIZE_P(ent.data) = 0;
wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
} else if (!strcmp(name, EL_CHAR)) {
int i;
@@ -934,13 +934,13 @@ static void php_wddx_pop_element(void *user_data, const
XML_Char *name)
wddx_stack_top(stack, (void**)&ent1);
if (!strcmp(name, EL_BINARY)) {
- int new_len=0;
+ zend_str_size_int new_len=0;
unsigned char *new_str;
- new_str = php_base64_decode(Z_STRVAL_P(ent1->data),
Z_STRLEN_P(ent1->data), &new_len);
+ new_str = php_base64_decode(Z_STRVAL_P(ent1->data),
Z_STRSIZE_P(ent1->data), &new_len);
STR_FREE(Z_STRVAL_P(ent1->data));
Z_STRVAL_P(ent1->data) = new_str;
- Z_STRLEN_P(ent1->data) = new_len;
+ Z_STRSIZE_P(ent1->data) = new_len;
}
/* Call __wakeup() method on the object. */
@@ -975,12 +975,12 @@ static void php_wddx_pop_element(void *user_data, const
XML_Char *name)
if (ent1->varname) {
if (!strcmp(ent1->varname,
PHP_CLASS_NAME_VAR) &&
- Z_TYPE_P(ent1->data) ==
IS_STRING && Z_STRLEN_P(ent1->data)) {
+ Z_TYPE_P(ent1->data) ==
IS_STRING && Z_STRSIZE_P(ent1->data)) {
zend_bool incomplete_class = 0;
-
zend_str_tolower(Z_STRVAL_P(ent1->data), Z_STRLEN_P(ent1->data));
+
zend_str_tolower(Z_STRVAL_P(ent1->data), Z_STRSIZE_P(ent1->data));
if
(zend_hash_find(EG(class_table), Z_STRVAL_P(ent1->data),
-
Z_STRLEN_P(ent1->data)+1, (void **) &pce)==FAILURE) {
+
Z_STRSIZE_P(ent1->data)+1, (void **) &pce)==FAILURE) {
incomplete_class = 1;
pce = &PHP_IC_ENTRY;
}
@@ -996,7 +996,7 @@ static void php_wddx_pop_element(void *user_data, const
XML_Char *name)
(void *) &tmp, sizeof(zval *), 0);
if (incomplete_class) {
-
php_store_class_name(obj, Z_STRVAL_P(ent1->data), Z_STRLEN_P(ent1->data));
+
php_store_class_name(obj, Z_STRVAL_P(ent1->data), Z_STRSIZE_P(ent1->data));
}
/* Clean up old array entry */
@@ -1049,33 +1049,33 @@ static void php_wddx_process_data(void *user_data,
const XML_Char *s, int len)
wddx_stack_top(stack, (void**)&ent);
switch (Z_TYPE_P(ent)) {
case ST_STRING:
- if (Z_STRLEN_P(ent->data) == 0) {
+ if (Z_STRSIZE_P(ent->data) == 0) {
STR_FREE(Z_STRVAL_P(ent->data));
Z_STRVAL_P(ent->data) = estrndup(s,
len);
- Z_STRLEN_P(ent->data) = len;
+ Z_STRSIZE_P(ent->data) = len;
} else {
- Z_STRVAL_P(ent->data) =
erealloc(Z_STRVAL_P(ent->data), Z_STRLEN_P(ent->data) + len + 1);
- memcpy(Z_STRVAL_P(ent->data) +
Z_STRLEN_P(ent->data), s, len);
- Z_STRLEN_P(ent->data) += len;
-
Z_STRVAL_P(ent->data)[Z_STRLEN_P(ent->data)] = '\0';
+ Z_STRVAL_P(ent->data) =
erealloc(Z_STRVAL_P(ent->data), Z_STRSIZE_P(ent->data) + len + 1);
+ memcpy(Z_STRVAL_P(ent->data) +
Z_STRSIZE_P(ent->data), s, len);
+ Z_STRSIZE_P(ent->data) += len;
+
Z_STRVAL_P(ent->data)[Z_STRSIZE_P(ent->data)] = '\0';
}
break;
case ST_BINARY:
- if (Z_STRLEN_P(ent->data) == 0) {
+ if (Z_STRSIZE_P(ent->data) == 0) {
STR_FREE(Z_STRVAL_P(ent->data));
Z_STRVAL_P(ent->data) = estrndup(s, len
+ 1);
} else {
- Z_STRVAL_P(ent->data) =
erealloc(Z_STRVAL_P(ent->data), Z_STRLEN_P(ent->data) + len + 1);
- memcpy(Z_STRVAL_P(ent->data) +
Z_STRLEN_P(ent->data), s, len);
+ Z_STRVAL_P(ent->data) =
erealloc(Z_STRVAL_P(ent->data), Z_STRSIZE_P(ent->data) + len + 1);
+ memcpy(Z_STRVAL_P(ent->data) +
Z_STRSIZE_P(ent->data), s, len);
}
- Z_STRLEN_P(ent->data) += len;
- Z_STRVAL_P(ent->data)[Z_STRLEN_P(ent->data)] =
'\0';
+ Z_STRSIZE_P(ent->data) += len;
+ Z_STRVAL_P(ent->data)[Z_STRSIZE_P(ent->data)] =
'\0';
break;
case ST_NUMBER:
Z_TYPE_P(ent->data) = IS_STRING;
- Z_STRLEN_P(ent->data) = len;
+ Z_STRSIZE_P(ent->data) = len;
Z_STRVAL_P(ent->data) = estrndup(s, len);
convert_scalar_to_number(ent->data TSRMLS_CC);
break;
@@ -1105,7 +1105,7 @@ static void php_wddx_process_data(void *user_data, const
XML_Char *s, int len)
/* date out of range < 1969 or > 2038 */
if (Z_LVAL_P(ent->data) == -1) {
Z_TYPE_P(ent->data) = IS_STRING;
- Z_STRLEN_P(ent->data) = len;
+ Z_STRSIZE_P(ent->data) = len;
Z_STRVAL_P(ent->data) = estrndup(s,
len);
}
efree(tmp);
@@ -1121,7 +1121,7 @@ static void php_wddx_process_data(void *user_data, const
XML_Char *s, int len)
/* {{{ php_wddx_deserialize_ex
*/
-int php_wddx_deserialize_ex(char *value, int vallen, zval *return_value)
+int php_wddx_deserialize_ex(char *value, zend_str_size_int vallen, zval
*return_value)
{
wddx_stack stack;
XML_Parser parser;
@@ -1160,10 +1160,10 @@ PHP_FUNCTION(wddx_serialize_value)
{
zval *var;
char *comment = NULL;
- int comment_len = 0;
+ zend_str_size_int comment_len = 0;
wddx_packet *packet;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|s", &var,
&comment, &comment_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|S", &var,
&comment, &comment_len) == FAILURE) {
return;
}
@@ -1241,12 +1241,12 @@ void php_wddx_destructor(wddx_packet *packet)
PHP_FUNCTION(wddx_packet_start)
{
char *comment = NULL;
- int comment_len = 0;
+ zend_str_size_int comment_len = 0;
wddx_packet *packet;
comment = NULL;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &comment,
&comment_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|S", &comment,
&comment_len) == FAILURE) {
return;
}
@@ -1323,7 +1323,7 @@ PHP_FUNCTION(wddx_deserialize)
{
zval *packet;
char *payload;
- int payload_len;
+ zend_str_size_int payload_len;
php_stream *stream = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &packet) ==
FAILURE) {
@@ -1332,7 +1332,7 @@ PHP_FUNCTION(wddx_deserialize)
if (Z_TYPE_P(packet) == IS_STRING) {
payload = Z_STRVAL_P(packet);
- payload_len = Z_STRLEN_P(packet);
+ payload_len = Z_STRSIZE_P(packet);
} else if (Z_TYPE_P(packet) == IS_RESOURCE) {
php_stream_from_zval(stream, &packet);
if (stream) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php