diff --git a/include/wsrep/gtid.hpp b/include/wsrep/gtid.hpp index 6d9bdc7..8b5afb0 100644 --- a/include/wsrep/gtid.hpp +++ b/include/wsrep/gtid.hpp @@ -31,8 +31,8 @@ namespace wsrep { public: gtid() - : id_(wsrep::id::undefined()) - , seqno_(wsrep::seqno::undefined()) + : id_() + , seqno_() { } gtid(const wsrep::id& id, wsrep::seqno seqno) : id_(id) @@ -44,13 +44,12 @@ namespace wsrep { return (seqno_.is_undefined() && id_.is_undefined()); } - static wsrep::gtid undefined() + static const wsrep::gtid& undefined() { - static const wsrep::gtid ret(wsrep::id::undefined(), - wsrep::seqno::undefined()); - return ret; + return undefined_; } private: + static const wsrep::gtid undefined_; wsrep::id id_; wsrep::seqno seqno_; }; diff --git a/include/wsrep/id.hpp b/include/wsrep/id.hpp index 9c8a9c5..be8c929 100644 --- a/include/wsrep/id.hpp +++ b/include/wsrep/id.hpp @@ -90,10 +90,10 @@ namespace wsrep static const wsrep::id& undefined() { - static wsrep::id ret = wsrep::id(); - return ret; + return undefined_; } private: + static const wsrep::id undefined_; unsigned char data_[16]; }; diff --git a/src/gtid.cpp b/src/gtid.cpp index 5b2c673..5fa90f6 100644 --- a/src/gtid.cpp +++ b/src/gtid.cpp @@ -23,6 +23,8 @@ #include #include +const wsrep::gtid wsrep::gtid::undefined_ = wsrep::gtid(); + std::ostream& wsrep::operator<<(std::ostream& os, const wsrep::gtid& gtid) { return (os << gtid.id() << ":" << gtid.seqno()); diff --git a/src/id.cpp b/src/id.cpp index 3159ec5..6c355e7 100644 --- a/src/id.cpp +++ b/src/id.cpp @@ -24,6 +24,8 @@ #include #include +const wsrep::id wsrep::id::undefined_ = wsrep::id(); + wsrep::id::id(const std::string& str) : data_() {