Z_ARRVAL(zv) = (ht); \
}
+#ifndef MAKE_COPY_ZVAL
+# define MAKE_COPY_ZVAL(ppzv, pzv) \
+ *(pzv) = **(ppzv); \
+ zval_copy_ctor((pzv)); \
+ INIT_PZVAL((pzv));
+#endif
+
/* return bool (v == SUCCESS) */
#define RETVAL_SUCCESS(v) RETVAL_BOOL(SUCCESS == (v))
#define RETURN_SUCCESS(v) RETURN_BOOL(SUCCESS == (v))
# define getObject(t, o) getObjectEx(t, o, getThis())
# define getObjectEx(t, o, v) t * o = ((t *) zend_object_store_get_object(v TSRMLS_CC))
# define putObject(t, o) zend_objects_store_put(o, (zend_objects_store_dtor_t) zend_objects_destroy_object, (zend_objects_free_object_storage_t) _ ##t## _free, NULL TSRMLS_CC);
-# ifndef WONKY
-# define freeObject(o) \
- if (OBJ_GUARDS(o)) { \
- zend_hash_destroy(OBJ_GUARDS(o)); \
- FREE_HASHTABLE(OBJ_GUARDS(o)); \
- } \
- if (OBJ_PROP(o)) { \
- zend_hash_destroy(OBJ_PROP(o)); \
- FREE_HASHTABLE(OBJ_PROP(o)); \
- } \
- efree(o);
-# else
-# define freeObject(o) \
- if (OBJ_PROP(o)) { \
- zend_hash_destroy(OBJ_PROP(o)); \
- FREE_HASHTABLE(OBJ_PROP(o)); \
- } \
+# define freeObject(o) \
+ zend_object_std_dtor(&o->zo TSRMLS_CC); \
efree(o);
-# endif
# define OBJ_PROP(o) (o)->zo.properties
# define OBJ_GUARDS(o) (o)->zo.guards