From 21495ebb40adc6890140ee8399500409a7e407ae Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Thu, 6 Oct 2016 09:09:50 -0600 Subject: [PATCH] Make sure atomics are initialized --- .../chaiscript/dispatchkit/dispatchkit.hpp | 2 +- .../dispatchkit/type_conversions.hpp | 3 +-- .../chaiscript/language/chaiscript_eval.hpp | 24 +++++++++---------- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/include/chaiscript/dispatchkit/dispatchkit.hpp b/include/chaiscript/dispatchkit/dispatchkit.hpp index a272a07..465e951 100644 --- a/include/chaiscript/dispatchkit/dispatchkit.hpp +++ b/include/chaiscript/dispatchkit/dispatchkit.hpp @@ -1503,7 +1503,7 @@ namespace chaiscript Type_Conversions m_conversions; chaiscript::detail::threading::Thread_Storage m_stack_holder; - mutable std::atomic_uint_fast32_t m_method_missing_loc; + mutable std::atomic_uint_fast32_t m_method_missing_loc = {0}; State m_state; }; diff --git a/include/chaiscript/dispatchkit/type_conversions.hpp b/include/chaiscript/dispatchkit/type_conversions.hpp index 3a4d239..d302a4f 100644 --- a/include/chaiscript/dispatchkit/type_conversions.hpp +++ b/include/chaiscript/dispatchkit/type_conversions.hpp @@ -337,7 +337,6 @@ namespace chaiscript : m_mutex(), m_conversions(), m_convertableTypes(), - m_num_types(0), m_thread_cache(this), m_conversion_saves(this) { @@ -498,7 +497,7 @@ namespace chaiscript mutable chaiscript::detail::threading::shared_mutex m_mutex; std::set> m_conversions; std::set m_convertableTypes; - std::atomic_size_t m_num_types; + std::atomic_size_t m_num_types = {0}; mutable chaiscript::detail::threading::Thread_Storage> m_thread_cache; mutable chaiscript::detail::threading::Thread_Storage m_conversion_saves; }; diff --git a/include/chaiscript/language/chaiscript_eval.hpp b/include/chaiscript/language/chaiscript_eval.hpp index 60474b4..1495c9b 100644 --- a/include/chaiscript/language/chaiscript_eval.hpp +++ b/include/chaiscript/language/chaiscript_eval.hpp @@ -128,7 +128,7 @@ namespace chaiscript private: Operators::Opers m_oper; - mutable std::atomic_uint_fast32_t m_loc; + mutable std::atomic_uint_fast32_t m_loc = {0}; }; struct Int_AST_Node : public AST_Node { @@ -203,7 +203,7 @@ namespace chaiscript Boxed_Value m_value; - mutable std::atomic_uint_fast32_t m_loc; + mutable std::atomic_uint_fast32_t m_loc = {0}; }; struct Char_AST_Node : public AST_Node { @@ -397,8 +397,8 @@ namespace chaiscript { assert(children.size() == 3); } Operators::Opers m_oper; - mutable std::atomic_uint_fast32_t m_loc; - mutable std::atomic_uint_fast32_t m_clone_loc; + mutable std::atomic_uint_fast32_t m_loc = {0}; + mutable std::atomic_uint_fast32_t m_clone_loc = {0}; virtual ~Equation_AST_Node() {} virtual Boxed_Value eval_internal(const chaiscript::detail::Dispatch_State &t_ss) const CHAISCRIPT_OVERRIDE { @@ -567,7 +567,7 @@ namespace chaiscript return oss.str(); } - mutable std::atomic_uint_fast32_t m_loc; + mutable std::atomic_uint_fast32_t m_loc = {0}; }; struct Dot_Access_AST_Node : public AST_Node { @@ -624,8 +624,8 @@ namespace chaiscript } private: - mutable std::atomic_uint_fast32_t m_loc; - mutable std::atomic_uint_fast32_t m_array_loc; + mutable std::atomic_uint_fast32_t m_loc = {0}; + mutable std::atomic_uint_fast32_t m_array_loc = {0}; std::string m_fun_name; }; @@ -961,7 +961,7 @@ namespace chaiscript return Boxed_Value(); } - mutable std::atomic_uint_fast32_t m_loc; + mutable std::atomic_uint_fast32_t m_loc = {0}; }; struct Case_AST_Node : public AST_Node { @@ -1027,7 +1027,7 @@ namespace chaiscript return "[" + AST_Node::pretty_print() + "]"; } - mutable std::atomic_uint_fast32_t m_loc; + mutable std::atomic_uint_fast32_t m_loc = {0}; }; struct Inline_Map_AST_Node : public AST_Node { @@ -1055,7 +1055,7 @@ namespace chaiscript } } - mutable std::atomic_uint_fast32_t m_loc; + mutable std::atomic_uint_fast32_t m_loc = {0}; }; struct Return_AST_Node : public AST_Node { @@ -1147,7 +1147,7 @@ namespace chaiscript private: Operators::Opers m_oper; - mutable std::atomic_uint_fast32_t m_loc; + mutable std::atomic_uint_fast32_t m_loc = {0}; }; struct Break_AST_Node : public AST_Node { @@ -1217,7 +1217,7 @@ namespace chaiscript } } - mutable std::atomic_uint_fast32_t m_loc; + mutable std::atomic_uint_fast32_t m_loc = {0}; }; struct Annotation_AST_Node : public AST_Node {