Triple code duplication

Karl Vogel karl.vogel at seagha.com
Sat Jul 24 11:50:47 CEST 2004


While converting kdelibs to a version that explicitly defines what should be 
exported (using KDE_EXPORT), I noticed that a few things are duplicated.

For example:

$ objdump -CT /opt/kde/lib/kde3/kbzip2filter.so |grep init_
00001ff0 g    DF .text  00000052  Base        init_kbzip2filter

$ objdump -CT /opt/kde/lib/kde3/kio_help.so |grep init_
0000d900 g    DF .text  00000052  Base        init_kbzip2filter

$ objdump -CT /opt/kde/lib/kde3/kio_ghelp.so |grep init_
0000d900 g    DF .text  00000052  Base        init_kbzip2filter


kdelibs/kdoctools uses kbzip2filter.cpp and compiles it directly into the 
kio_help.so and kio_ghelp.so shared libs.

Since this is exactly the same sourcecode as kioslave/bzip2, we now end up 
with this code duplicated 3 times!

I'm also wary as I think this can introduce subtle bugs.. ie if one of those 
versions is used and then another shared lib is opened containing a version, 
won't this override the present version ?! What if some state is kept in a 
global variable that is now overridden by the new version!


More information about the Kde-optimize mailing list