(self, start=0, end=0)
| 1945 | self.AddressTypeMarker(target_address)) |
| 1946 | |
| 1947 | def FindObjectPointers(self, start=0, end=0): |
| 1948 | objects = set() |
| 1949 | def find_object_in_region(reader, start, size, location): |
| 1950 | for slot in range(start, start + size, self.reader.TaggedPointerSize()): |
| 1951 | if not self.reader.IsValidAddress(slot): break |
| 1952 | # Collect only tagged pointers (object) to tagged pointers (map) |
| 1953 | tagged_address = self.reader.ReadTagged(slot) |
| 1954 | if not self.IsValidTaggedObjectAddress(tagged_address): continue |
| 1955 | map_address = self.reader.ReadTagged(tagged_address - 1) |
| 1956 | if not self.IsTaggedMapAddress(map_address): continue |
| 1957 | objects.add(tagged_address) |
| 1958 | |
| 1959 | if not start and not end: |
| 1960 | self.reader.ForEachMemoryRegion(find_object_in_region) |
| 1961 | else: |
| 1962 | find_object_in_region(self.reader, start, end-start, None) |
| 1963 | |
| 1964 | return objects |
| 1965 | |
| 1966 | |
| 1967 | for instance_type in V8Heap.CLASS_MAP.keys(): |
no test coverage detected