| modification, are permitted provided that the conditions mentioned |
| in the accompanying LICENSE file are met. |
+--------------------------------------------------------------------+
- | Copyright (c) 2004-2006, Michael Wallner <mike@php.net> |
+ | Copyright (c) 2004-2010, Michael Wallner <mike@php.net> |
+--------------------------------------------------------------------+
*/
HTTP_ARG_VAL(data, 0)
HTTP_END_ARGS;
-#define OBJ_PROP_CE http_inflatestream_object_ce
+#define THIS_CE http_inflatestream_object_ce
zend_class_entry *http_inflatestream_object_ce;
zend_function_entry http_inflatestream_object_fe[] = {
HTTP_INFLATE_ME(__construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
http_inflatestream_object_handlers.clone_obj = _http_inflatestream_object_clone_obj;
#ifndef WONKY
- DCL_CONST(long, "FLUSH_NONE", HTTP_ENCODING_STREAM_FLUSH_NONE);
- DCL_CONST(long, "FLUSH_SYNC", HTTP_ENCODING_STREAM_FLUSH_SYNC);
- DCL_CONST(long, "FLUSH_FULL", HTTP_ENCODING_STREAM_FLUSH_FULL);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("FLUSH_NONE")-1, HTTP_ENCODING_STREAM_FLUSH_NONE TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("FLUSH_SYNC")-1, HTTP_ENCODING_STREAM_FLUSH_SYNC TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("FLUSH_FULL")-1, HTTP_ENCODING_STREAM_FLUSH_FULL TSRMLS_CC);
#endif
return SUCCESS;
o->stream = s;
}
+#ifdef ZEND_ENGINE_2_4
+ zend_object_std_init(o, ce TSRMLS_CC);
+ object_properties_init(o, ce);
+#else
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 *));
+#endif
ov.handle = putObject(http_inflatestream_object, o);
ov.handlers = &http_inflatestream_object_handlers;
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);