Archive for January, 2009

DEV300_m39, a note on pure virtuals

Thursday, January 22nd, 2009

DEV300_m39 callcatcher report. Couple of modules go down, a couple go up. Balances out to retain 927 unused methods. The top three offenders remain sd, writerfilter and sc.

Note that if a method declared as pure virtual in class X then if an implementation of that method in class X is provided then it *does not* get called through the vtable, i.e. the body of that method is effectively a non-virtual method, to get called it has to be explicitly called somehow.

So that means that callcatcher is correct if it reports that a pure virtual method is unused. Virtual methods are ignored, but implementations of base-class pure virtuals are a different kettle of fish and can themselves be treated as non-virtuals.

class foo
{
public:
virtual void bar() = 0;
};

//Can only get called by an explicit call of foo::bar() on some concrete subclass of abstract superclass foo
void foo::bar()
{
//something
}

DEV300_m38

Monday, January 5th, 2009

The DEV300_m38 callcatcher results, now with added inline deltas niftyness to show which are the new unused methods since the last run. Overall increase of +5 methods since m37.