a2e4153fa0
If we have the following sequence: cache.getImageContent({ filename: "foo", cancellable: cancellable1 }); cache.getImageContent({ filename: "foo", cancellable: cancellable2 }); cancellable1.cancel(); Then the second load will complete with "null" as its content, even though it was never cancelled, and we'll see a blank image. Meanwhile, since the second load simply appends to the list of callers for the second load, cancellable2 does absolutely nothing: cancelling it won't stop the load, and it will still receive onFinished handling. To prevent this from happening, give the actual load operation its own Gio.Cancellable, which is "ref-counted" -- only cancel it when all the other possible callers cancel. Additionally, clean up the large nested loops by splitting out duplicated code and other stuff. https://bugzilla.gnome.org/show_bug.cgi?id=722149 |
||
---|---|---|
.. | ||
extensionPrefs | ||
gdm | ||
misc | ||
perf | ||
ui | ||
js-resources.gresource.xml | ||
Makefile.am |