[DGD] Re: status
Robert Forshaw
iouswuoibev at hotmail.com
Wed Jan 7 22:18:33 CET 2004
>From: Noah Gibbs <noah_gibbs at yahoo.com>
> No, it isn't. Think of it as an identifier for the
>*version* of the code... Every time you recompile an
>object, it gets a new issue number. So the 'master
>object' that the docs are talking about isn't a master
>in the master/clone sense. It's a 'master' object in
>the sense that it has a set of code used for a
>particular master object (and, by extension, any
>clones and anybody that inherits from it).
>
> Issue numbers are important to keep around because
>if anybody inherits from a particular library, that
>library can't be fully destroyed. You can destruct
>the object, which works fine, but the destructed
>version still sits around in memory... It has to.
>Somebody's still using it. When the last thing that
>inherits that version of the code has been destroyed
>or recompiled (to use a new and different version, not
>the old one) then the old issue of the code can be put
>to rest.
>
> That's a difference between your driver getting the
>destruct notification (which just means
>destruct_object() was called on it) and the
>remove_program() notification (which means it's no
>longer referenced and it's going to go away entirely).
>
> There are a couple of Object Managers around. You
>may have seen them on my site. Phantasmal has one as
>well. While those are designed to work with the
>Kernel Library, they're using notifications that are
>pretty much what the driver receives, except for
>anything with "lib" in the name :-)
>
> The big difference is that if you have objects that
>are both inheritable *and* clonable, you can't handle
>them the same way. Of course, if you have those then
>you've probably already blown your chance at being
>able to do a full recompile in-place. And if you
>don't want in-place recompiles then you can get away
>with a much simpler Object Manager.
Thanks for explaining that. While I understand what the issue is (to update
the objects that inherit a particular object requires destructing the
objects including the first one, but destructing an object with clones
causes the clones to lose their data, so you can't update the objects that
inherit from the first object AND update the objects that clone from the
first object... do I have that the right way round?).
What I don't understand is why this is the case. Why does an object have to
not be inherited by anything in order to update its children after being
recompiled?
_________________________________________________________________
Sign-up for a FREE BT Broadband connection today!
http://www.msn.co.uk/specials/btbroadband
_________________________________________________________________
List config page: http://list.imaginary.com/mailman/listinfo/dgd
More information about the DGD
mailing list