Fixed Bug #17896 Make failed
[m6w6/ext-http] / php_http_std_defs.h
index 0c5a9e5b3aa875f8587fc8c9977850cef5f1c638..1b08ffdd4c7dbf2e90297cb4d5c5da5dd0566b72 100644 (file)
@@ -58,13 +58,6 @@ typedef int STATUS;
                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))
@@ -189,9 +182,25 @@ typedef int STATUS;
 #      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);
-#      define freeObject(o) \
-                       zend_object_std_dtor(&o->zo 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)); \
+                       } \
                        efree(o);
+#      endif
 #      define OBJ_PROP(o) (o)->zo.properties
 #      define OBJ_GUARDS(o) (o)->zo.guards
 
@@ -320,6 +329,13 @@ typedef int STATUS;
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(1) \
                        ZEND_END_ARG_INFO(); \
+\
+                       HTTP_STATIC_ARG_INFO \
+                       ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_3, 0) \
+                               ZEND_ARG_PASS_INFO(0) \
+                               ZEND_ARG_PASS_INFO(0) \
+                               ZEND_ARG_PASS_INFO(1) \
+                       ZEND_END_ARG_INFO(); \
 \
                        HTTP_STATIC_ARG_INFO \
                        ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_4, 0) \
@@ -331,6 +347,7 @@ typedef int STATUS;
 #      else
 #              define HTTP_DECLARE_ARG_PASS_INFO() \
                        static unsigned char http_arg_pass_ref_2[] = {2, BYREF_NONE, BYREF_FORCE}; \
+                       static unsigned char http_arg_pass_ref_3[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE}; \
                        static unsigned char http_arg_pass_ref_4[] = {4, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_FORCE};
 #      endif /* ZEND_ENGINE_2 */
 #endif /* HTTP_HAVE_CURL */