rpms/wxGTK/F-12 wxGTK-2.8.10-wxTimer-fix.patch, NONE, 1.1 wxGTK.spec, 1.48, 1.49

Dan Horák sharkcz at fedoraproject.org
Fri Oct 16 10:17:00 UTC 2009


Author: sharkcz

Update of /cvs/pkgs/rpms/wxGTK/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10344

Modified Files:
	wxGTK.spec 
Added Files:
	wxGTK-2.8.10-wxTimer-fix.patch 
Log Message:
* Fri Oct 16 2009 Dan Horák <dan[at]danny.cz> - 2.8.10-5 
- add fix for excessive CPU usage (#494425)


wxGTK-2.8.10-wxTimer-fix.patch:
 app.cpp |   17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

--- NEW FILE wxGTK-2.8.10-wxTimer-fix.patch ---
Index: src/gtk/app.cpp
===================================================================
--- src/gtk/app.cpp	(revision 62396)
+++ src/gtk/app.cpp	(revision 62397)
@@ -149,9 +149,11 @@
 // One-shot emission hook for "event" signal, to install idle handler.
 // This will be called when the "event" signal is issued on any GtkWidget object.
 static gboolean
-event_emission_hook(GSignalInvocationHint*, guint, const GValue*, gpointer)
+event_emission_hook(GSignalInvocationHint*, guint, const GValue*, gpointer data)
 {
     wxapp_install_idle_handler();
+    bool* hook_installed = (bool*)data;
+    *hook_installed = false;
     // remove hook
     return false;
 }
@@ -159,12 +161,17 @@
 // add emission hook for "event" signal, to re-install idle handler when needed
 static inline void wxAddEmissionHook()
 {
+    static bool hook_installed;
     GType widgetType = GTK_TYPE_WIDGET;
-    // if GtkWidget type is loaded
-    if (g_type_class_peek(widgetType) != NULL)
+    // if hook not installed and GtkWidget type is loaded
+    if (!hook_installed && g_type_class_peek(widgetType))
     {
-        guint sig_id = g_signal_lookup("event", widgetType);
-        g_signal_add_emission_hook(sig_id, 0, event_emission_hook, NULL, NULL);
+        static guint sig_id;
+        if (sig_id == 0)
+            sig_id = g_signal_lookup("event", widgetType);
+        hook_installed = true;
+        g_signal_add_emission_hook(
+            sig_id, 0, event_emission_hook, &hook_installed, NULL);
     }
 }
 


Index: wxGTK.spec
===================================================================
RCS file: /cvs/pkgs/rpms/wxGTK/F-12/wxGTK.spec,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -p -r1.48 -r1.49
--- wxGTK.spec	27 Jul 2009 07:30:36 -0000	1.48
+++ wxGTK.spec	16 Oct 2009 10:17:00 -0000	1.49
@@ -4,7 +4,7 @@
 
 Name:           wxGTK
 Version:        2.8.10
-Release:        4%{?dist}
+Release:        5%{?dist}
 Summary:        GTK2 port of the wxWidgets GUI library
 # The wxWindows licence is the LGPL with a specific exemption allowing
 # distribution of derived binaries under any terms. (This will eventually
@@ -18,6 +18,8 @@ Source0:        http://dl.sf.net/wxwindo
 Patch0:         %{name}-2.8.10-gsocket.patch
 # http://trac.wxwidgets.org/ticket/10993
 Patch1:         %{name}-2.8.10-CVE-2009-2369.patch
+# http://trac.wxwidgets.org/ticket/11315
+Patch2:         %{name}-2.8.10-wxTimer-fix.patch
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -101,6 +103,7 @@ libraries or the X Window System.
 %setup -q -n %{name}-%{version}
 %patch0 -p1 -b .gsocket
 %patch1 -p0 -b .CVE-2009-2369
+%patch2 -p0 -b .wxTimer-fix
 
 sed -i -e 's|/usr/lib\b|%{_libdir}|' wx-config.in configure
 
@@ -257,6 +260,9 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Fri Oct 16 2009 Dan Horák <dan[at]danny.cz> - 2.8.10-5 
+- add fix for excessive CPU usage (#494425)
+
 * Mon Jul 27 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.8.10-4
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
 




More information about the fedora-extras-commits mailing list