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