diff --git a/rclcpp_components/include/rclcpp_components/component_manager.hpp b/rclcpp_components/include/rclcpp_components/component_manager.hpp index 6238284278..62c75ec3be 100644 --- a/rclcpp_components/include/rclcpp_components/component_manager.hpp +++ b/rclcpp_components/include/rclcpp_components/component_manager.hpp @@ -260,7 +260,7 @@ class ComponentManager : public rclcpp::Node std::weak_ptr executor_; uint64_t unique_id_ {1}; - std::map> loaders_; + std::map> loaders_; std::map node_wrappers_; rclcpp::Service::SharedPtr loadNode_srv_; diff --git a/rclcpp_components/src/component_manager.cpp b/rclcpp_components/src/component_manager.cpp index 036350a64f..c6dbbf2417 100644 --- a/rclcpp_components/src/component_manager.cpp +++ b/rclcpp_components/src/component_manager.cpp @@ -113,7 +113,7 @@ ComponentManager::create_component_factory(const ComponentResource & resource) if (loaders_.find(library_path) == loaders_.end()) { RCLCPP_INFO(get_logger(), "Load Library: %s", library_path.c_str()); try { - loaders_[library_path] = std::make_unique(library_path); + loaders_[library_path] = class_loader::ClassLoader::Make(library_path); } catch (const std::exception & ex) { throw ComponentManagerException("Failed to load library: " + std::string(ex.what())); } catch (...) { diff --git a/rclcpp_components/src/node_main.cpp.in b/rclcpp_components/src/node_main.cpp.in index 0ca5eb8c61..98a6941133 100644 --- a/rclcpp_components/src/node_main.cpp.in +++ b/rclcpp_components/src/node_main.cpp.in @@ -30,14 +30,14 @@ int main(int argc, char * argv[]) rclcpp::executors::@executor@ exec; rclcpp::NodeOptions options; options.arguments(args); - std::vector loaders; + std::vector> loaders; std::vector node_wrappers; std::string library_name = "@library_name@"; std::string class_name = "rclcpp_components::NodeFactoryTemplate<@component@>"; RCLCPP_DEBUG(logger, "Load library %s", library_name.c_str()); - auto loader = new class_loader::ClassLoader(library_name); + auto loader = class_loader::ClassLoader::Make(library_name); auto classes = loader->getAvailableClasses(); for (const auto & clazz : classes) { std::string name = clazz.c_str();