GenericIndexIterator: Fix NameIndex dependency

Next() was still copying the name. Add a GetNodeValue() method to the
policy that fetches the value instead.
This commit is contained in:
Ingo Weinhold
2011-07-17 16:55:06 +02:00
parent a058fbe8a1
commit 144129434f
2 changed files with 8 additions and 4 deletions
@@ -93,10 +93,8 @@ GenericIndexIterator<Policy>::Next(void* buffer, size_t* _keyLength)
Node* node = _ToNode();
if (node != NULL) {
if (buffer != NULL) {
strlcpy((char*)buffer, node->Name(), kMaxIndexKeyLength);
*_keyLength = strlen(node->Name());
}
if (buffer != NULL)
Policy::GetNodeValue(node, buffer, _keyLength);
fNextTreeNode = Policy::GetNodeTree(fIndex)->Next(fNextTreeNode);
}
@@ -94,6 +94,12 @@ struct NameIndex::IteratorPolicy {
{
return index->fEntries;
}
static void GetNodeValue(Node* node, void* buffer, size_t* _keyLength)
{
strlcpy((char*)buffer, node->Name(), kMaxIndexKeyLength);
*_keyLength = strlen(node->Name());
}
};