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
[email protected] (Elizabeth Marie Smith) Tue, 17 Jul 2012 02:09:45 +0000
| Newsgroups | php.gtk.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit: 0d19d4e184af36f08dfacdc41f342d1a3ff74c10=0AAuthor: Elizabeth = M Smith <[email protected]> Mon, 16 Jul 2012 22:09:45 -0400= =0AParents: 71f565cf8623794168a01132a4b75a1aeaceaff8=0ABranches: master= =0A=0ALink: http://git.php.net/?p=3Dphp/gtk-src.git;a=3Dcommitdiff;h= =3D0d19d4e184af36f08dfacdc41f342d1a3ff74c10=0A=0ALog:=0AAttempting to get i= t to stop segfaulting in 5.4=0Achange the way destructors are done=0A=0ACha= nged paths:=0A M ext/gtk+/php_gtk+.c=0A M ext/gtk+/php_gtk+_types.c=0A = M main/phpg_atom.c=0A M main/phpg_gboxed.c=0A M main/phpg_gobject.c= =0A M main/phpg_gpointer.c=0A M main/phpg_gtype.c=0A M main/phpg_para= mspec.c=0A=0A=0ADiff:=0Adiff --git a/ext/gtk+/php_gtk+.c b/ext/gtk+/php_gtk= +.c=0Aindex 77b5cad..1e3b555 100644=0A--- a/ext/gtk+/php_gtk+.c=0A+++ b/ext= /gtk+/php_gtk+.c=0A@@ -36,7 +36,7 @@ extern zend_class_entry *gdk_ce;=0A vo= id phpg_gdk_register_keysyms();=0A =0A /* TODO check pygtk version */=0A-st= atic void init_gtk(TSRMLS_C)=0A+static void init_gtk(TSRMLS_D)=0A {=0A =09H= ashTable *symbol_table;=0A =09zval **z_argv =3D NULL, **z_argc =3D NULL, **= entry;=0Adiff --git a/ext/gtk+/php_gtk+_types.c b/ext/gtk+/php_gtk+_types.c= =0Aindex f908289..0a7baf8 100644=0A--- a/ext/gtk+/php_gtk+_types.c=0A+++ b/= ext/gtk+/php_gtk+_types.c=0A@@ -730,12 +730,7 @@ static prop_info_t gtktree= modelrow_prop_info[] =3D {=0A =0A static void phpg_modelrow_free_object_sto= rage(phpg_modelrow_t *object TSRMLS_DC)=0A {=0A-=09zend_hash_destroy(object= ->zobj.properties);=0A-=09FREE_HASHTABLE(object->zobj.properties);=0A- i= f (object->zobj.guards) {=0A- zend_hash_destroy(object->zobj.guards)= ;=0A- FREE_HASHTABLE(object->zobj.guards); =0A- }=0A+=09zend_= object_std_dtor(&object->zobj TSRMLS_CC);=0A g_object_unref(object->mod= el);=0A =09efree(object);=0A }=0A@@ -792,12 +787,7 @@ static void phpg_mode= lrowiter_new(zval **zobj, GtkTreeModel *model, GtkTreeIter=0A =0A static vo= id phpg_modelrowiter_free_object_storage(phpg_modelrowiter_t *object TSRMLS= _DC)=0A {=0A-=09zend_hash_destroy(object->zobj.properties);=0A-=09FREE_HASH= TABLE(object->zobj.properties);=0A- if (object->zobj.guards) {=0A- = zend_hash_destroy(object->zobj.guards);=0A- FREE_HASHTABLE(object-= >zobj.guards); =0A- }=0A+=09zend_object_std_dtor(&object->zobj TSRML= S_CC);=0A if (object->current) {=0A zval_ptr_dtor(&object->curr= ent);=0A }=0Adiff --git a/main/phpg_atom.c b/main/phpg_atom.c=0Aindex a= d44bac..7ecf476 100644=0A--- a/main/phpg_atom.c=0A+++ b/main/phpg_atom.c=0A= @@ -41,12 +41,7 @@ static zend_function_entry gdkatom_methods[] =3D {=0A /*= {{{ static phpg_free_gdkatom_storage() */=0A static void phpg_free_gdkatom= _storage(phpg_gdkatom_t *object TSRMLS_DC)=0A {=0A-=09zend_hash_destroy(obj= ect->zobj.properties);=0A-=09FREE_HASHTABLE(object->zobj.properties);=0A- = if (object->zobj.guards) {=0A- zend_hash_destroy(object->zobj.guar= ds);=0A- FREE_HASHTABLE(object->zobj.guards); =0A- }=0A+=09ze= nd_object_std_dtor(&object->zobj TSRMLS_CC);=0A =09if (object->name) efree(= object->name);=0A =09efree(object);=0A }=0Adiff --git a/main/phpg_gboxed.c = b/main/phpg_gboxed.c=0Aindex 94a51c5..2cbbd36 100644=0A--- a/main/phpg_gbox= ed.c=0A+++ b/main/phpg_gboxed.c=0A@@ -54,12 +54,7 @@ static zend_function_e= ntry gboxed_methods[] =3D {=0A /* {{{ static phpg_free_gboxed_storage() */= =0A static void phpg_free_gboxed_storage(phpg_gboxed_t *object TSRMLS_DC)= =0A {=0A-=09zend_hash_destroy(object->zobj.properties);=0A-=09FREE_HASHTABL= E(object->zobj.properties);=0A- if (object->zobj.guards) {=0A- ze= nd_hash_destroy(object->zobj.guards);=0A- FREE_HASHTABLE(object->zob= j.guards); =0A- }=0A+=09zend_object_std_dtor(&object->zobj TSRMLS_CC= );=0A =09if (object->boxed && object->free_on_destroy) {=0A =09=09g_boxed_f= ree(object->gtype, object->boxed);=0A =09=09object->boxed =3D NULL;=0Adiff = --git a/main/phpg_gobject.c b/main/phpg_gobject.c=0Aindex 6fb064a..9727a55 = 100644=0A--- a/main/phpg_gobject.c=0A+++ b/main/phpg_gobject.c=0A@@ -40,12 = +40,7 @@ static inline void phpg_free_gobject_storage(phpg_gobject_t *objec= t, zend_object=0A {=0A GSList *tmp;=0A =0A- zend_hash_destroy(object= ->zobj.properties);=0A- FREE_HASHTABLE(object->zobj.properties);=0A- = if (object->zobj.guards) {=0A- zend_hash_destroy(object->zobj.guards= );=0A- FREE_HASHTABLE(object->zobj.guards); =0A- }=0A+ zen= d_object_std_dtor(&object->zobj TSRMLS_CC);=0A =0A /*=0A * Remove = cached handle information, since the object wrapper is going away.=0Adiff -= -git a/main/phpg_gpointer.c b/main/phpg_gpointer.c=0Aindex f52d367..f759d4c= 100644=0A--- a/main/phpg_gpointer.c=0A+++ b/main/phpg_gpointer.c=0A@@ -39,= 12 +39,7 @@ static zend_function_entry gpointer_methods[] =3D {=0A /* {{{ s= tatic phpg_free_gpointer_storage() */=0A static void phpg_free_gpointer_sto= rage(phpg_gpointer_t *object TSRMLS_DC)=0A {=0A-=09zend_hash_destroy(object= ->zobj.properties);=0A-=09FREE_HASHTABLE(object->zobj.properties);=0A- i= f (object->zobj.guards) {=0A- zend_hash_destroy(object->zobj.guards)= ;=0A- FREE_HASHTABLE(object->zobj.guards); =0A- }=0A+=09zend_= object_std_dtor(&object->zobj TSRMLS_CC);=0A =09efree(object);=0A }=0A /* }= }} */=0Adiff --git a/main/phpg_gtype.c b/main/phpg_gtype.c=0Aindex 49b02f3.= .e0af125 100644=0A--- a/main/phpg_gtype.c=0A+++ b/main/phpg_gtype.c=0A@@ -5= 2,12 +52,7 @@ static prop_info_t gtype_props_info[] =3D {=0A =0A static voi= d gtype_free_object_storage(phpg_gtype_t *object TSRMLS_DC)=0A {=0A-=09zend= _hash_destroy(object->zobj.properties);=0A-=09FREE_HASHTABLE(object->zobj.p= roperties);=0A- if (object->zobj.guards) {=0A- zend_hash_destroy(= object->zobj.guards);=0A- FREE_HASHTABLE(object->zobj.guards); = =0A- }=0A+=09zend_object_std_dtor(&object->zobj TSRMLS_CC);=0A =09efree(= object);=0A }=0A =0Adiff --git a/main/phpg_paramspec.c b/main/phpg_paramspe= c.c=0Aindex 7ba245c..93614e2 100644=0A--- a/main/phpg_paramspec.c=0A+++ b/m= ain/phpg_paramspec.c=0A@@ -30,12 +30,7 @@ PHP_GTK_EXPORT_CE(gparamspec_ce) = =3D NULL;=0A =0A static void phpg_paramspec_free_object_storage(phpg_params= pec_t *object TSRMLS_DC)=0A {=0A-=09zend_hash_destroy(object->zobj.properti= es);=0A-=09FREE_HASHTABLE(object->zobj.properties);=0A- if (object->zobj= .guards) {=0A- zend_hash_destroy(object->zobj.guards);=0A- FR= EE_HASHTABLE(object->zobj.guards); =0A- }=0A+=09zend_object_std_dtor= (&object->zobj TSRMLS_CC);=0A if (object->pspec) {=0A g_param_s= pec_unref(object->pspec);=0A }=0A