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-11-25 06:19:17 +01:00
parent f4bb0389e8
commit abaf82e5a9
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());
}
};