diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2016-04-08 09:25:05 +1000 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2016-04-08 09:25:05 +1000 |
commit | 68a2a44587388528e344dc25a1a33e0e17e7e468 (patch) | |
tree | 231f119bbb4006ceaedc97923f245f53d85a9a4b /qt/ScintillaEditBase/ScintillaEditBase.cpp | |
parent | 0604389a02a2cb5f33f5f84e460ad3d7a55f1fc4 (diff) | |
download | scintilla-mirror-68a2a44587388528e344dc25a1a33e0e17e7e468.tar.gz |
Scintilla Gtk: use gdk_threads_add_idle_full() instead of g_idle_add_full() and gdk_threads_add_timeout() instead of g_timeout_add()
* The g_idle/g_timeout watchers are not executed with the Gdk lock
held. This causes memory corruptions and crashes when accessing
the Scintilla object from the non-main-loop-thread.
At least this was the case after Gdk 3.6 since Scintilla
used gdk_threads_enter()/leave() for earlier versions.
The timeout handlers have possibly always been broken.
* The new version should work with non-deprecated APIs in all Gdk
versions.
* Even though this only fixes the idle handlers in Gdk >= 3.6 where
gdk_threads_enter() is deprecated (the only way to provoke
above situation) - and the timers of course - this patch makes
the code more elegant.
Diffstat (limited to 'qt/ScintillaEditBase/ScintillaEditBase.cpp')
0 files changed, 0 insertions, 0 deletions