fix: collect prefix hash values iteratively (#38204)
This commit is contained in:
@@ -163,9 +163,11 @@ class TreeNode:
|
||||
return self.hash_value[-1]
|
||||
|
||||
def get_prefix_hash_values(self, node: TreeNode) -> List[str]:
|
||||
if node is None or node.hash_value is None:
|
||||
return []
|
||||
return node.get_prefix_hash_values(node.parent) + node.hash_value
|
||||
chunks = []
|
||||
while node is not None and node.hash_value is not None:
|
||||
chunks.append(node.hash_value)
|
||||
node = node.parent
|
||||
return [value for chunk in reversed(chunks) for value in chunk]
|
||||
|
||||
def __lt__(self, other: TreeNode):
|
||||
return self.last_access_time < other.last_access_time
|
||||
|
||||
@@ -311,10 +311,11 @@ class TreeNode:
|
||||
return self.hash_value[-1]
|
||||
|
||||
def get_prefix_hash_values(self, node: TreeNode) -> List[str]:
|
||||
if node is None or node.hash_value is None:
|
||||
return []
|
||||
|
||||
return node.get_prefix_hash_values(node.parent) + node.hash_value
|
||||
chunks = []
|
||||
while node is not None and node.hash_value is not None:
|
||||
chunks.append(node.hash_value)
|
||||
node = node.parent
|
||||
return [value for chunk in reversed(chunks) for value in chunk]
|
||||
|
||||
def __lt__(self, other: TreeNode):
|
||||
return self.last_access_time < other.last_access_time
|
||||
|
||||
@@ -165,10 +165,11 @@ class UnifiedTreeNode:
|
||||
return self.hash_value[-1]
|
||||
|
||||
def get_prefix_hash_values(self, node: UnifiedTreeNode) -> list[str]:
|
||||
if node is None or node.hash_value is None:
|
||||
return []
|
||||
|
||||
return node.get_prefix_hash_values(node.parent) + node.hash_value
|
||||
chunks = []
|
||||
while node is not None and node.hash_value is not None:
|
||||
chunks.append(node.hash_value)
|
||||
node = node.parent
|
||||
return [value for chunk in reversed(chunks) for value in chunk]
|
||||
|
||||
|
||||
class UnifiedLRUList:
|
||||
|
||||
Reference in New Issue
Block a user