[Clam-devel] reloading plugins and static variables...
nolaiz at gmail.com
Thu Aug 7 16:47:00 PDT 2008
I'm testing the David suggestions to keep a list of loaded dynamic
libraries (i.e. plugins), and the currently loaded.
static std::string _currentlyLoading;
on RunTimeLibraryLoader.hxx. Is initialized on RunTimeLibraryLoader.cxx as:
Is used it on virtual RunTimeLibraryLoader::FullyLoadLibrary, which is
called from virtual RunTimeLibraryLoader::LoadLibrariesFromPath, which
is called from virtual RunTimeLibraryLoader::Load.
For ladspa plugins loadings (calling Load() from a derived class) it
works OK. But on AutomaticRunTimeProcessingLibraryLoader (which is on
RunTimeProcessingLibraryLoader.cxx, instantiates a derived class from
RunTimeLibraryLoader as an object, and call the Load() from there) gaves
me a segmentation fault, like if the static variable were not defined.
Furthermore, trying to access directly
RunTimeLibraryLoader::_currentlyLoading (for instance:
RunTimeLibraryLoader::_currentlyLoading="testing";) is the same.
#0: std::string::asign /usr/lib/libstdc++.so.6
#1: std::string::operator= /usr/lib/libstdc++.so.6
#2: AutomaticRunTimeProcessingLibraryLoader (the above assignation
AutomaticRun..... is instantiated as a static object. Could be that the
problem? I tried defining the variable as extern, without luck...
This is making me mad... :-/ The linker doesn't says anything when
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the clam-devel