Some Ideas for Dynamic Vtables in D

Christopher Wright dhasenan at gmail.com
Sat Feb 14 06:03:14 PST 2009


Frits van Bommel wrote:
> Michel Fortin wrote:
>> <http://michelf.com/weblog/2009/some-ideas-for-dynamic-vtables-in-d/>
> 
> ===
> In the current vtable system, each D object begins with a monitor 
> pointer, followed by a pointer to the vtable, followed by the object’s 
> members.
> ===
> Isn't it { vtable, monitor, <members> } ?

Yes.


import tango.io.Stdout;

class Foo
{
     uint i = 14;
     uint j = 10;
}

void main ()
{
     auto foo1 = new Foo;
     auto foo2 = new Foo;

     show(foo1);
     show(foo2);
}

void show (Foo foo)
{
     void** ptr = *cast(void***)&foo;
     for (int i = 0; i < foo.sizeof; i++)
     {
         Stdout.formatln("{}\t{}", i, ptr[i]);
     }
}

outputs:
0	805ec80
1	0
2	e
3	a
0	805ec80
1	0
2	e
3	a



More information about the Digitalmars-d mailing list