diff options
author | Joe Marcus Clarke <marcus@FreeBSD.org> | 2003-07-02 21:36:54 +0000 |
---|---|---|
committer | Joe Marcus Clarke <marcus@FreeBSD.org> | 2003-07-02 21:36:54 +0000 |
commit | 2e8cdd9861a7590e6914628a8e047cf9ccbf6c17 (patch) | |
tree | 17cc04ca3a3f1be1b34b14e28ef085b326c980eb /www/epiphany | |
parent | Mozilla-vendor has been removed. Download the 1.02 port from freefall, (diff) |
Add a better patch to fix the va_list problem.
Obtained from: http://bugzilla.gnome.org/show_bug.cgi?id=116131
Notes
Notes:
svn path=/head/; revision=84078
Diffstat (limited to '')
-rw-r--r-- | www/epiphany/files/patch-lib_ephy-node.c | 68 |
1 files changed, 57 insertions, 11 deletions
diff --git a/www/epiphany/files/patch-lib_ephy-node.c b/www/epiphany/files/patch-lib_ephy-node.c index 2777286b0dc3..cbcc45b39905 100644 --- a/www/epiphany/files/patch-lib_ephy-node.c +++ b/www/epiphany/files/patch-lib_ephy-node.c @@ -1,21 +1,67 @@ ---- lib/ephy-node.c.orig Mon Jun 9 19:02:09 2003 -+++ lib/ephy-node.c Sun Jun 29 02:01:59 2003 -@@ -115,12 +115,16 @@ +Index: lib/ephy-node.c +=================================================================== +RCS file: /cvs/gnome/epiphany/lib/ephy-node.c,v +retrieving revision 1.19 +diff -u -p -r1.19 ephy-node.c +--- lib/ephy-node.c 9 Jun 2003 13:06:19 -0000 1.19 ++++ lib/ephy-node.c 28 Jun 2003 22:46:29 -0000 +@@ -64,6 +64,12 @@ struct EphyNode + EphyNodeDb *db; + }; + ++typedef struct ++{ ++ EphyNodeSignalType type; ++ va_list valist; ++} ENESCData; ++ + /* evillish hacks to temporarily readlock->writelock and v.v. */ + static inline void + write_lock_to_read_lock (EphyNode *node) +@@ -113,14 +119,16 @@ int_hash (gconstpointer a) + } + static void - callback (long id, EphyNodeSignalData *data, gpointer *user_data) +-callback (long id, EphyNodeSignalData *data, gpointer *user_data) ++callback (long id, EphyNodeSignalData *data, gpointer *dummy) { - va_list valist; +- EphyNodeSignalType type = GPOINTER_TO_INT (user_data[1]); ++ ENESCData *user_data; + va_list valist; - EphyNodeSignalType type = GPOINTER_TO_INT (user_data[1]); - if (data->type != type) return; +- if (data->type != type) return; ++ user_data = (ENESCData *) dummy; - va_copy(valist, user_data[0]); -+#if __FreeBSD_version >= 500040 -+ va_copy(valist, user_data[0]); -+#else -+ valist = (va_list) user_data[0]; -+#endif ++ valist = user_data->valist; ++ ++ if (data->type != user_data->type) return; switch (data->type) { +@@ -155,18 +163,17 @@ callback (long id, EphyNodeSignalData *d + static void + ephy_node_emit_signal (EphyNode *node, EphyNodeSignalType type, ...) + { +- va_list valist; +- gpointer data[2]; ++ ENESCData data; ++ ++ va_start (data.valist, type); + +- va_start (valist, type); ++ data.type = type; + +- data[0] = (gpointer)valist; +- data[1] = GINT_TO_POINTER (type); + g_hash_table_foreach (node->signals, + (GHFunc) callback, +- data); ++ &data); + +- va_end (valist); ++ va_end (data.valist); + } + + static void |