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#ifndef V8_OBJECTS_VISITORS_INL_H_
6#define V8_OBJECTS_VISITORS_INL_H_
7
8#include "src/common/globals.h"
9#include "src/execution/isolate.h"
10#include "src/objects/visitors.h"
11
12namespace v8 {
13namespace internal {
14
15ObjectVisitorWithCageBases::ObjectVisitorWithCageBases(
16    PtrComprCageBase cage_base, PtrComprCageBase code_cage_base)
17#if V8_COMPRESS_POINTERS
18    : cage_base_(cage_base)
19#ifdef V8_EXTERNAL_CODE_SPACE
20      ,
21      code_cage_base_(code_cage_base)
22#endif  // V8_EXTERNAL_CODE_SPACE
23#endif  // V8_COMPRESS_POINTERS
24{
25}
26
27ObjectVisitorWithCageBases::ObjectVisitorWithCageBases(Isolate* isolate)
28#if V8_COMPRESS_POINTERS
29    : ObjectVisitorWithCageBases(PtrComprCageBase(isolate->cage_base()),
30                                 PtrComprCageBase(isolate->code_cage_base()))
31#else
32    : ObjectVisitorWithCageBases(PtrComprCageBase(), PtrComprCageBase())
33#endif  // V8_COMPRESS_POINTERS
34{
35}
36
37ObjectVisitorWithCageBases::ObjectVisitorWithCageBases(Heap* heap)
38    : ObjectVisitorWithCageBases(Isolate::FromHeap(heap)) {}
39
40}  // namespace internal
41}  // namespace v8
42
43#endif  // V8_OBJECTS_VISITORS_INL_H_
44