Imagination PowerVR SDK Blog

Bug in PVRShell.cpp ?


when I look at
c:Imagination TechnologiesPOWERVR SDKOGLES2_WINDOWS_PCEMULATION_2.07.27.0484ShellPVRShell.cpp

I find this constructor:
    memset(this, 0, sizeof(*this));

Setting the whole class to ZEROs also means setting the VTABLE to ZERO, right?
And this class is inheriting other classes!

class PVRShellInit : public PVRShellInitAPI, public PVRShellInitOS

So the VTABLE is erased? But still it is working? Compiler-specific?
Or my misunderstanding?




Whilst a memset operation would overwrite a class’ pointer to its vtable, there is no such issue here. The ShellInit, ShellInitAPI and ShellInitOS classes do not contain any virtual functions, and so have no vtable to overwrite.