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