From 29adee77d4a7566bc6832cc825198c0571426163 Mon Sep 17 00:00:00 2001 From: tsepez Date: Tue, 31 May 2016 14:22:09 -0700 Subject: Replace void* with CFXJSE_HostObect and make wrapped objects inherit from it This will avoid a re-occurrence of BUG 613607 should someone again optimize away CXFA_Object's virtual dtor. Review-Url: https://codereview.chromium.org/2019333006 --- xfa/fxjse/include/fxjse.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'xfa/fxjse/include/fxjse.h') diff --git a/xfa/fxjse/include/fxjse.h b/xfa/fxjse/include/fxjse.h index e432858603..4a85251c03 100644 --- a/xfa/fxjse/include/fxjse.h +++ b/xfa/fxjse/include/fxjse.h @@ -16,6 +16,8 @@ class CFXJSE_Class; class CFXJSE_Context; class CFXJSE_Value; +class CFXJSE_HostObject {}; // C++ object which can be wrapped by CFXJSE_value. + typedef void (*FXJSE_FuncCallback)(CFXJSE_Value* pThis, const CFX_ByteStringC& szFuncName, CFXJSE_Arguments& args); @@ -73,7 +75,7 @@ void FXJSE_Runtime_Release(v8::Isolate* pIsolate, bool bOwnedRuntime); CFXJSE_Context* FXJSE_Context_Create( v8::Isolate* pIsolate, const FXJSE_CLASS_DESCRIPTOR* lpGlobalClass, - void* lpGlobalObject); + CFXJSE_HostObject* lpGlobalObject); void FXJSE_Context_Release(CFXJSE_Context* pContext); CFXJSE_Value* FXJSE_Context_GetGlobalObject(CFXJSE_Context* pContext); @@ -98,7 +100,8 @@ double FXJSE_Value_ToDouble(CFXJSE_Value* pValue); int32_t FXJSE_Value_ToInteger(CFXJSE_Value* pValue); void FXJSE_Value_ToUTF8String(CFXJSE_Value* pValue, CFX_ByteString& szStrOutput); -void* FXJSE_Value_ToObject(CFXJSE_Value* pValue, CFXJSE_Class* pClass); +CFXJSE_HostObject* FXJSE_Value_ToObject(CFXJSE_Value* pValue, + CFXJSE_Class* pClass); void FXJSE_Value_SetUndefined(CFXJSE_Value* pValue); void FXJSE_Value_SetNull(CFXJSE_Value* pValue); @@ -109,7 +112,7 @@ void FXJSE_Value_SetInteger(CFXJSE_Value* pValue, int32_t nInteger); void FXJSE_Value_SetFloat(CFXJSE_Value* pValue, FX_FLOAT fFloat); void FXJSE_Value_SetDouble(CFXJSE_Value* pValue, double dDouble); void FXJSE_Value_SetObject(CFXJSE_Value* pValue, - void* lpObject, + CFXJSE_HostObject* lpObject, CFXJSE_Class* pClass); void FXJSE_Value_SetArray(CFXJSE_Value* pValue, uint32_t uValueCount, -- cgit v1.2.3