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:
@@ -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());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user