Fix build error on register_signal()
After a recent change, a build error started occurring on
register_signal() as it attempts to construct a signal with a string and
an array, but the constructor takes a string and char*.
This adds back the '.data()' to the array, so it can be passed to the
constructor and makes the constructor public to fix the build.
Tested:
Confirmed that a component that calls register_signal() builds
successfully.
Change-Id: I5a3ca58ef705854c5392ae13e0684d8a30580075
Signed-off-by: Jason M. Bills <jason.m.bills@intel.com>
diff --git a/include/sdbusplus/asio/object_server.hpp b/include/sdbusplus/asio/object_server.hpp
index 6123bd4..70237ce 100644
--- a/include/sdbusplus/asio/object_server.hpp
+++ b/include/sdbusplus/asio/object_server.hpp
@@ -71,11 +71,11 @@
class signal
{
+ public:
signal(const std::string& name, const char* signature) :
name_(name), signature_(signature)
{}
- public:
std::string name_;
const char* signature_;
};
@@ -568,7 +568,7 @@
static constexpr auto signature = utility::tuple_to_array(
message::types::type_id<SignalSignature...>());
- signals_.emplace_back(name, signature);
+ signals_.emplace_back(name, signature.data());
return true;
}