Fixed node iterator

This commit is contained in:
Jesse Beder
2011-09-10 14:36:10 -05:00
parent c3b0ba9d61
commit 5012063143
4 changed files with 22 additions and 12 deletions

View File

@@ -1,4 +1,5 @@
#include "valueevents.h"
#include "yaml-cpp/value.h"
namespace YAML
{
@@ -7,7 +8,7 @@ namespace YAML
Visit(m_root);
}
void Visit(detail::node& node)
void ValueEvents::Visit(const detail::node& node)
{
int& refCount = m_refCount[node.ref()];
refCount++;
@@ -15,8 +16,13 @@ namespace YAML
return;
if(node.type() == ValueType::Sequence) {
for(detail::const_node_iterator it=node.begin();it!=node.end();++it)
Visit(**it);
} else if(node.type() == ValueType::Map) {
for(detail::const_node_iterator it=node.begin();it!=node.end();++it) {
Visit(*it->first);
Visit(*it->second);
}
}
}
}

View File

@@ -7,7 +7,7 @@
#include "yaml-cpp/anchor.h"
#include "yaml-cpp/value/ptr.h"
#include <multiset>
#include <map>
#include <vector>
namespace YAML
@@ -20,7 +20,7 @@ namespace YAML
ValueEvents(const Value& value);
private:
void Visit(detail::node& node);
void Visit(const detail::node& node);
private:
detail::shared_memory_holder m_pMemory;