Elizabeth Marie Smith
2012-07-17 02:09:45 UTC
Commit: 0d19d4e184af36f08dfacdc41f342d1a3ff74c10
Author: Elizabeth M Smith <***@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);
}
Author: Elizabeth M Smith <***@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);
}
--
PHP-GTK CVS Mailing List (http://gtk.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
PHP-GTK CVS Mailing List (http://gtk.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php