diff --git a/CMakeLists.txt b/CMakeLists.txt index 7580a954..1e6f59a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,7 +76,7 @@ install(TARGETS ${PROJECT_NAME} install(DIRECTORY include/class_loader/ DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}) -install(PROGRAMS scripts/class_loader_headers_update.py +catkin_install_python(PROGRAMS scripts/class_loader_headers_update.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) if(CATKIN_ENABLE_TESTING) diff --git a/include/class_loader/class_loader_core.hpp b/include/class_loader/class_loader_core.hpp index 791be38f..67418640 100644 --- a/include/class_loader/class_loader_core.hpp +++ b/include/class_loader/class_loader_core.hpp @@ -217,7 +217,7 @@ void registerPlugin(const std::string & class_name, const std::string & base_cla if (factoryMap.find(class_name) != factoryMap.end()) { CONSOLE_BRIDGE_logWarn( "class_loader.impl: SEVERE WARNING!!! " - "A namespace collision has occured with plugin factory for class %s. " + "A namespace collision has occurred with plugin factory for class %s. " "New factory will OVERWRITE existing one. " "This situation occurs when libraries containing plugins are directly linked against an " "executable (the one running right now generating this message). " diff --git a/package.xml b/package.xml index 66554f3e..6cc29e0e 100644 --- a/package.xml +++ b/package.xml @@ -6,7 +6,8 @@ The class_loader package is a ROS-independent package for loading plugins during runtime and the foundation of the higher level ROS "pluginlib" library. class_loader utilizes the host operating system's runtime loader to open runtime libraries (e.g. .so/.dll files), introspect the library for exported plugin classes, and allows users to instantiate objects of said exported classes without the explicit declaration (i.e. header file) for those classes. - Steven! Ragnarök + Michael Carroll + Geoffrey Biggs BSD http://ros.org/wiki/class_loader @@ -14,6 +15,7 @@ https://github.com/ros/class_loader Mirza Shah + Steven! Ragnarök catkin diff --git a/src/class_loader_core.cpp b/src/class_loader_core.cpp index fc4da88c..a7ede3e5 100644 --- a/src/class_loader_core.cpp +++ b/src/class_loader_core.cpp @@ -542,6 +542,7 @@ void unloadLibrary(const std::string & library_path, ClassLoader * loader) assert(library->isLoaded() == false); delete (library); itr = open_libraries.erase(itr); + purgeGraveyardOfMetaobjects(library_path, loader, true); } else { CONSOLE_BRIDGE_logDebug( "class_loader.impl: "