angr.storage.memory_mixins.label_merger_mixin 源代码

from __future__ import annotations
from collections.abc import Iterable

from angr.storage.memory_mixins.memory_mixin import MemoryMixin


[文档] class LabelMergerMixin(MemoryMixin): """ A memory mixin for merging labels. Labels come from SimLabeledMemoryObject. """
[文档] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs)
def _merge_labels(self, labels: Iterable[dict], **kwargs) -> dict | None: new_label = {} all_keys = set() for label in labels: all_keys.update(label.keys()) for key in all_keys: v = ... for label in labels: if v is ...: v = label.get(key) elif v != label.get(key): v = None new_label[key] = v return new_label
[文档] def copy(self, memo=None): return super().copy(memo)