summaryrefslogtreecommitdiff
path: root/xfa/fxjse/include/fxjse.h
diff options
context:
space:
mode:
authortsepez <tsepez@chromium.org>2016-05-31 14:22:09 -0700
committerCommit bot <commit-bot@chromium.org>2016-05-31 14:22:09 -0700
commit29adee77d4a7566bc6832cc825198c0571426163 (patch)
treee8fd009fe853b4d8aad499d6e92cfff8f7dd6efa /xfa/fxjse/include/fxjse.h
parentfb96900eeea15b252245b0caf4330a5ade369172 (diff)
downloadpdfium-29adee77d4a7566bc6832cc825198c0571426163.tar.xz
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
Diffstat (limited to 'xfa/fxjse/include/fxjse.h')
-rw-r--r--xfa/fxjse/include/fxjse.h9
1 files changed, 6 insertions, 3 deletions
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,