| // 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 |