com php/gtk-src: Attempting to get it to stop segfaulting in 5.4 change the way destructors are done: ext/gtk+/php_gtk+.c ext/gtk+/ph p_gtk+_types.c
main/phpg_atom.c main/phpg_gboxe d.c main/phpg_gobject.c main/phpg_gpointer.c ma in/phpg_gtype.c main/phpg_paramspec.c

From: Date: Tue, 17 Jul 2012 02:09:45 +0000
Subject: com php/gtk-src: Attempting to get it to stop segfaulting in 5.4 change the way destructors are done: ext/gtk+/php_gtk+.c ext/gtk+/ph p_gtk+_types.c
main/phpg_atom.c main/phpg_gboxe d.c main/phpg_gobject.c main/phpg_gpointer.c ma in/phpg_gtype.c main/phpg_paramspec.c
Groups: php.gtk.cvs 
Request: Send a blank email to php-gtk-cvs+get-4846@lists.php.net to get a copy of this message
Commit: 0d19d4e184af36f08dfacdc41f342d1a3ff74c10 Author: Elizabeth M Smith <auroraeosrose@gmail.com> Mon, 16 Jul 2012 22:09:45 -0400 Parents: 71f565cf8623794168a01132a4b75a1aeaceaff8 Branches: master Link: http://git.php.net/?p=php/gtk-src.git;a=commitdiff;h=0d19d4e184af36f08dfacdc41f342d1a3ff74c10 Log: Attempting to get it to stop segfaulting in 5.4 change the way destructors are done Changed paths: M ext/gtk+/php_gtk+.c M ext/gtk+/php_gtk+_types.c M main/phpg_atom.c M main/phpg_gboxed.c M main/phpg_gobject.c M main/phpg_gpointer.c M main/phpg_gtype.c M main/phpg_paramspec.c Diff: diff --git a/ext/gtk+/php_gtk+.c b/ext/gtk+/php_gtk+.c index 77b5cad..1e3b555 100644 --- a/ext/gtk+/php_gtk+.c +++ b/ext/gtk+/php_gtk+.c @@ -36,7 +36,7 @@ extern zend_class_entry *gdk_ce; void phpg_gdk_register_keysyms(); /* TODO check pygtk version */ -static void init_gtk(TSRMLS_C) +static void init_gtk(TSRMLS_D) { HashTable *symbol_table; zval **z_argv = NULL, **z_argc = NULL, **entry; diff --git a/ext/gtk+/php_gtk+_types.c b/ext/gtk+/php_gtk+_types.c index f908289..0a7baf8 100644 --- a/ext/gtk+/php_gtk+_types.c +++ b/ext/gtk+/php_gtk+_types.c @@ -730,12 +730,7 @@ static prop_info_t gtktreemodelrow_prop_info[] = { static void phpg_modelrow_free_object_storage(phpg_modelrow_t *object TSRMLS_DC) { - zend_hash_destroy(object->zobj.properties); - FREE_HASHTABLE(object->zobj.properties); - if (object->zobj.guards) { - zend_hash_destroy(object->zobj.guards); - FREE_HASHTABLE(object->zobj.guards); - } + zend_object_std_dtor(&object->zobj TSRMLS_CC); g_object_unref(object->model); efree(object); } @@ -792,12 +787,7 @@ static void phpg_modelrowiter_new(zval **zobj, GtkTreeModel *model, GtkTreeIter static void phpg_modelrowiter_free_object_storage(phpg_modelrowiter_t *object TSRMLS_DC) { - zend_hash_destroy(object->zobj.properties); - FREE_HASHTABLE(object->zobj.properties); - if (object->zobj.guards) { - zend_hash_destroy(object->zobj.guards); - FREE_HASHTABLE(object->zobj.guards); - } + zend_object_std_dtor(&object->zobj TSRMLS_CC); if (object->current) { zval_ptr_dtor(&object->current); } diff --git a/main/phpg_atom.c b/main/phpg_atom.c index ad44bac..7ecf476 100644 --- a/main/phpg_atom.c +++ b/main/phpg_atom.c @@ -41,12 +41,7 @@ static zend_function_entry gdkatom_methods[] = { /* {{{ static phpg_free_gdkatom_storage() */ static void phpg_free_gdkatom_storage(phpg_gdkatom_t *object TSRMLS_DC) { - zend_hash_destroy(object->zobj.properties); - FREE_HASHTABLE(object->zobj.properties); - if (object->zobj.guards) { - zend_hash_destroy(object->zobj.guards); - FREE_HASHTABLE(object->zobj.guards); - } + zend_object_std_dtor(&object->zobj TSRMLS_CC); if (object->name) efree(object->name); efree(object); } diff --git a/main/phpg_gboxed.c b/main/phpg_gboxed.c index 94a51c5..2cbbd36 100644 --- a/main/phpg_gboxed.c +++ b/main/phpg_gboxed.c @@ -54,12 +54,7 @@ static zend_function_entry gboxed_methods[] = { /* {{{ static phpg_free_gboxed_storage() */ static void phpg_free_gboxed_storage(phpg_gboxed_t *object TSRMLS_DC) { - zend_hash_destroy(object->zobj.properties); - FREE_HASHTABLE(object->zobj.properties); - if (object->zobj.guards) { - zend_hash_destroy(object->zobj.guards); - FREE_HASHTABLE(object->zobj.guards); - } + zend_object_std_dtor(&object->zobj TSRMLS_CC); if (object->boxed && object->free_on_destroy) { g_boxed_free(object->gtype, object->boxed); object->boxed = NULL; diff --git a/main/phpg_gobject.c b/main/phpg_gobject.c index 6fb064a..9727a55 100644 --- a/main/phpg_gobject.c +++ b/main/phpg_gobject.c @@ -40,12 +40,7 @@ static inline void phpg_free_gobject_storage(phpg_gobject_t *object, zend_object { GSList *tmp; - zend_hash_destroy(object->zobj.properties); - FREE_HASHTABLE(object->zobj.properties); - if (object->zobj.guards) { - zend_hash_destroy(object->zobj.guards); - FREE_HASHTABLE(object->zobj.guards); - } + zend_object_std_dtor(&object->zobj TSRMLS_CC); /* * Remove cached handle information, since the object wrapper is going away. diff --git a/main/phpg_gpointer.c b/main/phpg_gpointer.c index f52d367..f759d4c 100644 --- a/main/phpg_gpointer.c +++ b/main/phpg_gpointer.c @@ -39,12 +39,7 @@ static zend_function_entry gpointer_methods[] = { /* {{{ static phpg_free_gpointer_storage() */ static void phpg_free_gpointer_storage(phpg_gpointer_t *object TSRMLS_DC) { - zend_hash_destroy(object->zobj.properties); - FREE_HASHTABLE(object->zobj.properties); - if (object->zobj.guards) { - zend_hash_destroy(object->zobj.guards); - FREE_HASHTABLE(object->zobj.guards); - } + zend_object_std_dtor(&object->zobj TSRMLS_CC); efree(object); } /* }}} */ diff --git a/main/phpg_gtype.c b/main/phpg_gtype.c index 49b02f3...e0af125 100644 --- a/main/phpg_gtype.c +++ b/main/phpg_gtype.c @@ -52,12 +52,7 @@ static prop_info_t gtype_props_info[] = { static void gtype_free_object_storage(phpg_gtype_t *object TSRMLS_DC) { - zend_hash_destroy(object->zobj.properties); - FREE_HASHTABLE(object->zobj.properties); - if (object->zobj.guards) { - zend_hash_destroy(object->zobj.guards); - FREE_HASHTABLE(object->zobj.guards); - } + zend_object_std_dtor(&object->zobj TSRMLS_CC); efree(object); } diff --git a/main/phpg_paramspec.c b/main/phpg_paramspec.c index 7ba245c..93614e2 100644 --- a/main/phpg_paramspec.c +++ b/main/phpg_paramspec.c @@ -30,12 +30,7 @@ PHP_GTK_EXPORT_CE(gparamspec_ce) = NULL; static void phpg_paramspec_free_object_storage(phpg_paramspec_t *object TSRMLS_DC) { - zend_hash_destroy(object->zobj.properties); - FREE_HASHTABLE(object->zobj.properties); - if (object->zobj..guards) { - zend_hash_destroy(object->zobj.guards); - FREE_HASHTABLE(object->zobj.guards); - } + zend_object_std_dtor(&object->zobj TSRMLS_CC); if (object->pspec) { g_param_spec_unref(object->pspec); }

« previous php.gtk.cvs (#4846) next »