#include "libcef_dll/ctocpp/v8interceptor_ctocpp.h"
#include "libcef_dll/cpptoc/v8value_cpptoc.h"
NO_SANITIZE("cfi-icall")
bool CefV8InterceptorCToCpp::Get(const CefString& name,
const CefRefPtr<CefV8Value> object,
CefRefPtr<CefV8Value>& retval,
CefString& exception) {
cef_v8interceptor_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_byname))
return false;
DCHECK(!name.empty());
if (name.empty())
return false;
DCHECK(object.get());
if (!object.get())
return false;
cef_v8value_t* retvalStruct = NULL;
if (retval.get())
retvalStruct = CefV8ValueCppToC::Wrap(retval);
cef_v8value_t* retvalOrig = retvalStruct;
int _retval = _struct->get_byname(
_struct, name.GetStruct(), CefV8ValueCppToC::Wrap(object), &retvalStruct,
exception.GetWritableStruct());
if (retvalStruct) {
if (retvalStruct != retvalOrig) {
retval = CefV8ValueCppToC::Unwrap(retvalStruct);
}
} else {
retval = nullptr;
}
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
bool CefV8InterceptorCToCpp::Get(int index,
const CefRefPtr<CefV8Value> object,
CefRefPtr<CefV8Value>& retval,
CefString& exception) {
cef_v8interceptor_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_byindex))
return false;
DCHECK_GE(index, 0);
if (index < 0)
return false;
DCHECK(object.get());
if (!object.get())
return false;
cef_v8value_t* retvalStruct = NULL;
if (retval.get())
retvalStruct = CefV8ValueCppToC::Wrap(retval);
cef_v8value_t* retvalOrig = retvalStruct;
int _retval =
_struct->get_byindex(_struct, index, CefV8ValueCppToC::Wrap(object),
&retvalStruct, exception.GetWritableStruct());
if (retvalStruct) {
if (retvalStruct != retvalOrig) {
retval = CefV8ValueCppToC::Unwrap(retvalStruct);
}
} else {
retval = nullptr;
}
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
bool CefV8InterceptorCToCpp::Set(const CefString& name,
const CefRefPtr<CefV8Value> object,
const CefRefPtr<CefV8Value> value,
CefString& exception) {
cef_v8interceptor_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, set_byname))
return false;
DCHECK(!name.empty());
if (name.empty())
return false;
DCHECK(object.get());
if (!object.get())
return false;
DCHECK(value.get());
if (!value.get())
return false;
int _retval = _struct->set_byname(
_struct, name.GetStruct(), CefV8ValueCppToC::Wrap(object),
CefV8ValueCppToC::Wrap(value), exception.GetWritableStruct());
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
bool CefV8InterceptorCToCpp::Set(int index,
const CefRefPtr<CefV8Value> object,
const CefRefPtr<CefV8Value> value,
CefString& exception) {
cef_v8interceptor_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, set_byindex))
return false;
DCHECK_GE(index, 0);
if (index < 0)
return false;
DCHECK(object.get());
if (!object.get())
return false;
DCHECK(value.get());
if (!value.get())
return false;
int _retval = _struct->set_byindex(
_struct, index, CefV8ValueCppToC::Wrap(object),
CefV8ValueCppToC::Wrap(value), exception.GetWritableStruct());
return _retval ? true : false;
}
CefV8InterceptorCToCpp::CefV8InterceptorCToCpp() {}
CefV8InterceptorCToCpp::~CefV8InterceptorCToCpp() {}
template <>
cef_v8interceptor_t*
CefCToCppRefCounted<CefV8InterceptorCToCpp,
CefV8Interceptor,
cef_v8interceptor_t>::UnwrapDerived(CefWrapperType type,
CefV8Interceptor* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefV8InterceptorCToCpp,
CefV8Interceptor,
cef_v8interceptor_t>::kWrapperType =
WT_V8INTERCEPTOR;