com php-src: revamp serialization to work with size_t for Serializable: Zend/zend.h Zend/zend_interfaces.c Zend/zend_interfaces.h ext/standard/var.c
| From: | Anatol Belski | Date: | Mon, 15 Sep 2014 17:46:28 +0000 |
| Subject: | com php-src: revamp serialization to work with size_t for Serializable: Zend/zend.h Zend/zend_interfaces.c Zend/zend_interfaces.h ext/standard/var.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-81658@lists.php.net to get a copy of this message | ||
Commit: e591c78d090f2c175b02f648f6b191ecc2f6d506
Author: Anatol Belski <ab@php.net> Mon, 15 Sep 2014 16:32:18 +0200
Parents: 0799459e761308c70e47e3f3376315991fe3ed50
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=e591c78d090f2c175b02f648f6b191ecc2f6d506
Log:
revamp serialization to work with size_t for Serializable
Changed paths:
M Zend/zend.h
M Zend/zend_interfaces.c
M Zend/zend_interfaces.h
M ext/standard/var.c
Diff:
diff --git a/Zend/zend.h b/Zend/zend.h
index d79920f..635dc9d 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -515,8 +515,8 @@ struct _zend_class_entry {
union _zend_function *(*get_static_method)(zend_class_entry *ce, zend_string* method TSRMLS_DC);
/* serializer callbacks */
- int (*serialize)(zval *object, unsigned char **buffer, uint32_t *buf_len, zend_serialize_data
*data TSRMLS_DC);
- int (*unserialize)(zval *object, zend_class_entry *ce, const unsigned char *buf, uint32_t buf_len,
zend_unserialize_data *data TSRMLS_DC);
+ int (*serialize)(zval *object, unsigned char **buffer, size_t *buf_len, zend_serialize_data *data
TSRMLS_DC);
+ int (*unserialize)(zval *object, zend_class_entry *ce, const unsigned char *buf, size_t buf_len,
zend_unserialize_data *data TSRMLS_DC);
uint32_t num_interfaces;
uint32_t num_traits;
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c
index 8a35997..26507ad 100644
--- a/Zend/zend_interfaces.c
+++ b/Zend/zend_interfaces.c
@@ -407,7 +407,7 @@ static int zend_implement_arrayaccess(zend_class_entry *interface, zend_class_en
/* }}}*/
/* {{{ zend_user_serialize */
-ZEND_API int zend_user_serialize(zval *object, unsigned char **buffer, uint32_t *buf_len,
zend_serialize_data *data TSRMLS_DC)
+ZEND_API int zend_user_serialize(zval *object, unsigned char **buffer, size_t *buf_len,
zend_serialize_data *data TSRMLS_DC)
{
zend_class_entry * ce = Z_OBJCE_P(object);
zval retval;
@@ -444,7 +444,7 @@ ZEND_API int zend_user_serialize(zval *object, unsigned char **buffer, uint32_t
/* }}} */
/* {{{ zend_user_unserialize */
-ZEND_API int zend_user_unserialize(zval *object, zend_class_entry *ce, const unsigned char *buf,
uint32_t buf_len, zend_unserialize_data *data TSRMLS_DC)
+ZEND_API int zend_user_unserialize(zval *object, zend_class_entry *ce, const unsigned char *buf,
size_t buf_len, zend_unserialize_data *data TSRMLS_DC)
{
zval zdata;
@@ -464,7 +464,7 @@ ZEND_API int zend_user_unserialize(zval *object, zend_class_entry *ce, const uns
}
/* }}} */
-ZEND_API int zend_class_serialize_deny(zval *object, unsigned char **buffer, uint32_t *buf_len,
zend_serialize_data *data TSRMLS_DC) /* {{{ */
+ZEND_API int zend_class_serialize_deny(zval *object, unsigned char **buffer, size_t *buf_len,
zend_serialize_data *data TSRMLS_DC) /* {{{ */
{
zend_class_entry *ce = Z_OBJCE_P(object);
zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Serialization of '%s' is not
allowed", ce->name->val);
@@ -472,7 +472,7 @@ ZEND_API int zend_class_serialize_deny(zval *object, unsigned char **buffer, uin
}
/* }}} */
-ZEND_API int zend_class_unserialize_deny(zval *object, zend_class_entry *ce, const unsigned char
*buf, uint32_t buf_len, zend_unserialize_data *data TSRMLS_DC) /* {{{ */
+ZEND_API int zend_class_unserialize_deny(zval *object, zend_class_entry *ce, const unsigned char
*buf, size_t buf_len, zend_unserialize_data *data TSRMLS_DC) /* {{{ */
{
zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Unserialization of '%s' is not
allowed", ce->name->val);
return FAILURE;
diff --git a/Zend/zend_interfaces.h b/Zend/zend_interfaces.h
index 88e1dfe..9bfef09 100644
--- a/Zend/zend_interfaces.h
+++ b/Zend/zend_interfaces.h
@@ -61,11 +61,11 @@ ZEND_API zend_object_iterator *zend_user_it_get_new_iterator(zend_class_entry *c
ZEND_API void zend_register_interfaces(TSRMLS_D);
-ZEND_API int zend_user_serialize(zval *object, unsigned char **buffer, uint32_t *buf_len,
zend_serialize_data *data TSRMLS_DC);
-ZEND_API int zend_user_unserialize(zval *object, zend_class_entry *ce, const unsigned char *buf,
uint32_t buf_len, zend_unserialize_data *data TSRMLS_DC);
+ZEND_API int zend_user_serialize(zval *object, unsigned char **buffer, size_t *buf_len,
zend_serialize_data *data TSRMLS_DC);
+ZEND_API int zend_user_unserialize(zval *object, zend_class_entry *ce, const unsigned char *buf,
size_t buf_len, zend_unserialize_data *data TSRMLS_DC);
-ZEND_API int zend_class_serialize_deny(zval *object, unsigned char **buffer, uint32_t *buf_len,
zend_serialize_data *data TSRMLS_DC);
-ZEND_API int zend_class_unserialize_deny(zval *object, zend_class_entry *ce, const unsigned char
*buf, uint32_t buf_len, zend_unserialize_data *data TSRMLS_DC);
+ZEND_API int zend_class_serialize_deny(zval *object, unsigned char **buffer, size_t *buf_len,
zend_serialize_data *data TSRMLS_DC);
+ZEND_API int zend_class_unserialize_deny(zval *object, zend_class_entry *ce, const unsigned char
*buf, size_t buf_len, zend_unserialize_data *data TSRMLS_DC);
END_EXTERN_C()
diff --git a/ext/standard/var.c b/ext/standard/var.c
index f005258...829e805 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -855,7 +855,7 @@ again:
if (ce && ce->serialize != NULL) {
/* has custom handler */
unsigned char *serialized_data = NULL;
- uint32_t serialized_length;
+ size_t serialized_length;
if (ce->serialize(struc, &serialized_data, &serialized_length, (zend_serialize_data
*)var_hash TSRMLS_CC) == SUCCESS) {
smart_str_appendl(buf, "C:", 2);