From c7cb92f43f97ef5558eee0d7be6f18192134f3ec Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Sun, 12 Apr 2015 02:50:18 +0200 Subject: Replace NodeVector by ManagedVector where NodeVector functionality is not needed. Reduces calls to "Manager.registerEvent" to <10% of original value --- src/core/parser/ParserScope.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/core/parser/ParserScope.cpp') diff --git a/src/core/parser/ParserScope.cpp b/src/core/parser/ParserScope.cpp index 4b0f376..0be8a22 100644 --- a/src/core/parser/ParserScope.cpp +++ b/src/core/parser/ParserScope.cpp @@ -36,7 +36,8 @@ namespace ousia { ParserScopeBase::ParserScopeBase() {} -ParserScopeBase::ParserScopeBase(const NodeVector &nodes) : nodes(nodes) +ParserScopeBase::ParserScopeBase(const ManagedVector &nodes) + : nodes(nodes) { } @@ -74,7 +75,7 @@ Rooted ParserScopeBase::getRoot() const { return nodes.front(); } Rooted ParserScopeBase::getLeaf() const { return nodes.back(); } -const NodeVector &ParserScopeBase::getStack() const { return nodes; } +const ManagedVector &ParserScopeBase::getStack() const { return nodes; } std::vector ParserScopeBase::getStackTypeSignature() const { @@ -118,7 +119,7 @@ Rooted ParserScopeBase::selectOrThrow(RttiSet types, int maxDepth) /* Class DeferredResolution */ -DeferredResolution::DeferredResolution(const NodeVector &nodes, +DeferredResolution::DeferredResolution(const ManagedVector &nodes, const std::vector &path, const Rtti *type, ResolutionResultCallback resultCallback, @@ -169,7 +170,7 @@ void DeferredResolution::fail(Logger &logger) /* Class ParserScope */ -ParserScope::ParserScope(const NodeVector &nodes, +ParserScope::ParserScope(const ManagedVector &nodes, const std::vector &flags) : ParserScopeBase(nodes), flags(flags), topLevelDepth(nodes.size()) { @@ -261,7 +262,10 @@ void ParserScope::pop(Logger &logger) #endif } -NodeVector ParserScope::getTopLevelNodes() const { return topLevelNodes; } +ManagedVector ParserScope::getTopLevelNodes() const +{ + return topLevelNodes; +} void ParserScope::setFlag(ParserFlag flag, bool value) { -- cgit v1.2.3