On Fri, 17 Sep 2010 18:15:58 -0400, Steven Schveighoffer <schvei...@yahoo.com> wrote:

On Fri, 17 Sep 2010 18:11:11 -0400, Steven Schveighoffer <schvei...@yahoo.com> wrote:

On Fri, 17 Sep 2010 18:07:54 -0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

On 09/17/2010 04:55 PM, Steven Schveighoffer wrote:
On Fri, 17 Sep 2010 17:33:11 -0400, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:

I think clear() can be fixed if we remove the call to the constructor
AND obliterate the vptr.

agreed.

One more thing: we need to change the call to the destructor to check the vptr. If the vptr is null, no call to the destructor. Where is that piece of code? Couldn't find it by grepping for __dtor.

lifetime.d?  Looks like it might already check for null classinfo ;)

http://www.dsource.org/projects/druntime/browser/trunk/src/rt/lifetime.d#L1002

Wait, I don't know enough about object I think. Is there ClassInfo *and* vtable in the object? Probably...

Nevermind, it looks like rt_finalize is already doing something similar in the finally clause. So it looks like vptr's first member is the classinfo.

Is there a map somewhere of what the hidden data in an object looks like?

-Steve

Reply via email to