diff options
Diffstat (limited to 'xfa/fxjse')
-rw-r--r-- | xfa/fxjse/cfxjse_arguments.h | 6 | ||||
-rw-r--r-- | xfa/fxjse/class.cpp | 22 | ||||
-rw-r--r-- | xfa/fxjse/context.cpp | 12 | ||||
-rw-r--r-- | xfa/fxjse/dynprop.cpp | 55 | ||||
-rw-r--r-- | xfa/fxjse/include/fxjse.h | 108 | ||||
-rw-r--r-- | xfa/fxjse/value.cpp | 207 | ||||
-rw-r--r-- | xfa/fxjse/value.h | 2 |
7 files changed, 182 insertions, 230 deletions
diff --git a/xfa/fxjse/cfxjse_arguments.h b/xfa/fxjse/cfxjse_arguments.h index d86ec0f1f8..9a20c7c4a3 100644 --- a/xfa/fxjse/cfxjse_arguments.h +++ b/xfa/fxjse/cfxjse_arguments.h @@ -13,13 +13,13 @@ class CFXJSE_Arguments { public: v8::Isolate* GetRuntime() const; int32_t GetLength() const; - FXJSE_HVALUE GetValue(int32_t index) const; + CFXJSE_Value* GetValue(int32_t index) const; FX_BOOL GetBoolean(int32_t index) const; int32_t GetInt32(int32_t index) const; FX_FLOAT GetFloat(int32_t index) const; CFX_ByteString GetUTF8String(int32_t index) const; - void* GetObject(int32_t index, CFXJSE_Class* hClass = nullptr) const; - FXJSE_HVALUE GetReturnValue(); + void* GetObject(int32_t index, CFXJSE_Class* pClass = nullptr) const; + CFXJSE_Value* GetReturnValue(); }; #endif // XFA_FXJSE_CFXJSE_ARGUMENTS_H_ diff --git a/xfa/fxjse/class.cpp b/xfa/fxjse/class.cpp index 6d0a719821..a2f4146208 100644 --- a/xfa/fxjse/class.cpp +++ b/xfa/fxjse/class.cpp @@ -42,8 +42,7 @@ static void FXJSE_V8FunctionCallback_Wrapper( lpThisValue->ForceSetValue(info.This()); CFXJSE_Value* lpRetValue = CFXJSE_Value::Create(info.GetIsolate()); CFXJSE_ArgumentsImpl impl = {&info, lpRetValue}; - lpFunctionInfo->callbackProc(reinterpret_cast<FXJSE_HOBJECT>(lpThisValue), - szFunctionName, + lpFunctionInfo->callbackProc(lpThisValue, szFunctionName, reinterpret_cast<CFXJSE_Arguments&>(impl)); if (!lpRetValue->DirectGetValue().IsEmpty()) { info.GetReturnValue().Set(lpRetValue->DirectGetValue()); @@ -66,8 +65,7 @@ static void FXJSE_V8ClassGlobalConstructorCallback_Wrapper( lpThisValue->ForceSetValue(info.This()); CFXJSE_Value* lpRetValue = CFXJSE_Value::Create(info.GetIsolate()); CFXJSE_ArgumentsImpl impl = {&info, lpRetValue}; - lpClassDefinition->constructor(reinterpret_cast<FXJSE_HOBJECT>(lpThisValue), - szFunctionName, + lpClassDefinition->constructor(lpThisValue, szFunctionName, reinterpret_cast<CFXJSE_Arguments&>(impl)); if (!lpRetValue->DirectGetValue().IsEmpty()) { info.GetReturnValue().Set(lpRetValue->DirectGetValue()); @@ -90,9 +88,7 @@ static void FXJSE_V8GetterCallback_Wrapper( CFXJSE_Value* lpThisValue = CFXJSE_Value::Create(info.GetIsolate()); CFXJSE_Value* lpPropValue = CFXJSE_Value::Create(info.GetIsolate()); lpThisValue->ForceSetValue(info.This()); - lpPropertyInfo->getProc(reinterpret_cast<FXJSE_HOBJECT>(lpThisValue), - szPropertyName, - reinterpret_cast<FXJSE_HVALUE>(lpPropValue)); + lpPropertyInfo->getProc(lpThisValue, szPropertyName, lpPropValue); info.GetReturnValue().Set(lpPropValue->DirectGetValue()); delete lpThisValue; lpThisValue = NULL; @@ -114,9 +110,7 @@ static void FXJSE_V8SetterCallback_Wrapper( CFXJSE_Value* lpPropValue = CFXJSE_Value::Create(info.GetIsolate()); lpThisValue->ForceSetValue(info.This()); lpPropValue->ForceSetValue(value); - lpPropertyInfo->setProc(reinterpret_cast<FXJSE_HOBJECT>(lpThisValue), - szPropertyName, - reinterpret_cast<FXJSE_HVALUE>(lpPropValue)); + lpPropertyInfo->setProc(lpThisValue, szPropertyName, lpPropValue); delete lpThisValue; lpThisValue = NULL; delete lpPropValue; @@ -146,13 +140,13 @@ int32_t CFXJSE_Arguments::GetLength() const { return lpArguments->m_pInfo->Length(); } -FXJSE_HVALUE CFXJSE_Arguments::GetValue(int32_t index) const { +CFXJSE_Value* CFXJSE_Arguments::GetValue(int32_t index) const { const CFXJSE_ArgumentsImpl* lpArguments = reinterpret_cast<const CFXJSE_ArgumentsImpl* const>(this); CFXJSE_Value* lpArgValue = CFXJSE_Value::Create(v8::Isolate::GetCurrent()); ASSERT(lpArgValue); lpArgValue->ForceSetValue((*lpArguments->m_pInfo)[index]); - return reinterpret_cast<FXJSE_HVALUE>(lpArgValue); + return lpArgValue; } FX_BOOL CFXJSE_Arguments::GetBoolean(int32_t index) const { @@ -192,10 +186,10 @@ void* CFXJSE_Arguments::GetObject(int32_t index, CFXJSE_Class* pClass) const { return FXJSE_RetrieveObjectBinding(hValue.As<v8::Object>(), pClass); } -FXJSE_HVALUE CFXJSE_Arguments::GetReturnValue() { +CFXJSE_Value* CFXJSE_Arguments::GetReturnValue() { const CFXJSE_ArgumentsImpl* lpArguments = reinterpret_cast<const CFXJSE_ArgumentsImpl* const>(this); - return reinterpret_cast<FXJSE_HVALUE>(lpArguments->m_pRetValue); + return lpArguments->m_pRetValue; } static void FXJSE_Context_GlobalObjToString( const v8::FunctionCallbackInfo<v8::Value>& info) { diff --git a/xfa/fxjse/context.cpp b/xfa/fxjse/context.cpp index 76df5616e5..bdc31e4594 100644 --- a/xfa/fxjse/context.cpp +++ b/xfa/fxjse/context.cpp @@ -21,14 +21,14 @@ void FXJSE_Context_Release(CFXJSE_Context* pContext) { delete pContext; } -FXJSE_HVALUE FXJSE_Context_GetGlobalObject(CFXJSE_Context* pContext) { +CFXJSE_Value* FXJSE_Context_GetGlobalObject(CFXJSE_Context* pContext) { if (!pContext) return nullptr; CFXJSE_Value* lpValue = CFXJSE_Value::Create(pContext->GetRuntime()); ASSERT(lpValue); pContext->GetGlobalObject(lpValue); - return reinterpret_cast<FXJSE_HVALUE>(lpValue); + return lpValue; } static const FX_CHAR* szCompatibleModeScripts[] = { @@ -68,11 +68,9 @@ void FXJSE_Context_EnableCompatibleMode(CFXJSE_Context* pContext, FX_BOOL FXJSE_ExecuteScript(CFXJSE_Context* pContext, const FX_CHAR* szScript, - FXJSE_HVALUE hRetValue, - FXJSE_HVALUE hNewThisObject) { - return pContext->ExecuteScript( - szScript, reinterpret_cast<CFXJSE_Value*>(hRetValue), - reinterpret_cast<CFXJSE_Value*>(hNewThisObject)); + CFXJSE_Value* pRetValue, + CFXJSE_Value* pNewThisObject) { + return pContext->ExecuteScript(szScript, pRetValue, pNewThisObject); } v8::Local<v8::Object> FXJSE_CreateReturnValue(v8::Isolate* pIsolate, diff --git a/xfa/fxjse/dynprop.cpp b/xfa/fxjse/dynprop.cpp index 498c6608cf..514f1b3a9d 100644 --- a/xfa/fxjse/dynprop.cpp +++ b/xfa/fxjse/dynprop.cpp @@ -22,8 +22,7 @@ static void FXJSE_DynPropGetterAdapter_MethodCallback( lpThisValue->ForceSetValue(info.This()); CFXJSE_Value* lpRetValue = CFXJSE_Value::Create(info.GetIsolate()); CFXJSE_ArgumentsImpl impl = {&info, lpRetValue}; - lpClass->dynMethodCall(reinterpret_cast<FXJSE_HOBJECT>(lpThisValue), - szFxPropName, + lpClass->dynMethodCall(lpThisValue, szFxPropName, reinterpret_cast<CFXJSE_Arguments&>(impl)); if (!lpRetValue->DirectGetValue().IsEmpty()) { info.GetReturnValue().Set(lpRetValue->DirectGetValue()); @@ -35,22 +34,21 @@ static void FXJSE_DynPropGetterAdapter_MethodCallback( } static void FXJSE_DynPropGetterAdapter(const FXJSE_CLASS* lpClass, - FXJSE_HOBJECT hObject, + CFXJSE_Value* pObject, const CFX_ByteStringC& szPropName, - FXJSE_HVALUE hValue) { + CFXJSE_Value* pValue) { ASSERT(lpClass); int32_t nPropType = lpClass->dynPropTypeGetter == nullptr ? FXJSE_ClassPropType_Property - : lpClass->dynPropTypeGetter(hObject, szPropName, FALSE); + : lpClass->dynPropTypeGetter(pObject, szPropName, FALSE); if (nPropType == FXJSE_ClassPropType_Property) { if (lpClass->dynPropGetter) { - lpClass->dynPropGetter(hObject, szPropName, hValue); + lpClass->dynPropGetter(pObject, szPropName, pValue); } } else if (nPropType == FXJSE_ClassPropType_Method) { - if (lpClass->dynMethodCall && hValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - v8::Isolate* pIsolate = lpValue->GetIsolate(); + if (lpClass->dynMethodCall && pValue) { + v8::Isolate* pIsolate = pValue->GetIsolate(); v8::HandleScope hscope(pIsolate); v8::Local<v8::ObjectTemplate> hCallBackInfoTemplate = v8::ObjectTemplate::New(pIsolate); @@ -63,51 +61,51 @@ static void FXJSE_DynPropGetterAdapter(const FXJSE_CLASS* lpClass, 1, v8::String::NewFromUtf8( pIsolate, reinterpret_cast<const char*>(szPropName.raw_str()), v8::String::kNormalString, szPropName.GetLength())); - lpValue->ForceSetValue(v8::Function::New( - lpValue->GetIsolate(), FXJSE_DynPropGetterAdapter_MethodCallback, + pValue->ForceSetValue(v8::Function::New( + pValue->GetIsolate(), FXJSE_DynPropGetterAdapter_MethodCallback, hCallBackInfo)); } } } static void FXJSE_DynPropSetterAdapter(const FXJSE_CLASS* lpClass, - FXJSE_HOBJECT hObject, + CFXJSE_Value* pObject, const CFX_ByteStringC& szPropName, - FXJSE_HVALUE hValue) { + CFXJSE_Value* pValue) { ASSERT(lpClass); int32_t nPropType = lpClass->dynPropTypeGetter == nullptr ? FXJSE_ClassPropType_Property - : lpClass->dynPropTypeGetter(hObject, szPropName, FALSE); + : lpClass->dynPropTypeGetter(pObject, szPropName, FALSE); if (nPropType != FXJSE_ClassPropType_Method) { if (lpClass->dynPropSetter) { - lpClass->dynPropSetter(hObject, szPropName, hValue); + lpClass->dynPropSetter(pObject, szPropName, pValue); } } } static FX_BOOL FXJSE_DynPropQueryAdapter(const FXJSE_CLASS* lpClass, - FXJSE_HOBJECT hObject, + CFXJSE_Value* pObject, const CFX_ByteStringC& szPropName) { ASSERT(lpClass); int32_t nPropType = lpClass->dynPropTypeGetter == nullptr ? FXJSE_ClassPropType_Property - : lpClass->dynPropTypeGetter(hObject, szPropName, TRUE); + : lpClass->dynPropTypeGetter(pObject, szPropName, TRUE); return nPropType != FXJSE_ClassPropType_None; } static FX_BOOL FXJSE_DynPropDeleterAdapter(const FXJSE_CLASS* lpClass, - FXJSE_HOBJECT hObject, + CFXJSE_Value* pObject, const CFX_ByteStringC& szPropName) { ASSERT(lpClass); int32_t nPropType = lpClass->dynPropTypeGetter == nullptr ? FXJSE_ClassPropType_Property - : lpClass->dynPropTypeGetter(hObject, szPropName, FALSE); + : lpClass->dynPropTypeGetter(pObject, szPropName, FALSE); if (nPropType != FXJSE_ClassPropType_Method) { if (lpClass->dynPropDeleter) { - return lpClass->dynPropDeleter(hObject, szPropName); + return lpClass->dynPropDeleter(pObject, szPropName); } else { return nPropType == FXJSE_ClassPropType_Property ? FALSE : TRUE; } @@ -127,9 +125,7 @@ static void FXJSE_V8_GenericNamedPropertyQueryCallback( CFX_ByteStringC szFxPropName(*szPropName, szPropName.length()); CFXJSE_Value* lpThisValue = CFXJSE_Value::Create(info.GetIsolate()); lpThisValue->ForceSetValue(thisObject); - if (FXJSE_DynPropQueryAdapter(lpClass, - reinterpret_cast<FXJSE_HOBJECT>(lpThisValue), - szFxPropName)) { + if (FXJSE_DynPropQueryAdapter(lpClass, lpThisValue, szFxPropName)) { info.GetReturnValue().Set(v8::DontDelete); } else { const int32_t iV8Absent = 64; @@ -152,10 +148,7 @@ static void FXJSE_V8_GenericNamedPropertyDeleterCallback( CFXJSE_Value* lpThisValue = CFXJSE_Value::Create(info.GetIsolate()); lpThisValue->ForceSetValue(thisObject); info.GetReturnValue().Set( - FXJSE_DynPropDeleterAdapter( - lpClass, reinterpret_cast<FXJSE_HOBJECT>(lpThisValue), szFxPropName) - ? true - : false); + !!FXJSE_DynPropDeleterAdapter(lpClass, lpThisValue, szFxPropName)); delete lpThisValue; lpThisValue = nullptr; } @@ -171,9 +164,7 @@ static void FXJSE_V8_GenericNamedPropertyGetterCallback( CFXJSE_Value* lpThisValue = CFXJSE_Value::Create(info.GetIsolate()); lpThisValue->ForceSetValue(thisObject); CFXJSE_Value* lpNewValue = CFXJSE_Value::Create(info.GetIsolate()); - FXJSE_DynPropGetterAdapter( - lpClass, reinterpret_cast<FXJSE_HOBJECT>(lpThisValue), szFxPropName, - reinterpret_cast<FXJSE_HVALUE>(lpNewValue)); + FXJSE_DynPropGetterAdapter(lpClass, lpThisValue, szFxPropName, lpNewValue); info.GetReturnValue().Set(lpNewValue->DirectGetValue()); delete lpThisValue; lpThisValue = nullptr; @@ -192,9 +183,7 @@ static void FXJSE_V8_GenericNamedPropertySetterCallback( lpThisValue->ForceSetValue(thisObject); CFXJSE_Value* lpNewValue = CFXJSE_Value::Create(info.GetIsolate()); lpNewValue->ForceSetValue(value); - FXJSE_DynPropSetterAdapter( - lpClass, reinterpret_cast<FXJSE_HOBJECT>(lpThisValue), szFxPropName, - reinterpret_cast<FXJSE_HVALUE>(lpNewValue)); + FXJSE_DynPropSetterAdapter(lpClass, lpThisValue, szFxPropName, lpNewValue); info.GetReturnValue().Set(value); delete lpThisValue; lpThisValue = nullptr; diff --git a/xfa/fxjse/include/fxjse.h b/xfa/fxjse/include/fxjse.h index 5cf2d2abb7..4484303046 100644 --- a/xfa/fxjse/include/fxjse.h +++ b/xfa/fxjse/include/fxjse.h @@ -14,21 +14,18 @@ class CFXJSE_Arguments; class CFXJSE_Class; class CFXJSE_Context; +class CFXJSE_Value; -typedef struct FXJSE_HVALUE_ { void* pData; } * FXJSE_HVALUE; -// NOLINTNEXTLINE -typedef struct FXJSE_HOBJECT_ : public FXJSE_HVALUE_{} * FXJSE_HOBJECT; - -typedef void (*FXJSE_FuncCallback)(FXJSE_HOBJECT hThis, +typedef void (*FXJSE_FuncCallback)(CFXJSE_Value* pThis, const CFX_ByteStringC& szFuncName, CFXJSE_Arguments& args); -typedef void (*FXJSE_PropAccessor)(FXJSE_HOBJECT hObject, +typedef void (*FXJSE_PropAccessor)(CFXJSE_Value* pObject, const CFX_ByteStringC& szPropName, - FXJSE_HVALUE hValue); -typedef int32_t (*FXJSE_PropTypeGetter)(FXJSE_HOBJECT hObject, + CFXJSE_Value* pValue); +typedef int32_t (*FXJSE_PropTypeGetter)(CFXJSE_Value* pObject, const CFX_ByteStringC& szPropName, FX_BOOL bQueryIn); -typedef FX_BOOL (*FXJSE_PropDeleter)(FXJSE_HOBJECT hObject, +typedef FX_BOOL (*FXJSE_PropDeleter)(CFXJSE_Value* pObject, const CFX_ByteStringC& szPropName); enum FXJSE_ClassPropTypes { @@ -77,7 +74,7 @@ CFXJSE_Context* FXJSE_Context_Create(v8::Isolate* pIsolate, const FXJSE_CLASS* lpGlobalClass = nullptr, void* lpGlobalObject = nullptr); void FXJSE_Context_Release(CFXJSE_Context* pContext); -FXJSE_HVALUE FXJSE_Context_GetGlobalObject(CFXJSE_Context* pContext); +CFXJSE_Value* FXJSE_Context_GetGlobalObject(CFXJSE_Context* pContext); void FXJSE_Context_EnableCompatibleMode(CFXJSE_Context* pContext, uint32_t dwCompatibleFlags); @@ -85,67 +82,68 @@ void FXJSE_Context_EnableCompatibleMode(CFXJSE_Context* pContext, CFXJSE_Class* FXJSE_DefineClass(CFXJSE_Context* pContext, const FXJSE_CLASS* lpClass); -FXJSE_HVALUE FXJSE_Value_Create(v8::Isolate* pIsolate); -void FXJSE_Value_Release(FXJSE_HVALUE hValue); - -FX_BOOL FXJSE_Value_IsUndefined(FXJSE_HVALUE hValue); -FX_BOOL FXJSE_Value_IsNull(FXJSE_HVALUE hValue); -FX_BOOL FXJSE_Value_IsBoolean(FXJSE_HVALUE hValue); -FX_BOOL FXJSE_Value_IsUTF8String(FXJSE_HVALUE hValue); -FX_BOOL FXJSE_Value_IsNumber(FXJSE_HVALUE hValue); -FX_BOOL FXJSE_Value_IsObject(FXJSE_HVALUE hValue); -FX_BOOL FXJSE_Value_IsArray(FXJSE_HVALUE hValue); -FX_BOOL FXJSE_Value_IsFunction(FXJSE_HVALUE hValue); - -FX_BOOL FXJSE_Value_ToBoolean(FXJSE_HVALUE hValue); -FX_FLOAT FXJSE_Value_ToFloat(FXJSE_HVALUE hValue); -double FXJSE_Value_ToDouble(FXJSE_HVALUE hValue); -int32_t FXJSE_Value_ToInteger(FXJSE_HVALUE hValue); -void FXJSE_Value_ToUTF8String(FXJSE_HVALUE hValue, CFX_ByteString& szStrOutput); -void* FXJSE_Value_ToObject(FXJSE_HVALUE hValue, CFXJSE_Class* hClass); - -void FXJSE_Value_SetUndefined(FXJSE_HVALUE hValue); -void FXJSE_Value_SetNull(FXJSE_HVALUE hValue); -void FXJSE_Value_SetBoolean(FXJSE_HVALUE hValue, FX_BOOL bBoolean); -void FXJSE_Value_SetUTF8String(FXJSE_HVALUE hValue, +CFXJSE_Value* FXJSE_Value_Create(v8::Isolate* pIsolate); +void FXJSE_Value_Release(CFXJSE_Value* pValue); + +FX_BOOL FXJSE_Value_IsUndefined(CFXJSE_Value* pValue); +FX_BOOL FXJSE_Value_IsNull(CFXJSE_Value* pValue); +FX_BOOL FXJSE_Value_IsBoolean(CFXJSE_Value* pValue); +FX_BOOL FXJSE_Value_IsUTF8String(CFXJSE_Value* pValue); +FX_BOOL FXJSE_Value_IsNumber(CFXJSE_Value* pValue); +FX_BOOL FXJSE_Value_IsObject(CFXJSE_Value* pValue); +FX_BOOL FXJSE_Value_IsArray(CFXJSE_Value* pValue); +FX_BOOL FXJSE_Value_IsFunction(CFXJSE_Value* pValue); + +FX_BOOL FXJSE_Value_ToBoolean(CFXJSE_Value* pValue); +FX_FLOAT FXJSE_Value_ToFloat(CFXJSE_Value* pValue); +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); + +void FXJSE_Value_SetUndefined(CFXJSE_Value* pValue); +void FXJSE_Value_SetNull(CFXJSE_Value* pValue); +void FXJSE_Value_SetBoolean(CFXJSE_Value* pValue, FX_BOOL bBoolean); +void FXJSE_Value_SetUTF8String(CFXJSE_Value* pValue, const CFX_ByteStringC& szString); -void FXJSE_Value_SetInteger(FXJSE_HVALUE hValue, int32_t nInteger); -void FXJSE_Value_SetFloat(FXJSE_HVALUE hValue, FX_FLOAT fFloat); -void FXJSE_Value_SetDouble(FXJSE_HVALUE hValue, double dDouble); -void FXJSE_Value_SetObject(FXJSE_HVALUE hValue, +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_Class* pClass); -void FXJSE_Value_SetArray(FXJSE_HVALUE hValue, +void FXJSE_Value_SetArray(CFXJSE_Value* pValue, uint32_t uValueCount, - FXJSE_HVALUE* rgValues); -void FXJSE_Value_Set(FXJSE_HVALUE hValue, FXJSE_HVALUE hOriginalValue); + CFXJSE_Value** rgValues); +void FXJSE_Value_Set(CFXJSE_Value* pValue, CFXJSE_Value* pOriginalValue); -FX_BOOL FXJSE_Value_GetObjectProp(FXJSE_HVALUE hValue, +FX_BOOL FXJSE_Value_GetObjectProp(CFXJSE_Value* pValue, const CFX_ByteStringC& szPropName, - FXJSE_HVALUE hPropValue); -FX_BOOL FXJSE_Value_SetObjectProp(FXJSE_HVALUE hValue, + CFXJSE_Value* pPropValue); +FX_BOOL FXJSE_Value_SetObjectProp(CFXJSE_Value* pValue, const CFX_ByteStringC& szPropName, - FXJSE_HVALUE hPropValue); -FX_BOOL FXJSE_Value_GetObjectPropByIdx(FXJSE_HVALUE hValue, + CFXJSE_Value* pPropValue); +FX_BOOL FXJSE_Value_GetObjectPropByIdx(CFXJSE_Value* pValue, uint32_t uPropIdx, - FXJSE_HVALUE hPropValue); -FX_BOOL FXJSE_Value_DeleteObjectProp(FXJSE_HVALUE hValue, + CFXJSE_Value* pPropValue); +FX_BOOL FXJSE_Value_DeleteObjectProp(CFXJSE_Value* pValue, const CFX_ByteStringC& szPropName); -FX_BOOL FXJSE_Value_ObjectHasOwnProp(FXJSE_HVALUE hValue, +FX_BOOL FXJSE_Value_ObjectHasOwnProp(CFXJSE_Value* pValue, const CFX_ByteStringC& szPropName, FX_BOOL bUseTypeGetter); -FX_BOOL FXJSE_Value_SetObjectOwnProp(FXJSE_HVALUE hValue, +FX_BOOL FXJSE_Value_SetObjectOwnProp(CFXJSE_Value* pValue, const CFX_ByteStringC& szPropName, - FXJSE_HVALUE hPropValue); + CFXJSE_Value* pPropValue); -FX_BOOL FXJSE_Value_SetFunctionBind(FXJSE_HVALUE hValue, - FXJSE_HVALUE hOldFunction, - FXJSE_HVALUE hNewThis); +FX_BOOL FXJSE_Value_SetFunctionBind(CFXJSE_Value* pValue, + CFXJSE_Value* pOldFunction, + CFXJSE_Value* pNewThis); FX_BOOL FXJSE_ExecuteScript(CFXJSE_Context* pContext, const FX_CHAR* szScript, - FXJSE_HVALUE hRetValue, - FXJSE_HVALUE hNewThisObject = nullptr); + CFXJSE_Value* pRetValue, + CFXJSE_Value* pNewThisObject = nullptr); void FXJSE_ThrowMessage(const CFX_ByteStringC& utf8Name, const CFX_ByteStringC& utf8Message); diff --git a/xfa/fxjse/value.cpp b/xfa/fxjse/value.cpp index a9f73b2755..e7a3463f28 100644 --- a/xfa/fxjse/value.cpp +++ b/xfa/fxjse/value.cpp @@ -11,193 +11,166 @@ #include "xfa/fxjse/class.h" #include "xfa/fxjse/util_inline.h" -FX_BOOL FXJSE_Value_IsUndefined(FXJSE_HVALUE hValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - return lpValue && lpValue->IsUndefined(); +FX_BOOL FXJSE_Value_IsUndefined(CFXJSE_Value* pValue) { + return pValue && pValue->IsUndefined(); } -FX_BOOL FXJSE_Value_IsNull(FXJSE_HVALUE hValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - return lpValue && lpValue->IsNull(); +FX_BOOL FXJSE_Value_IsNull(CFXJSE_Value* pValue) { + return pValue && pValue->IsNull(); } -FX_BOOL FXJSE_Value_IsBoolean(FXJSE_HVALUE hValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - return lpValue && lpValue->IsBoolean(); +FX_BOOL FXJSE_Value_IsBoolean(CFXJSE_Value* pValue) { + return pValue && pValue->IsBoolean(); } -FX_BOOL FXJSE_Value_IsUTF8String(FXJSE_HVALUE hValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - return lpValue && lpValue->IsString(); +FX_BOOL FXJSE_Value_IsUTF8String(CFXJSE_Value* pValue) { + return pValue && pValue->IsString(); } -FX_BOOL FXJSE_Value_IsNumber(FXJSE_HVALUE hValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - return lpValue && lpValue->IsNumber(); +FX_BOOL FXJSE_Value_IsNumber(CFXJSE_Value* pValue) { + return pValue && pValue->IsNumber(); } -FX_BOOL FXJSE_Value_IsObject(FXJSE_HVALUE hValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - return lpValue && lpValue->IsObject(); +FX_BOOL FXJSE_Value_IsObject(CFXJSE_Value* pValue) { + return pValue && pValue->IsObject(); } -FX_BOOL FXJSE_Value_IsArray(FXJSE_HVALUE hValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - return lpValue && lpValue->IsArray(); +FX_BOOL FXJSE_Value_IsArray(CFXJSE_Value* pValue) { + return pValue && pValue->IsArray(); } -FX_BOOL FXJSE_Value_IsFunction(FXJSE_HVALUE hValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - return lpValue && lpValue->IsFunction(); +FX_BOOL FXJSE_Value_IsFunction(CFXJSE_Value* pValue) { + return pValue && pValue->IsFunction(); } -FX_BOOL FXJSE_Value_ToBoolean(FXJSE_HVALUE hValue) { - return reinterpret_cast<CFXJSE_Value*>(hValue)->ToBoolean(); +FX_BOOL FXJSE_Value_ToBoolean(CFXJSE_Value* pValue) { + return pValue->ToBoolean(); } -FX_FLOAT FXJSE_Value_ToFloat(FXJSE_HVALUE hValue) { - return reinterpret_cast<CFXJSE_Value*>(hValue)->ToFloat(); +FX_FLOAT FXJSE_Value_ToFloat(CFXJSE_Value* pValue) { + return pValue->ToFloat(); } -double FXJSE_Value_ToDouble(FXJSE_HVALUE hValue) { - return reinterpret_cast<CFXJSE_Value*>(hValue)->ToDouble(); +double FXJSE_Value_ToDouble(CFXJSE_Value* pValue) { + return pValue->ToDouble(); } -void FXJSE_Value_ToUTF8String(FXJSE_HVALUE hValue, +void FXJSE_Value_ToUTF8String(CFXJSE_Value* pValue, CFX_ByteString& szStrOutput) { - return reinterpret_cast<CFXJSE_Value*>(hValue)->ToString(szStrOutput); + pValue->ToString(szStrOutput); } -int32_t FXJSE_Value_ToInteger(FXJSE_HVALUE hValue) { - return reinterpret_cast<CFXJSE_Value*>(hValue)->ToInteger(); +int32_t FXJSE_Value_ToInteger(CFXJSE_Value* pValue) { + return pValue->ToInteger(); } -void* FXJSE_Value_ToObject(FXJSE_HVALUE hValue, CFXJSE_Class* pClass) { - return reinterpret_cast<CFXJSE_Value*>(hValue)->ToObject(pClass); +void* FXJSE_Value_ToObject(CFXJSE_Value* pValue, CFXJSE_Class* pClass) { + return pValue->ToObject(pClass); } -void FXJSE_Value_SetUndefined(FXJSE_HVALUE hValue) { - reinterpret_cast<CFXJSE_Value*>(hValue)->SetUndefined(); +void FXJSE_Value_SetUndefined(CFXJSE_Value* pValue) { + pValue->SetUndefined(); } -void FXJSE_Value_SetNull(FXJSE_HVALUE hValue) { - reinterpret_cast<CFXJSE_Value*>(hValue)->SetNull(); +void FXJSE_Value_SetNull(CFXJSE_Value* pValue) { + pValue->SetNull(); } -void FXJSE_Value_SetBoolean(FXJSE_HVALUE hValue, FX_BOOL bBoolean) { - reinterpret_cast<CFXJSE_Value*>(hValue)->SetBoolean(bBoolean); +void FXJSE_Value_SetBoolean(CFXJSE_Value* pValue, FX_BOOL bBoolean) { + pValue->SetBoolean(bBoolean); } -void FXJSE_Value_SetUTF8String(FXJSE_HVALUE hValue, +void FXJSE_Value_SetUTF8String(CFXJSE_Value* pValue, const CFX_ByteStringC& szString) { - reinterpret_cast<CFXJSE_Value*>(hValue)->SetString(szString); + pValue->SetString(szString); } -void FXJSE_Value_SetInteger(FXJSE_HVALUE hValue, int32_t nInteger) { - reinterpret_cast<CFXJSE_Value*>(hValue)->SetInteger(nInteger); +void FXJSE_Value_SetInteger(CFXJSE_Value* pValue, int32_t nInteger) { + pValue->SetInteger(nInteger); } -void FXJSE_Value_SetFloat(FXJSE_HVALUE hValue, FX_FLOAT fFloat) { - reinterpret_cast<CFXJSE_Value*>(hValue)->SetFloat(fFloat); +void FXJSE_Value_SetFloat(CFXJSE_Value* pValue, FX_FLOAT fFloat) { + pValue->SetFloat(fFloat); } -void FXJSE_Value_SetDouble(FXJSE_HVALUE hValue, double dDouble) { - reinterpret_cast<CFXJSE_Value*>(hValue)->SetDouble(dDouble); +void FXJSE_Value_SetDouble(CFXJSE_Value* pValue, double dDouble) { + pValue->SetDouble(dDouble); } -void FXJSE_Value_SetObject(FXJSE_HVALUE hValue, +void FXJSE_Value_SetObject(CFXJSE_Value* pValue, void* lpObject, CFXJSE_Class* pClass) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); if (!pClass) { ASSERT(!lpObject); - lpValue->SetJSObject(); + pValue->SetJSObject(); } else { - lpValue->SetHostObject(lpObject, pClass); + pValue->SetHostObject(lpObject, pClass); } } -void FXJSE_Value_SetArray(FXJSE_HVALUE hValue, +void FXJSE_Value_SetArray(CFXJSE_Value* pValue, uint32_t uValueCount, - FXJSE_HVALUE* rgValues) { - reinterpret_cast<CFXJSE_Value*>(hValue) - ->SetArray(uValueCount, reinterpret_cast<CFXJSE_Value**>(rgValues)); + CFXJSE_Value** rgValues) { + pValue->SetArray(uValueCount, rgValues); } -void FXJSE_Value_Set(FXJSE_HVALUE hValue, FXJSE_HVALUE hOriginalValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - CFXJSE_Value* lpOriginalValue = - reinterpret_cast<CFXJSE_Value*>(hOriginalValue); - ASSERT(lpValue && lpOriginalValue); - lpValue->Assign(lpOriginalValue); +void FXJSE_Value_Set(CFXJSE_Value* pValue, CFXJSE_Value* pOriginalValue) { + ASSERT(pOriginalValue); + pValue->Assign(pOriginalValue); } -FX_BOOL FXJSE_Value_GetObjectProp(FXJSE_HVALUE hValue, +FX_BOOL FXJSE_Value_GetObjectProp(CFXJSE_Value* pValue, const CFX_ByteStringC& szPropName, - FXJSE_HVALUE hPropValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - CFXJSE_Value* lpPropValue = reinterpret_cast<CFXJSE_Value*>(hPropValue); - ASSERT(lpValue && lpPropValue); - return lpValue->GetObjectProperty(szPropName, lpPropValue); + CFXJSE_Value* pPropValue) { + ASSERT(pPropValue); + return pValue->GetObjectProperty(szPropName, pPropValue); } -FX_BOOL FXJSE_Value_SetObjectProp(FXJSE_HVALUE hValue, +FX_BOOL FXJSE_Value_SetObjectProp(CFXJSE_Value* pValue, const CFX_ByteStringC& szPropName, - FXJSE_HVALUE hPropValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - CFXJSE_Value* lpPropValue = reinterpret_cast<CFXJSE_Value*>(hPropValue); - ASSERT(lpValue && lpPropValue); - return lpValue->SetObjectProperty(szPropName, lpPropValue); + CFXJSE_Value* pPropValue) { + ASSERT(pPropValue); + return pValue->SetObjectProperty(szPropName, pPropValue); } -FX_BOOL FXJSE_Value_GetObjectPropByIdx(FXJSE_HVALUE hValue, +FX_BOOL FXJSE_Value_GetObjectPropByIdx(CFXJSE_Value* pValue, uint32_t uPropIdx, - FXJSE_HVALUE hPropValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - CFXJSE_Value* lpPropValue = reinterpret_cast<CFXJSE_Value*>(hPropValue); - ASSERT(lpValue && lpPropValue); - return lpValue->GetObjectProperty(uPropIdx, lpPropValue); + CFXJSE_Value* pPropValue) { + ASSERT(pPropValue); + return pValue->GetObjectProperty(uPropIdx, pPropValue); } -FX_BOOL FXJSE_Value_DeleteObjectProp(FXJSE_HVALUE hValue, +FX_BOOL FXJSE_Value_DeleteObjectProp(CFXJSE_Value* pValue, const CFX_ByteStringC& szPropName) { - return reinterpret_cast<CFXJSE_Value*>(hValue) - ->DeleteObjectProperty(szPropName); + return pValue->DeleteObjectProperty(szPropName); } -FX_BOOL FXJSE_Value_ObjectHasOwnProp(FXJSE_HVALUE hValue, +FX_BOOL FXJSE_Value_ObjectHasOwnProp(CFXJSE_Value* pValue, const CFX_ByteStringC& szPropName, FX_BOOL bUseTypeGetter) { - return reinterpret_cast<CFXJSE_Value*>(hValue) - ->HasObjectOwnProperty(szPropName, bUseTypeGetter); + return pValue->HasObjectOwnProperty(szPropName, bUseTypeGetter); } -FX_BOOL FXJSE_Value_SetObjectOwnProp(FXJSE_HVALUE hValue, +FX_BOOL FXJSE_Value_SetObjectOwnProp(CFXJSE_Value* pValue, const CFX_ByteStringC& szPropName, - FXJSE_HVALUE hPropValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - CFXJSE_Value* lpPropValue = reinterpret_cast<CFXJSE_Value*>(hPropValue); - ASSERT(lpValue && lpPropValue); - return lpValue->SetObjectOwnProperty(szPropName, lpPropValue); + CFXJSE_Value* pPropValue) { + ASSERT(pPropValue); + return pValue->SetObjectOwnProperty(szPropName, pPropValue); } -FX_BOOL FXJSE_Value_SetFunctionBind(FXJSE_HVALUE hValue, - FXJSE_HVALUE hOldFunction, - FXJSE_HVALUE hNewThis) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - CFXJSE_Value* lpOldFunction = reinterpret_cast<CFXJSE_Value*>(hOldFunction); - CFXJSE_Value* lpNewThis = reinterpret_cast<CFXJSE_Value*>(hNewThis); - ASSERT(lpValue && lpOldFunction && lpNewThis); - return lpValue->SetFunctionBind(lpOldFunction, lpNewThis); +FX_BOOL FXJSE_Value_SetFunctionBind(CFXJSE_Value* pValue, + CFXJSE_Value* pOldFunction, + CFXJSE_Value* pNewThis) { + ASSERT(pOldFunction && pNewThis); + return pValue->SetFunctionBind(pOldFunction, pNewThis); } -FXJSE_HVALUE FXJSE_Value_Create(v8::Isolate* pIsolate) { - return reinterpret_cast<FXJSE_HVALUE>(CFXJSE_Value::Create(pIsolate)); +CFXJSE_Value* FXJSE_Value_Create(v8::Isolate* pIsolate) { + return CFXJSE_Value::Create(pIsolate); } -void FXJSE_Value_Release(FXJSE_HVALUE hValue) { - CFXJSE_Value* lpValue = reinterpret_cast<CFXJSE_Value*>(hValue); - delete lpValue; +void FXJSE_Value_Release(CFXJSE_Value* pValue) { + delete pValue; } void FXJSE_ThrowMessage(const CFX_ByteStringC& utf8Name, @@ -240,13 +213,13 @@ void* CFXJSE_Value::ToObject(CFXJSE_Class* lpClass) const { ASSERT(!m_hValue.IsEmpty()); CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); - v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); - ASSERT(!hValue.IsEmpty()); + v8::Local<v8::Value> pValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); + ASSERT(!pValue.IsEmpty()); - if (!hValue->IsObject()) + if (!pValue->IsObject()) return nullptr; - return FXJSE_RetrieveObjectBinding(hValue.As<v8::Object>(), lpClass); + return FXJSE_RetrieveObjectBinding(pValue.As<v8::Object>(), lpClass); } V8_INLINE static double FXJSE_ftod(FX_FLOAT fNumber) { @@ -291,8 +264,8 @@ V8_INLINE static double FXJSE_ftod(FX_FLOAT fNumber) { void CFXJSE_Value::SetFloat(FX_FLOAT fFloat) { CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); - v8::Local<v8::Value> hValue = v8::Number::New(m_pIsolate, FXJSE_ftod(fFloat)); - m_hValue.Reset(m_pIsolate, hValue); + v8::Local<v8::Value> pValue = v8::Number::New(m_pIsolate, FXJSE_ftod(fFloat)); + m_hValue.Reset(m_pIsolate, pValue); } void CFXJSE_Value::SetHostObject(void* lpObject, CFXJSE_Class* lpClass) { @@ -423,7 +396,7 @@ FX_BOOL CFXJSE_Value::SetObjectOwnProperty(const CFX_ByteStringC& szPropName, if (!hObject->IsObject()) return FALSE; - v8::Local<v8::Value> hValue = + v8::Local<v8::Value> pValue = v8::Local<v8::Value>::New(m_pIsolate, lpPropValue->m_hValue); return hObject.As<v8::Object>() ->DefineOwnProperty( @@ -431,7 +404,7 @@ FX_BOOL CFXJSE_Value::SetObjectOwnProperty(const CFX_ByteStringC& szPropName, v8::String::NewFromUtf8(m_pIsolate, szPropName.c_str(), v8::String::kNormalString, szPropName.GetLength()), - hValue) + pValue) .FromMaybe(false); } @@ -470,7 +443,7 @@ FX_BOOL CFXJSE_Value::SetFunctionBind(CFXJSE_Value* lpOldFunction, FX_BOOL CFXJSE_Value::Call(CFXJSE_Value* lpReceiver, CFXJSE_Value* lpRetValue, uint32_t nArgCount, - FXJSE_HVALUE* lpArgs) { + CFXJSE_Value** lpArgs) { CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); v8::Local<v8::Value> hFunctionValue = v8::Local<v8::Value>::New(m_pIsolate, DirectGetValue()); @@ -492,7 +465,7 @@ FX_BOOL CFXJSE_Value::Call(CFXJSE_Value* lpReceiver, lpLocalArgs = FX_Alloc(v8::Local<v8::Value>, nArgCount); for (uint32_t i = 0; i < nArgCount; i++) { new (lpLocalArgs + i) v8::Local<v8::Value>; - CFXJSE_Value* lpArg = (CFXJSE_Value*)lpArgs[i]; + CFXJSE_Value* lpArg = lpArgs[i]; if (lpArg) { lpLocalArgs[i] = v8::Local<v8::Value>::New(m_pIsolate, lpArg->DirectGetValue()); diff --git a/xfa/fxjse/value.h b/xfa/fxjse/value.h index 576d092bce..65b5fa8e3d 100644 --- a/xfa/fxjse/value.h +++ b/xfa/fxjse/value.h @@ -201,7 +201,7 @@ class CFXJSE_Value { FX_BOOL Call(CFXJSE_Value* lpReceiver, CFXJSE_Value* lpRetValue, uint32_t nArgCount, - FXJSE_HVALUE* lpArgs); + CFXJSE_Value** lpArgs); V8_INLINE v8::Isolate* GetIsolate() const { return m_pIsolate; } V8_INLINE const v8::Global<v8::Value>& DirectGetValue() const { |