v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
object-size-trait.cc
Go to the documentation of this file.
1
// Copyright 2021 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include "
include/cppgc/object-size-trait.h
"
6
7
#include "
src/heap/cppgc/heap-object-header.h
"
8
#include "
src/heap/cppgc/heap-page.h
"
9
#include "
src/heap/cppgc/object-view.h
"
10
11
namespace
cppgc
{
12
namespace
internal
{
13
14
// static
15
size_t
BaseObjectSizeTrait::GetObjectSizeForGarbageCollected
(
16
const
void
*
object
) {
17
return
ObjectView<AccessMode::kAtomic>
(
HeapObjectHeader::FromObject
(
object
))
18
.
Size
();
19
}
20
21
// static
22
size_t
BaseObjectSizeTrait::GetObjectSizeForGarbageCollectedMixin
(
23
const
void
* address) {
24
// `address` is guaranteed to be on a normal page because large object mixins
25
// are not supported.
26
const
auto
& header =
27
BasePage::FromPayload
(address)
28
->
ObjectHeaderFromInnerAddress
<
AccessMode::kAtomic
>(address);
29
DCHECK
(!header.IsLargeObject<
AccessMode::kAtomic
>());
30
return
header.ObjectSize<
AccessMode::kAtomic
>();
31
}
32
33
}
// namespace internal
34
}
// namespace cppgc
cppgc::internal::BasePage::ObjectHeaderFromInnerAddress
HeapObjectHeader & ObjectHeaderFromInnerAddress(void *address) const
Definition
heap-page.h:339
cppgc::internal::BasePage::FromPayload
static BasePage * FromPayload(void *)
Definition
heap-page.h:314
cppgc::internal::HeapObjectHeader::FromObject
static HeapObjectHeader & FromObject(void *address)
Definition
heap-object-header.h:174
cppgc::internal::ObjectView
Definition
object-view.h:19
cppgc::internal::ObjectView::Size
V8_INLINE size_t Size() const
Definition
object-view.h:54
heap-object-header.h
heap-page.h
cppgc::internal::AccessMode::kAtomic
@ kAtomic
cppgc
Definition
cross-heap-remembered-set.h:14
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
object-size-trait.h
object-view.h
DCHECK
#define DCHECK(condition)
Definition
logging.h:482
cppgc::internal::BaseObjectSizeTrait::GetObjectSizeForGarbageCollectedMixin
static size_t GetObjectSizeForGarbageCollectedMixin(const void *)
Definition
object-size-trait.cc:22
cppgc::internal::BaseObjectSizeTrait::GetObjectSizeForGarbageCollected
static size_t GetObjectSizeForGarbageCollected(const void *)
Definition
object-size-trait.cc:15
src
heap
cppgc
object-size-trait.cc
Generated on Sun Apr 6 2025 21:08:54 for v8 by
1.12.0