GNOME Bugzilla – Bug 766966
showtwell-0.23.1: provide man page
Last modified: 2017-02-03 04:12:17 UTC
We are relying on the man page Fedora is providing for shotwell, it would be nice to get it included in upstream tarball then http://pkgs.fedoraproject.org/cgit/shotwell.git/plain/shotwell.1 Thanks
*** This bug has been marked as a duplicate of bug 715578 ***
Created attachment 344819 [details] [review] js: Refactor dual use of JS::Heap wrapper The previous situation was that a JS::Heap wrapper was used to root a GC thing under some conditions using JS::AddFooRoot() or the keep-alive object, and trace or maintain a weak pointer otherwise. This will not be possible anymore in SpiderMonkey 38. JS::AddFooRoot() and JS::RemoveFooRoot() are going away, in favour of JS::PersistentRootedFoo. The keep-alive object has its own problems, because the SpiderMonkey 38 garbage collector will move GC things around, so anything referring to a GC thing on the keep-alive object will have to know when to update its JS::Heap wrapper when the GC thing moves. This previous situation existed in two places. (1) The JS::Value holding a trampoline's function. If the function was owned by the trampoline (the normal case), then it was rooted. If the function was a vfunc, in which case it was owned by the GObject class prototype and the trampoline was essentially leaked, then it remained a weak pointer. (2) The JSObject associated with a closure. In the normal case the object and the closure had the same lifetime and the object was rooted. Similar to above, if the closure was a signal it was owned by the GObject class, and traced. For both of these places we now use GjsMaybeOwned, a wrapper that sticks its GC thing in either a JS::PersistentRootedFoo, if the thing is intended to be rooted, or a JS::Heap<Foo>, if it is not. If rooted, the GjsMaybeOwned holds a weak reference to the GjsContext, and therefore can send out a notification when the context's dispose function is run, similar to existing functionality of the keep-alive object. This will still need to change further after the switch to SpiderMonkey 38, since weak pointers must be updated when they are moved by the GC. (This is technically already the case in SpiderMonkey 31, but the API makes it difficult to do correctly, and in practice it isn't necessary.) https://bugzilla.gnome.org/show_bug.cgi?id=776966
Created attachment 344820 [details] [review] WIP - make closure lifetime less complicated? https://bugzilla.gnome.org/show_bug.cgi?id=776966
Created attachment 344821 [details] [review] WIP - object: switch to C++ struct
Created attachment 344822 [details] [review] WIP - object: split out clear pending toggles
Created attachment 344823 [details] [review] WIP - remove keep-alive
Created attachment 344824 [details] [review] WIP - object: fully use GjsMaybeOwned wrapper
Ugh, sorry, I attached patches to the wrong bug; typo with git bz...