[Clam-devel] reloading plugins and static variables...
Natanael Olaiz
nolaiz at gmail.com
Thu Aug 7 16:47:00 PDT 2008
Hi.
I'm testing the David suggestions to keep a list of loaded dynamic
libraries (i.e. plugins), and the currently loaded.
I declared:
public:
static std::string _currentlyLoading;
on RunTimeLibraryLoader.hxx. Is initialized on RunTimeLibraryLoader.cxx as:
std::string RunTimeLibraryLoader::_currentlyLoading=std::string();
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.
TraceBack:
#0: std::string::asign /usr/lib/libstdc++.so.6
#1: std::string::operator= /usr/lib/libstdc++.so.6
#2: AutomaticRunTimeProcessingLibraryLoader (the above assignation
_currentlyLoading="testing")
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
compiling...
Any clue?
Regards,
Natanael.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20080807/9c9f40e3/attachment-0002.htm>
More information about the clam-devel
mailing list