| // Copyright 2020 The PDFium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "testing/fuzzers/xfa_process_state.h" |
| |
| #include "fxjs/gc/heap.h" |
| #include "v8/include/libplatform/libplatform.h" |
| |
| XFAProcessState::XFAProcessState(v8::Platform* platform, v8::Isolate* isolate) |
| : platform_(platform), isolate_(isolate), heap_(FXGC_CreateHeap()) {} |
| |
| XFAProcessState::~XFAProcessState() { |
| FXGC_ForceGarbageCollection(heap_.get()); |
| } |
| |
| cppgc::Heap* XFAProcessState::GetHeap() const { |
| return heap_.get(); |
| } |
| |
| void XFAProcessState::ForceGCAndPump() { |
| FXGC_ForceGarbageCollection(heap_.get()); |
| while (v8::platform::PumpMessageLoop(platform_, isolate_)) |
| continue; |
| } |