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(); Node* node = _ToNode();
if (node != NULL) { if (node != NULL) {
if (buffer != NULL) { if (buffer != NULL)
strlcpy((char*)buffer, node->Name(), kMaxIndexKeyLength); Policy::GetNodeValue(node, buffer, _keyLength);
*_keyLength = strlen(node->Name());
}
fNextTreeNode = Policy::GetNodeTree(fIndex)->Next(fNextTreeNode); fNextTreeNode = Policy::GetNodeTree(fIndex)->Next(fNextTreeNode);
} }
@@ -94,6 +94,12 @@ struct NameIndex::IteratorPolicy {
{ {
return index->fEntries; return index->fEntries;
} }
static void GetNodeValue(Node* node, void* buffer, size_t* _keyLength)
{
strlcpy((char*)buffer, node->Name(), kMaxIndexKeyLength);
*_keyLength = strlen(node->Name());
}
}; };