Re: op_array.opcode restructure patch

[email protected] (Mark Skilbeck) Sun, 30 May 2010 22:37:37 +0100
Newsgroups php.gtk.dev
Message-ID <[email protected]>
On 30/05/10 21:21, Mark Skilbeck wrote:
> On 26/05/10 12:35, Elizabeth M Smith wrote:
>> On 5/25/2010 3:31 PM, Mark Skilbeck wrote:
>>> See: http://svn.php.net/viewvc?view=revision&revision=298203
>>>
>>> The above revision adds an extra parameter (const struct _zend_literal
>>> *key) to the following function pointers:
>>> http://svn.php.net/viewvc/php/php-src/trunk/Zend/zend_object_handlers.h?r1=298203&r2=298202&pathrev=298203
>>>
>>>
>>>
>>>
>>
>> Does that need a version check ifdef around it? These changes are only
>> in HEAD and php-gtk has to compile against 5.2 and 5.3 as well...
>>
>> Thanks,
>> Elizabeth
>
> That's a good point. However, I'm not sure what that check would look
> like. How do you check for compilation of trunk?
>

I think this patch should do, though I haven't been able to test it.

-- 
Mark Skilbeck
mahcuz.com | gtk.php.net | pecl.php.net/cairo | docs.php.net
r298203-2.patch.txt (text/plain, 2.6 KB)
Index: main/phpg_closure.c
===================================================================
--- main/phpg_closure.c	(revision 299967)
+++ main/phpg_closure.c	(working copy)
@@ -243,7 +243,11 @@
         g_free(lc_method_name);
         
         if (Z_OBJ_HT_P(php_object)->get_method != NULL
+		#if PHP_VERSION_ID < 50399
             && (func = Z_OBJ_HT_P(php_object)->get_method(&php_object, method_name, method_name_len TSRMLS_CC)) != NULL) {
+		#else
+            && (func = Z_OBJ_HT_P(php_object)->get_method(&php_object, method_name, method_name_len, NULL TSRMLS_CC)) != NULL) {
+		#endif			
             if (func->type == ZEND_INTERNAL_FUNCTION
                 && ((zend_internal_function*)func)->handler == zend_std_call_user_call
                ) {
Index: main/phpg_support.c
===================================================================
--- main/phpg_support.c	(revision 299967)
+++ main/phpg_support.c	(working copy)
@@ -63,7 +63,11 @@
             result_ptr = EG(uninitialized_zval_ptr);
         }
 	} else {
+	#if PHP_VERSION_ID < 50399
 		result_ptr = zend_get_std_object_handlers()->read_property(object, member, type TSRMLS_CC);
+	#else	
+		result_ptr = zend_get_std_object_handlers()->read_property(object, member, type, NULL TSRMLS_CC);
+	#endif
 	}
 
 	if (member == &tmp_member) {
@@ -102,7 +106,11 @@
             php_error(E_NOTICE, "PHP-GTK: ignoring write attempt to the read only property");
         }
     } else {
+	#if PHP_VERSION_ID < 50399
 		zend_get_std_object_handlers()->write_property(object, member, value TSRMLS_CC);
+	#else
+		zend_get_std_object_handlers()->write_property(object, member, value, NULL TSRMLS_CC);
+	#endif
     }
 
 	if (member == &tmp_member) {
@@ -144,7 +152,11 @@
          */
         result = NULL;
     } else {
-        result = zend_get_std_object_handlers()->get_property_ptr_ptr(object, member TSRMLS_CC);
+	#if PHP_VERSION_ID < 50399
+		result = zend_get_std_object_handlers()->get_property_ptr_ptr(object, member TSRMLS_CC);
+	#else
+		result = zend_get_std_object_handlers()->get_property_ptr_ptr(object, member, NULL TSRMLS_CC);
+	#endif
     }
 
     if (member == &tmp_member) {
Index: ext/gtk+/gdk.overrides
===================================================================
--- ext/gtk+/gdk.overrides	(revision 299967)
+++ ext/gtk+/gdk.overrides	(working copy)
@@ -1162,7 +1162,7 @@
 		Z_SET_REFCOUNT_P(result, 0);
 		Z_UNSET_ISREF_P(result);
     } else {
-        result = zend_get_std_object_handlers()->read_property(object, member, type TSRMLS_CC);
+        result = zend_get_std_object_handlers()->read_property(object, member, type, NULL TSRMLS_CC);
     }
 
 	if (member == &tmp_member) {