From db46ced43ce16f0c28078d042f2a4796e030daab Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Mon, 1 Jun 2015 18:33:11 +0300 Subject: [PATCH] cql3: fix shared_ptr misuse in select_statement A shared_ptr is mutable, so it must be thread_local, not static. --- cql3/statements/select_statement.cc | 2 +- cql3/statements/select_statement.hh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cql3/statements/select_statement.cc b/cql3/statements/select_statement.cc index 5d53dcae7b..f618eb2f63 100644 --- a/cql3/statements/select_statement.cc +++ b/cql3/statements/select_statement.cc @@ -33,7 +33,7 @@ namespace cql3 { namespace statements { -const shared_ptr select_statement::_default_parameters = ::make_shared(); +thread_local const shared_ptr select_statement::_default_parameters = ::make_shared(); select_statement::select_statement(schema_ptr schema, uint32_t bound_terms, diff --git a/cql3/statements/select_statement.hh b/cql3/statements/select_statement.hh index 8caa4d15ea..044d6f6ae0 100644 --- a/cql3/statements/select_statement.hh +++ b/cql3/statements/select_statement.hh @@ -74,7 +74,7 @@ public: }; private: static constexpr int DEFAULT_COUNT_PAGE_SIZE = 10000; - static const ::shared_ptr _default_parameters; + static thread_local const ::shared_ptr _default_parameters; schema_ptr _schema; uint32_t _bound_terms; ::shared_ptr _parameters;