- 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
|
Name: wxGTK
|
||||||
Version: 2.8.10
|
Version: 2.8.10
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
Summary: GTK2 port of the wxWidgets GUI library
|
Summary: GTK2 port of the wxWidgets GUI library
|
||||||
# The wxWindows licence is the LGPL with a specific exemption allowing
|
# The wxWindows licence is the LGPL with a specific exemption allowing
|
||||||
# distribution of derived binaries under any terms. (This will eventually
|
# 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
|
Patch0: %{name}-2.8.10-gsocket.patch
|
||||||
# http://trac.wxwidgets.org/ticket/10993
|
# http://trac.wxwidgets.org/ticket/10993
|
||||||
Patch1: %{name}-2.8.10-CVE-2009-2369.patch
|
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)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
|
@ -101,6 +103,7 @@ libraries or the X Window System.
|
||||||
%setup -q -n %{name}-%{version}
|
%setup -q -n %{name}-%{version}
|
||||||
%patch0 -p1 -b .gsocket
|
%patch0 -p1 -b .gsocket
|
||||||
%patch1 -p0 -b .CVE-2009-2369
|
%patch1 -p0 -b .CVE-2009-2369
|
||||||
|
%patch2 -p0 -b .wxTimer-fix
|
||||||
|
|
||||||
sed -i -e 's|/usr/lib\b|%{_libdir}|' wx-config.in configure
|
sed -i -e 's|/usr/lib\b|%{_libdir}|' wx-config.in configure
|
||||||
|
|
||||||
|
@ -257,6 +260,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%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
|
* 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
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue