summaryrefslogtreecommitdiffstats
path: root/chromium/v8/src/heap/basic-memory-chunk.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/v8/src/heap/basic-memory-chunk.cc
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/v8/src/heap/basic-memory-chunk.cc')
-rw-r--r--chromium/v8/src/heap/basic-memory-chunk.cc38
1 files changed, 37 insertions, 1 deletions
diff --git a/chromium/v8/src/heap/basic-memory-chunk.cc b/chromium/v8/src/heap/basic-memory-chunk.cc
index fa94f60f4ec..50eb8392915 100644
--- a/chromium/v8/src/heap/basic-memory-chunk.cc
+++ b/chromium/v8/src/heap/basic-memory-chunk.cc
@@ -7,8 +7,8 @@
#include <cstdlib>
#include "src/heap/heap-write-barrier-inl.h"
+#include "src/heap/incremental-marking.h"
#include "src/objects/heap-object.h"
-#include "src/objects/slots-inl.h"
namespace v8 {
namespace internal {
@@ -39,5 +39,41 @@ void BasicMemoryChunk::ReleaseMarkingBitmap() {
marking_bitmap_ = nullptr;
}
+// static
+BasicMemoryChunk* BasicMemoryChunk::Initialize(Heap* heap, Address base,
+ size_t size, Address area_start,
+ Address area_end,
+ BaseSpace* owner,
+ VirtualMemory reservation) {
+ BasicMemoryChunk* chunk = FromAddress(base);
+ DCHECK_EQ(base, chunk->address());
+ new (chunk) BasicMemoryChunk(size, area_start, area_end);
+
+ chunk->heap_ = heap;
+ chunk->set_owner(owner);
+ chunk->reservation_ = std::move(reservation);
+ chunk->high_water_mark_ = static_cast<intptr_t>(area_start - base);
+ chunk->allocated_bytes_ = chunk->area_size();
+ chunk->wasted_memory_ = 0;
+
+ return chunk;
+}
+
+bool BasicMemoryChunk::InOldSpace() const {
+ return owner()->identity() == OLD_SPACE;
+}
+
+bool BasicMemoryChunk::InLargeObjectSpace() const {
+ return owner()->identity() == LO_SPACE;
+}
+
+#ifdef THREAD_SANITIZER
+void BasicMemoryChunk::SynchronizedHeapLoad() {
+ CHECK(reinterpret_cast<Heap*>(base::Acquire_Load(
+ reinterpret_cast<base::AtomicWord*>(&heap_))) != nullptr ||
+ InReadOnlySpace());
+}
+#endif
+
} // namespace internal
} // namespace v8