- add fix for excessive CPU usage (#494425)
This commit is contained in:
parent
234ad8b6cd
commit
1786169172
|
@ -0,0 +1,39 @@
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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/wxwindows/%{name}-%{version}.tar.bz2
|
|||
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@lists.fedoraproject.org> - 2.8.10-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||
|
||||
|
|
Loading…
Reference in New Issue