#include "libcef_dll/ctocpp/v8stack_trace_ctocpp.h"
#include "libcef_dll/ctocpp/v8stack_frame_ctocpp.h"
#include "libcef_dll/shutdown_checker.h"
NO_SANITIZE("cfi-icall")
CefRefPtr<CefV8StackTrace> CefV8StackTrace::GetCurrent(int frame_limit) {
shutdown_checker::AssertNotShutdown();
cef_v8stack_trace_t* _retval = cef_v8stack_trace_get_current(frame_limit);
return CefV8StackTraceCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall") bool CefV8StackTraceCToCpp::IsValid() {
shutdown_checker::AssertNotShutdown();
cef_v8stack_trace_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, is_valid))
return false;
int _retval = _struct->is_valid(_struct);
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall") int CefV8StackTraceCToCpp::GetFrameCount() {
shutdown_checker::AssertNotShutdown();
cef_v8stack_trace_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_frame_count))
return 0;
int _retval = _struct->get_frame_count(_struct);
return _retval;
}
NO_SANITIZE("cfi-icall")
CefRefPtr<CefV8StackFrame> CefV8StackTraceCToCpp::GetFrame(int index) {
shutdown_checker::AssertNotShutdown();
cef_v8stack_trace_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_frame))
return nullptr;
cef_v8stack_frame_t* _retval = _struct->get_frame(_struct, index);
return CefV8StackFrameCToCpp::Wrap(_retval);
}
CefV8StackTraceCToCpp::CefV8StackTraceCToCpp() {}
CefV8StackTraceCToCpp::~CefV8StackTraceCToCpp() {
shutdown_checker::AssertNotShutdown();
}
template <>
cef_v8stack_trace_t*
CefCToCppRefCounted<CefV8StackTraceCToCpp,
CefV8StackTrace,
cef_v8stack_trace_t>::UnwrapDerived(CefWrapperType type,
CefV8StackTrace* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefV8StackTraceCToCpp,
CefV8StackTrace,
cef_v8stack_trace_t>::kWrapperType =
WT_V8STACK_TRACE;