Bill Baxter wrote:
On Fri, Jan 16, 2009 at 10:22 AM, Walter Bright
<[email protected]> wrote:
Bill Baxter wrote:
On Fri, Jan 16, 2009 at 9:00 AM, Yigal Chripun<[email protected]> wrote:
2. there's more to S&S than just an array of delegates - they are weak
refs
so that destruction of an object disconnects automatically the apropriate
signals. but there is a weakref lib for D written by Bill IIRC, that
could
be utilized in qtD. no pre-processor needed.
The "delegates" in Qt are more like a QObject,QString pair. The
object and the *name* of the method to call.
And there aren't really "weak refs" in Qt. When you connect a signal
and slot it also makes some extra connections between the two objects'
destroyed() signals. So each object is also listening for the other
object to be destroyed. Sort of a weak ref, but more like a strong
ref with active notifications about destruction either way. In a
GC'ed language with real weak refs, the slot holder doesn't have to
worry if the signal sender disappears.
This is taken care of in std.signals.
WeakRef Yigal was referring to is just a handy wrapper class for the
same GC callback that std.signals uses. Plus it's compatible with
both Phobos and Tango.
--bb
What I meant was that QT provides the functionality of a weakref, but
you're right that that's not a "real" weak ref.
still, I think this functionality need to be implemented in qtD and
luckily D does have true weakrefs that can be utilized for this.
Question: since D2 now uses the same runtime as tango and that includes
the (same) GC, do we still need the wrapper, for D2 code?