- if (obj->message) {
- /* do not free recursively */
- php_http_message_dtor(obj->message);
- efree(obj->message);
- }
- if ((msg = php_http_message_parse(NULL, serialized, length, 1))) {
- obj->message = msg;
- } else {
- obj->message = php_http_message_init(NULL, 0, NULL);
- php_error_docref(NULL, E_ERROR, "Could not unserialize http\\Message");
- }
+ php_http_message_object_t *obj = PHP_HTTP_OBJ(NULL, getThis());
+ php_http_message_t *msg;
+
+ if (obj->message) {
+ /* do not free recursively */
+ php_http_message_dtor(obj->message);
+ efree(obj->message);
+ }
+
+ serialized = zend_hash_index_find(data, 0);
+ if (serialized && Z_TYPE_P(serialized) == IS_STRING &&
+ (msg = php_http_message_parse(NULL, Z_STRVAL_P(serialized), Z_STRLEN_P(serialized), 1))) {
+ obj->message = msg;
+ } else {
+ obj->message = php_http_message_init(NULL, 0, NULL);
+ php_error_docref(NULL, E_ERROR, "Could not unserialize http\\Message");