From 57330088d3982b21f0f94654794996996fb06f3e Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 30 Jul 2019 15:37:54 +0200 Subject: [PATCH] osd: switch ClassHandler::get_method() to std::string. Signed-off-by: Radoslaw Zarzynski --- src/osd/ClassHandler.cc | 14 ++++++++------ src/osd/ClassHandler.h | 6 +++--- src/osd/OSD.cc | 2 +- src/osd/PrimaryLogPG.cc | 2 +- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/osd/ClassHandler.cc b/src/osd/ClassHandler.cc index e96198ee881..0f9f5111c8b 100644 --- a/src/osd/ClassHandler.cc +++ b/src/osd/ClassHandler.cc @@ -257,15 +257,17 @@ ClassHandler::ClassFilter *ClassHandler::ClassData::register_cxx_filter( return &filter; } -ClassHandler::ClassMethod *ClassHandler::ClassData::_get_method(const char *mname) +ClassHandler::ClassMethod *ClassHandler::ClassData::_get_method( + const std::string& mname) { - map::iterator iter = methods_map.find(mname); - if (iter == methods_map.end()) - return NULL; - return &(iter->second); + if (auto iter = methods_map.find(mname); iter != methods_map.end()) { + return &(iter->second); + } else { + return nullptr; + } } -int ClassHandler::ClassData::get_method_flags(const char *mname) +int ClassHandler::ClassData::get_method_flags(const std::string& mname) { std::lock_guard l(handler->mutex); ClassMethod *method = _get_method(mname); diff --git a/src/osd/ClassHandler.h b/src/osd/ClassHandler.h index c70e9fbd25d..cd992e08297 100644 --- a/src/osd/ClassHandler.h +++ b/src/osd/ClassHandler.h @@ -69,7 +69,7 @@ public: std::set dependencies; /* our dependencies */ std::set missing_dependencies; /* only missing dependencies */ - ClassMethod *_get_method(const char *mname); + ClassMethod *_get_method(const std::string& mname); ClassMethod *register_method(const char *mname, int flags, @@ -83,11 +83,11 @@ public: cls_cxx_filter_factory_t fn); void unregister_filter(ClassFilter *method); - ClassMethod *get_method(const char *mname) { + ClassMethod *get_method(const std::string& mname) { std::lock_guard l(handler->mutex); return _get_method(mname); } - int get_method_flags(const char *mname); + int get_method_flags(const std::string& mname); ClassFilter *get_filter(const std::string &filter_name) { std::lock_guard l(handler->mutex); diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index b99b670cfad..40afda69d33 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -9961,7 +9961,7 @@ int OSD::init_op_flags(OpRequestRef& op) r = -EIO; return r; } - int flags = cls->get_method_flags(mname.c_str()); + int flags = cls->get_method_flags(mname); if (flags < 0) { if (flags == -ENOENT) r = -EOPNOTSUPP; diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index b34e1afc8be..a1be37f2d08 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -5685,7 +5685,7 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector& ops) result = ClassHandler::get_instance().open_class(cname, &cls); ceph_assert(result == 0); // init_op_flags() already verified this works. - ClassHandler::ClassMethod *method = cls->get_method(mname.c_str()); + ClassHandler::ClassMethod *method = cls->get_method(mname); if (!method) { dout(10) << "call method " << cname << "." << mname << " does not exist" << dendl; result = -EOPNOTSUPP; -- 2.39.5