diff --git a/include/chaiscript/dispatchkit/dispatchkit.hpp b/include/chaiscript/dispatchkit/dispatchkit.hpp index 5ab3b11..c4299fc 100644 --- a/include/chaiscript/dispatchkit/dispatchkit.hpp +++ b/include/chaiscript/dispatchkit/dispatchkit.hpp @@ -389,8 +389,7 @@ namespace chaiscript public: typedef std::map Type_Name_Map; typedef std::map Scope; - typedef std::deque StackData; - typedef std::shared_ptr Stack; + typedef std::vector StackData; struct State { @@ -528,7 +527,7 @@ namespace chaiscript void new_stack() { // add a new Stack with 1 element - m_stack_holder->stacks.emplace_back(std::make_shared(1)); + m_stack_holder->stacks.emplace_back(1); } void pop_stack() @@ -536,12 +535,6 @@ namespace chaiscript m_stack_holder->stacks.pop_back(); } - /// \returns the current stack - Stack get_stack() const - { - return m_stack_holder->stacks.back(); - } - /// Searches the current stack for an object of the given name /// includes a special overload for the _ place holder object to /// ensure that it is always in scope. @@ -718,7 +711,7 @@ namespace chaiscript Stack_Holder &s = *m_stack_holder; // We don't want the current context, but one up if it exists - StackData &stack = (s.stacks.size()==1)?(*(s.stacks.back())):(*s.stacks[s.stacks.size()-2]); + StackData &stack = (s.stacks.size()==1)?(s.stacks.back()):(s.stacks[s.stacks.size()-2]); std::map retval; @@ -966,7 +959,7 @@ namespace chaiscript /// make const/non const versions StackData &get_stack_data() const { - return *(m_stack_holder->stacks.back()); + return m_stack_holder->stacks.back(); } const std::map &get_function_objects_int() const @@ -1147,10 +1140,10 @@ namespace chaiscript Stack_Holder() : call_depth(0) { - stacks.emplace_back(std::make_shared(1)); + stacks.emplace_back(1); } - std::deque stacks; + std::deque stacks; std::list call_params; int call_depth;