RESOLVED FIXED Bug 119003
[GTK] GtkAdjustmentWatcher idle source not correctly handled
https://bugs.webkit.org/show_bug.cgi?id=119003
Summary [GTK] GtkAdjustmentWatcher idle source not correctly handled
Carlos Garcia Campos
Reported 2013-07-23 01:52:17 PDT
GtkAdjustmentWatcher::updateAdjustmentsFromScrollbarsLater() creates a new idle source and initializes m_updateAdjustmentCallbackId, which is used everywhere and specially in the destructor to cancel the source when the GtkAdjustmentWatcher is deleted. However, m_updateAdjustmentCallbackId is reset to 0 in GtkAdjustmentWatcher::updateAdjustmentsFromScrollbars() only when not returning early. This method is public and not only called by the updateAdjustmentCallback, which means that a call to updateAdjustmentsFromScrollbars could reset the m_updateAdjustmentCallbackId without actually destroying the source.
Attachments
Patch (3.04 KB, patch)
2013-07-23 01:55 PDT, Carlos Garcia Campos
no flags
Updated patch (3.19 KB, patch)
2013-07-23 03:04 PDT, Carlos Garcia Campos
mrobinson: review+
Carlos Garcia Campos
Comment 1 2013-07-23 01:55:42 PDT
Created attachment 207312 [details] Patch Only reset the idle id when the idle callback has been called.
Carlos Garcia Campos
Comment 2 2013-07-23 02:05:27 PDT
I wonder if should also destroy the source in GtkAdjustmentWatcher::updateAdjustmentsFromScrollbars() where we were setting it to 0 before, since we have already handled the adjustment update.
Carlos Garcia Campos
Comment 3 2013-07-23 03:04:15 PDT
Created attachment 207317 [details] Updated patch Also destroy the source in GtkAdjustmentWatcher::updateAdjustmentsFromScrollbars()
Carlos Garcia Campos
Comment 4 2013-07-23 08:07:04 PDT
*** Bug 118396 has been marked as a duplicate of this bug. ***
Martin Robinson
Comment 5 2013-07-23 08:13:13 PDT
Comment on attachment 207317 [details] Updated patch Thanks!
Carlos Garcia Campos
Comment 6 2013-07-23 08:34:59 PDT
Note You need to log in before you can comment on or make changes to this bug.