- Fixed build on php-trunk
[m6w6/ext-http] / http_inflatestream_object.c
index acd1257e03332db22fda5dd71e296f12cbbdc960..18ca266990abbdb61c2049af31ce2da9e87d311c 100644 (file)
@@ -6,7 +6,7 @@
     | modification, are permitted provided that the conditions mentioned |
     | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
-    | Copyright (c) 2004-2007, Michael Wallner <mike@php.net>            |
+    | Copyright (c) 2004-2010, Michael Wallner <mike@php.net>            |
     +--------------------------------------------------------------------+
 */
 
@@ -96,9 +96,13 @@ zend_object_value _http_inflatestream_object_new_ex(zend_class_entry *ce, http_e
                o->stream = s;
        }
 
+#if PHP_VERSION_ID < 50399
        ALLOC_HASHTABLE(OBJ_PROP(o));
        zend_hash_init(OBJ_PROP(o), zend_hash_num_elements(&ce->default_properties), NULL, ZVAL_PTR_DTOR, 0);
        zend_hash_copy(OBJ_PROP(o), &ce->default_properties, (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *));
+#else
+       object_properties_init(&o->zo, ce);
+#endif
 
        ov.handle = putObject(http_inflatestream_object, o);
        ov.handlers = &http_inflatestream_object_handlers;
@@ -263,9 +267,11 @@ PHP_METHOD(HttpInflateStream, finish)
                        STR_FREE(decoded);
                        updated_len += decoded_len;
                        RETVAL_STRINGL(updated, updated_len, 0);
-               } else {
+               } else if (decoded) {
                        STR_FREE(updated);
                        RETVAL_STRINGL(decoded, decoded_len, 0);
+               } else {
+                       RETVAL_NULL();
                }
        } else {
                STR_FREE(updated);