// Copyright 2021 The Chromium Authors | |
// Use of this source code is governed by a BSD-style license that can be | |
// found in the LICENSE file. | |
#include "gin/public/cppgc.h" | |
#include "base/check_op.h" | |
#include "gin/public/v8_platform.h" | |
#include "v8/include/cppgc/platform.h" | |
namespace gin { | |
namespace { | |
int g_init_count = 0; | |
} // namespace | |
void InitializeCppgcFromV8Platform() { | |
DCHECK_GE(g_init_count, 0); | |
if (g_init_count++ > 0) | |
return; | |
cppgc::InitializeProcess(gin::V8Platform::Get()->GetPageAllocator()); | |
} | |
void MaybeShutdownCppgc() { | |
DCHECK_GT(g_init_count, 0); | |
if (--g_init_count > 0) | |
return; | |
cppgc::ShutdownProcess(); | |
} | |
} // namespace gin |