From 774f25800e6f19f4b927023c85d1389af322da5e Mon Sep 17 00:00:00 2001 From: dand-oss Date: Tue, 25 Sep 2018 09:12:12 -0500 Subject: [PATCH] fix up static, so works as DLL (#559) * fix up static, so works as DLL --- include/yaml-cpp/node/detail/node_data.h | 2 +- include/yaml-cpp/node/impl.h | 4 ++-- src/node_data.cpp | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/yaml-cpp/node/detail/node_data.h b/include/yaml-cpp/node/detail/node_data.h index 50bcd74..82fb79a 100644 --- a/include/yaml-cpp/node/detail/node_data.h +++ b/include/yaml-cpp/node/detail/node_data.h @@ -81,7 +81,7 @@ class YAML_CPP_API node_data { shared_memory_holder pMemory); public: - static std::string empty_scalar; + static const std::string& empty_scalar(); private: void compute_seq_size() const; diff --git a/include/yaml-cpp/node/impl.h b/include/yaml-cpp/node/impl.h index 20c487a..de2bf44 100644 --- a/include/yaml-cpp/node/impl.h +++ b/include/yaml-cpp/node/impl.h @@ -156,13 +156,13 @@ inline T Node::as(const S& fallback) const { inline const std::string& Node::Scalar() const { if (!m_isValid) throw InvalidNode(); - return m_pNode ? m_pNode->scalar() : detail::node_data::empty_scalar; + return m_pNode ? m_pNode->scalar() : detail::node_data::empty_scalar(); } inline const std::string& Node::Tag() const { if (!m_isValid) throw InvalidNode(); - return m_pNode ? m_pNode->tag() : detail::node_data::empty_scalar; + return m_pNode ? m_pNode->tag() : detail::node_data::empty_scalar(); } inline void Node::SetTag(const std::string& tag) { diff --git a/src/node_data.cpp b/src/node_data.cpp index 34d81f7..04104b7 100644 --- a/src/node_data.cpp +++ b/src/node_data.cpp @@ -13,7 +13,10 @@ namespace YAML { namespace detail { -std::string node_data::empty_scalar; +const std::string& node_data::empty_scalar() { + static const std::string svalue; + return svalue; +} node_data::node_data() : m_isDefined(false),