[Lsb-infrastructure] libchk script bug?

Jeff Licquia jeff at licquia.org
Thu Nov 15 14:17:03 PST 2007


In the (new?) Qt 4 data, we have QFileSystemWatcher:

http://www.linux-foundation.org/navigator/browse/class_single.php?cmd=list-by-name&Cname=QFileSystemWatcher&CIid=2402

Note that the number of functions is 12, which matches with the Content 
section of the page.

Here's the equivalent in libchk:

struct classvtable _18QFileSystemWatcher_of_libQtCore_so_4_vtable [1] = {
         {
         0,
         0,
         1,      /* Vtable category */
         12,     /* Number of Vfuncs */
         "_ZTI18QFileSystemWatcher",
         _18QFileSystemWatcher_of_libQtCore_so_4_vtable_name_0,
         },
};

Good so far.  But what does the vtable actually look like?

const char *_18QFileSystemWatcher_of_libQtCore_so_4_vtable_name_0 [] = {
         "_ZN7QObject5eventEP6QEvent",
         "_ZN7QObject11eventFilterEPS_P6QEvent",
         "_ZN7QObject10timerEventEP11QTimerEvent",
         "_ZN7QObject10childEventEP11QChildEvent",
         "_ZN7QObject11customEventEP6QEvent",
         "_ZN7QObject13connectNotifyEPKc",
         "_ZN7QObject16disconnectNotifyEPKc",
         };

Oops!  We're missing five functions!  This, by the way, will cause 
libchk to segfault once it iterates up to the 9th (nonexistent) virtual 
function.

Moreover, the missing functions are all defined in QFileSystemWatcher, 
while the ones that show up are QObject virtual functions.

It might also be of note that no base class shows up in the Navigator, 
though obviously QFileSystemWatcher has to derive from QObject to get 
virtual functions from it.


More information about the lsb-infrastructure mailing list