Skip to content

Commit b2f262a

Browse files
rmacnak-googleCommit Queue
authored andcommitted
[vm, gc] Take the space lock for new-space Contains.
Remove several dead Contains variants. TEST=iso-stress Bug: #61760 Change-Id: Ic73706016f257f8328f91091bd1ef0460c0b1fb2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/458062 Commit-Queue: Ryan Macnak <[email protected]> Reviewed-by: Alexander Aprelev <[email protected]>
1 parent 395c687 commit b2f262a

File tree

6 files changed

+6
-27
lines changed

6 files changed

+6
-27
lines changed

runtime/vm/heap/heap.cc

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -273,22 +273,10 @@ bool Heap::Contains(uword addr) const {
273273
return new_space_.Contains(addr) || old_space_.Contains(addr);
274274
}
275275

276-
bool Heap::NewContains(uword addr) const {
277-
return new_space_.Contains(addr);
278-
}
279-
280-
bool Heap::OldContains(uword addr) const {
281-
return old_space_.Contains(addr);
282-
}
283-
284276
bool Heap::CodeContains(uword addr) const {
285277
return old_space_.CodeContains(addr);
286278
}
287279

288-
bool Heap::DataContains(uword addr) const {
289-
return old_space_.DataContains(addr);
290-
}
291-
292280
void Heap::VisitObjects(ObjectVisitor* visitor) {
293281
new_space_.VisitObjects(visitor);
294282
old_space_.VisitObjects(visitor);

runtime/vm/heap/heap.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,7 @@ class Heap {
9292

9393
// Heap contains the specified address.
9494
bool Contains(uword addr) const;
95-
bool NewContains(uword addr) const;
96-
bool OldContains(uword addr) const;
9795
bool CodeContains(uword addr) const;
98-
bool DataContains(uword addr) const;
9996

10097
void NotifyIdle(int64_t deadline);
10198
void NotifyDestroyed();

runtime/vm/heap/pages.cc

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -624,15 +624,6 @@ bool PageSpace::CodeContains(uword addr) const {
624624
return false;
625625
}
626626

627-
bool PageSpace::DataContains(uword addr) const {
628-
for (ExclusivePageIterator it(this); !it.Done(); it.Advance()) {
629-
if (!it.page()->is_executable() && it.page()->Contains(addr)) {
630-
return true;
631-
}
632-
}
633-
return false;
634-
}
635-
636627
void PageSpace::AddRegionsToObjectSet(ObjectSet* set) const {
637628
ASSERT((pages_ != nullptr) || (exec_pages_ != nullptr) ||
638629
(large_pages_ != nullptr));

runtime/vm/heap/pages.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,6 @@ class PageSpace {
227227
bool Contains(uword addr) const;
228228
bool ContainsUnsafe(uword addr) const;
229229
bool CodeContains(uword addr) const;
230-
bool DataContains(uword addr) const;
231-
bool IsValidAddress(uword addr) const { return Contains(addr); }
232230

233231
void VisitObjects(ObjectVisitor* visitor) const;
234232
void VisitObjectsNoImagePages(ObjectVisitor* visitor) const;

runtime/vm/heap/scavenger.cc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -804,6 +804,11 @@ Scavenger::~Scavenger() {
804804
ASSERT(blocks_ == nullptr);
805805
}
806806

807+
bool Scavenger::Contains(uword addr) const {
808+
MutexLocker ml(&space_lock_);
809+
return to_->Contains(addr);
810+
}
811+
807812
intptr_t Scavenger::NewSizeInWords(intptr_t old_size_in_words,
808813
GCReason reason) const {
809814
intptr_t num_mutators = heap_->isolate_group()->MutatorCount();

runtime/vm/heap/scavenger.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ class Scavenger {
132132
// During scavenging both the to and from spaces contain "legal" objects.
133133
// During a scavenge this function only returns true for addresses that will
134134
// be part of the surviving objects.
135-
bool Contains(uword addr) const { return to_->Contains(addr); }
135+
bool Contains(uword addr) const;
136136

137137
uword TryAllocate(Thread* thread, intptr_t size) {
138138
uword addr = TryAllocateFromTLAB(thread, size);

0 commit comments

Comments
 (0)