| Index: fpdfsdk/javascript/PublicMethods.cpp
|
| diff --git a/fpdfsdk/javascript/PublicMethods.cpp b/fpdfsdk/javascript/PublicMethods.cpp
|
| index aa0efb1fa65d6d8b8e45b7c3de0e9f45460215a5..f1e23dbef5c6e0f35127f03cd693b9c93cfd9005 100644
|
| --- a/fpdfsdk/javascript/PublicMethods.cpp
|
| +++ b/fpdfsdk/javascript/PublicMethods.cpp
|
| @@ -163,10 +163,10 @@ CJS_Array CJS_PublicMethods::AF_MakeArrayFromList(CJS_Runtime* pRuntime,
|
| CJS_Value val) {
|
| CJS_Array StrArray;
|
| if (val.IsArrayObject()) {
|
| - val.ConvertToArray(StrArray);
|
| + val.ConvertToArray(pRuntime->GetIsolate(), StrArray);
|
| return StrArray;
|
| }
|
| - CFX_WideString wsStr = val.ToCFXWideString();
|
| + CFX_WideString wsStr = val.ToCFXWideString(pRuntime->GetIsolate());
|
| CFX_ByteString t = CFX_ByteString::FromUnicode(wsStr);
|
| const char* p = t.c_str();
|
|
|
| @@ -743,12 +743,13 @@ FX_BOOL CJS_PublicMethods::AFNumber_Format(IJS_Context* cc,
|
| if (strValue.IsEmpty())
|
| return TRUE;
|
|
|
| - int iDec = params[0].ToInt();
|
| - int iSepStyle = params[1].ToInt();
|
| - int iNegStyle = params[2].ToInt();
|
| + int iDec = params[0].ToInt(pRuntime->GetIsolate());
|
| + int iSepStyle = params[1].ToInt(pRuntime->GetIsolate());
|
| + int iNegStyle = params[2].ToInt(pRuntime->GetIsolate());
|
| // params[3] is iCurrStyle, it's not used.
|
| - CFX_WideString wstrCurrency = params[4].ToCFXWideString();
|
| - FX_BOOL bCurrencyPrepend = params[5].ToBool();
|
| + CFX_WideString wstrCurrency =
|
| + params[4].ToCFXWideString(pRuntime->GetIsolate());
|
| + FX_BOOL bCurrencyPrepend = params[5].ToBool(pRuntime->GetIsolate());
|
|
|
| if (iDec < 0)
|
| iDec = -iDec;
|
| @@ -837,11 +838,11 @@ FX_BOOL CJS_PublicMethods::AFNumber_Format(IJS_Context* cc,
|
| if (Field* fTarget = pEvent->Target_Field()) {
|
| CJS_Array arColor;
|
| CJS_Value vColElm(pRuntime);
|
| - vColElm = L"RGB";
|
| + vColElm = CJS_Value(pRuntime, L"RGB");
|
| arColor.SetElement(pRuntime->GetIsolate(), 0, vColElm);
|
| - vColElm = 1;
|
| + vColElm = CJS_Value(pRuntime, 1);
|
| arColor.SetElement(pRuntime->GetIsolate(), 1, vColElm);
|
| - vColElm = 0;
|
| + vColElm = CJS_Value(pRuntime, 0);
|
| arColor.SetElement(pRuntime->GetIsolate(), 2, vColElm);
|
| arColor.SetElement(pRuntime->GetIsolate(), 3, vColElm);
|
|
|
| @@ -857,9 +858,9 @@ FX_BOOL CJS_PublicMethods::AFNumber_Format(IJS_Context* cc,
|
| if (Field* fTarget = pEvent->Target_Field()) {
|
| CJS_Array arColor;
|
| CJS_Value vColElm(pRuntime);
|
| - vColElm = L"RGB";
|
| + vColElm = CJS_Value(pRuntime, L"RGB");
|
| arColor.SetElement(pRuntime->GetIsolate(), 0, vColElm);
|
| - vColElm = 0;
|
| + vColElm = CJS_Value(pRuntime, 0);
|
| arColor.SetElement(pRuntime->GetIsolate(), 1, vColElm);
|
| arColor.SetElement(pRuntime->GetIsolate(), 2, vColElm);
|
| arColor.SetElement(pRuntime->GetIsolate(), 3, vColElm);
|
| @@ -869,7 +870,7 @@ FX_BOOL CJS_PublicMethods::AFNumber_Format(IJS_Context* cc,
|
| fTarget->textColor(cc, vProp, sError);
|
|
|
| CJS_Array aProp;
|
| - vProp.ConvertToArray(aProp);
|
| + vProp.GetJSValue()->ConvertToArray(pRuntime->GetIsolate(), aProp);
|
|
|
| CPWL_Color crProp;
|
| CPWL_Color crColor;
|
| @@ -940,7 +941,8 @@ FX_BOOL CJS_PublicMethods::AFNumber_Keystroke(
|
| }
|
| }
|
|
|
| - int iSepStyle = params[1].ToInt();
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + int iSepStyle = params[1].ToInt(pRuntime->GetIsolate());
|
| if (iSepStyle < 0 || iSepStyle > 3)
|
| iSepStyle = 0;
|
| const FX_WCHAR cSep = iSepStyle < 2 ? L'.' : L',';
|
| @@ -1000,6 +1002,7 @@ FX_BOOL CJS_PublicMethods::AFPercent_Format(
|
| CFX_WideString& sError) {
|
| #if _FX_OS_ != _FX_ANDROID_
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| CJS_EventHandler* pEvent = pContext->GetEventHandler();
|
|
|
| if (params.size() != 2) {
|
| @@ -1014,11 +1017,11 @@ FX_BOOL CJS_PublicMethods::AFPercent_Format(
|
| if (strValue.IsEmpty())
|
| return TRUE;
|
|
|
| - int iDec = params[0].ToInt();
|
| + int iDec = params[0].ToInt(pRuntime->GetIsolate());
|
| if (iDec < 0)
|
| iDec = -iDec;
|
|
|
| - int iSepStyle = params[1].ToInt();
|
| + int iSepStyle = params[1].ToInt(pRuntime->GetIsolate());
|
| if (iSepStyle < 0 || iSepStyle > 3)
|
| iSepStyle = 0;
|
|
|
| @@ -1099,6 +1102,7 @@ FX_BOOL CJS_PublicMethods::AFDate_FormatEx(IJS_Context* cc,
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| CJS_EventHandler* pEvent = pContext->GetEventHandler();
|
|
|
| if (params.size() != 1) {
|
| @@ -1113,7 +1117,7 @@ FX_BOOL CJS_PublicMethods::AFDate_FormatEx(IJS_Context* cc,
|
| if (strValue.IsEmpty())
|
| return TRUE;
|
|
|
| - CFX_WideString sFormat = params[0].ToCFXWideString();
|
| + CFX_WideString sFormat = params[0].ToCFXWideString(pRuntime->GetIsolate());
|
| double dDate = 0.0f;
|
|
|
| if (strValue.Find(L"GMT") != -1) {
|
| @@ -1199,6 +1203,7 @@ FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx(
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| CJS_EventHandler* pEvent = pContext->GetEventHandler();
|
|
|
| if (params.size() != 1) {
|
| @@ -1213,7 +1218,7 @@ FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx(
|
| if (strValue.IsEmpty())
|
| return TRUE;
|
|
|
| - CFX_WideString sFormat = params[0].ToCFXWideString();
|
| + CFX_WideString sFormat = params[0].ToCFXWideString(pRuntime->GetIsolate());
|
| bool bWrongFormat = FALSE;
|
| double dRet = MakeRegularDate(strValue, sFormat, &bWrongFormat);
|
| if (bWrongFormat || JS_PortIsNan(dRet)) {
|
| @@ -1238,7 +1243,8 @@ FX_BOOL CJS_PublicMethods::AFDate_Format(IJS_Context* cc,
|
| return FALSE;
|
| }
|
|
|
| - int iIndex = params[0].ToInt();
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + int iIndex = params[0].ToInt(pRuntime->GetIsolate());
|
| const FX_WCHAR* cFormats[] = {L"m/d",
|
| L"m/d/yy",
|
| L"mm/dd/yy",
|
| @@ -1275,7 +1281,8 @@ FX_BOOL CJS_PublicMethods::AFDate_Keystroke(
|
| return FALSE;
|
| }
|
|
|
| - int iIndex = params[0].ToInt();
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + int iIndex = params[0].ToInt(pRuntime->GetIsolate());
|
| const FX_WCHAR* cFormats[] = {L"m/d",
|
| L"m/d/yy",
|
| L"mm/dd/yy",
|
| @@ -1311,7 +1318,8 @@ FX_BOOL CJS_PublicMethods::AFTime_Format(IJS_Context* cc,
|
| return FALSE;
|
| }
|
|
|
| - int iIndex = params[0].ToInt();
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + int iIndex = params[0].ToInt(pRuntime->GetIsolate());
|
| const FX_WCHAR* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
|
| L"h:MM:ss tt"};
|
|
|
| @@ -1335,7 +1343,8 @@ FX_BOOL CJS_PublicMethods::AFTime_Keystroke(
|
| return FALSE;
|
| }
|
|
|
| - int iIndex = params[0].ToInt();
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + int iIndex = params[0].ToInt(pRuntime->GetIsolate());
|
| const FX_WCHAR* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
|
| L"h:MM:ss tt"};
|
|
|
| @@ -1370,7 +1379,6 @@ FX_BOOL CJS_PublicMethods::AFSpecial_Format(
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| -
|
| if (params.size() != 1) {
|
| sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
|
| return FALSE;
|
| @@ -1380,9 +1388,10 @@ FX_BOOL CJS_PublicMethods::AFSpecial_Format(
|
| if (!pEvent->m_pValue)
|
| return FALSE;
|
|
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| CFX_WideString wsSource = pEvent->Value();
|
| CFX_WideString wsFormat;
|
| - switch (params[0].ToInt()) {
|
| + switch (params[0].ToInt(pRuntime->GetIsolate())) {
|
| case 0:
|
| wsFormat = L"99999";
|
| break;
|
| @@ -1411,6 +1420,7 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| CJS_EventHandler* pEvent = pContext->GetEventHandler();
|
|
|
| if (params.size() < 1) {
|
| @@ -1422,7 +1432,7 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(
|
| return FALSE;
|
| CFX_WideString& valEvent = pEvent->Value();
|
|
|
| - CFX_WideString wstrMask = params[0].ToCFXWideString();
|
| + CFX_WideString wstrMask = params[0].ToCFXWideString(pRuntime->GetIsolate());
|
| if (wstrMask.IsEmpty())
|
| return TRUE;
|
|
|
| @@ -1509,7 +1519,8 @@ FX_BOOL CJS_PublicMethods::AFSpecial_Keystroke(
|
| return FALSE;
|
|
|
| const char* cFormat = "";
|
| - switch (params[0].ToInt()) {
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| + switch (params[0].ToInt(pRuntime->GetIsolate())) {
|
| case 0:
|
| cFormat = "99999";
|
| break;
|
| @@ -1537,6 +1548,7 @@ FX_BOOL CJS_PublicMethods::AFMergeChange(IJS_Context* cc,
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| CJS_EventHandler* pEventHandler = pContext->GetEventHandler();
|
|
|
| if (params.size() != 1) {
|
| @@ -1549,7 +1561,7 @@ FX_BOOL CJS_PublicMethods::AFMergeChange(IJS_Context* cc,
|
| swValue = pEventHandler->Value();
|
|
|
| if (pEventHandler->WillCommit()) {
|
| - vRet = swValue.c_str();
|
| + vRet = CJS_Value(pRuntime, swValue.c_str());
|
| return TRUE;
|
| }
|
|
|
| @@ -1567,8 +1579,8 @@ FX_BOOL CJS_PublicMethods::AFMergeChange(IJS_Context* cc,
|
| else
|
| postfix = L"";
|
|
|
| - vRet = (prefix + pEventHandler->Change() + postfix).c_str();
|
| -
|
| + vRet =
|
| + CJS_Value(pRuntime, (prefix + pEventHandler->Change() + postfix).c_str());
|
| return TRUE;
|
| }
|
|
|
| @@ -1577,15 +1589,15 @@ FX_BOOL CJS_PublicMethods::AFParseDateEx(IJS_Context* cc,
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| - ASSERT(pContext);
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
|
|
| if (params.size() != 2) {
|
| sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
|
| return FALSE;
|
| }
|
|
|
| - CFX_WideString sValue = params[0].ToCFXWideString();
|
| - CFX_WideString sFormat = params[1].ToCFXWideString();
|
| + CFX_WideString sValue = params[0].ToCFXWideString(pRuntime->GetIsolate());
|
| + CFX_WideString sFormat = params[1].ToCFXWideString(pRuntime->GetIsolate());
|
|
|
| double dDate = MakeRegularDate(sValue, sFormat, nullptr);
|
|
|
| @@ -1597,7 +1609,7 @@ FX_BOOL CJS_PublicMethods::AFParseDateEx(IJS_Context* cc,
|
| return FALSE;
|
| }
|
|
|
| - vRet = dDate;
|
| + vRet = CJS_Value(pRuntime, dDate);
|
| return TRUE;
|
| }
|
|
|
| @@ -1605,16 +1617,20 @@ FX_BOOL CJS_PublicMethods::AFSimple(IJS_Context* cc,
|
| const std::vector<CJS_Value>& params,
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| - if (params.size() != 3) {
|
| - CJS_Context* pContext = (CJS_Context*)cc;
|
| - ASSERT(pContext);
|
| + CJS_Context* pContext = (CJS_Context*)cc;
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
|
|
| + if (params.size() != 3) {
|
| sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
|
| return FALSE;
|
| }
|
|
|
| - vRet = (double)AF_Simple(params[0].ToCFXWideString().c_str(),
|
| - params[1].ToDouble(), params[2].ToDouble());
|
| + vRet = CJS_Value(
|
| + pRuntime, static_cast<double>(AF_Simple(
|
| + params[0].ToCFXWideString(pRuntime->GetIsolate()).c_str(),
|
| + params[1].ToDouble(pRuntime->GetIsolate()),
|
| + params[2].ToDouble(pRuntime->GetIsolate()))));
|
| +
|
| return TRUE;
|
| }
|
|
|
| @@ -1623,16 +1639,19 @@ FX_BOOL CJS_PublicMethods::AFMakeNumber(IJS_Context* cc,
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| +
|
| if (params.size() != 1) {
|
| sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
|
| return FALSE;
|
| }
|
| - CFX_WideString ws = params[0].ToCFXWideString();
|
| +
|
| + CFX_WideString ws = params[0].ToCFXWideString(pRuntime->GetIsolate());
|
| ws.Replace(L",", L".");
|
| - vRet = ws.c_str();
|
| - vRet.MaybeCoerceToNumber();
|
| + vRet = CJS_Value(pRuntime, ws.c_str());
|
| + vRet.MaybeCoerceToNumber(pRuntime->GetIsolate());
|
| if (vRet.GetType() != CJS_Value::VT_number)
|
| - vRet = 0;
|
| + vRet = CJS_Value(pRuntime, 0);
|
| return TRUE;
|
| }
|
|
|
| @@ -1642,6 +1661,8 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| +
|
| if (params.size() != 2) {
|
| sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
|
| return FALSE;
|
| @@ -1657,17 +1678,17 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(
|
| CPDFSDK_InterForm* pReaderInterForm = pReaderDoc->GetInterForm();
|
| CPDF_InterForm* pInterForm = pReaderInterForm->GetInterForm();
|
|
|
| - CFX_WideString sFunction = params[0].ToCFXWideString();
|
| + CFX_WideString sFunction = params[0].ToCFXWideString(pRuntime->GetIsolate());
|
| double dValue = wcscmp(sFunction.c_str(), L"PRD") == 0 ? 1.0 : 0.0;
|
|
|
| - CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| CJS_Array FieldNameArray = AF_MakeArrayFromList(pRuntime, params1);
|
| int nFieldsCount = 0;
|
|
|
| for (int i = 0, isz = FieldNameArray.GetLength(); i < isz; i++) {
|
| CJS_Value jsValue(pRuntime);
|
| FieldNameArray.GetElement(pRuntime->GetIsolate(), i, jsValue);
|
| - CFX_WideString wsFieldName = jsValue.ToCFXWideString();
|
| + CFX_WideString wsFieldName =
|
| + jsValue.ToCFXWideString(pRuntime->GetIsolate());
|
|
|
| for (int j = 0, jsz = pInterForm->CountFields(wsFieldName); j < jsz; j++) {
|
| if (CPDF_FormField* pFormField = pInterForm->GetField(j, wsFieldName)) {
|
| @@ -1728,7 +1749,8 @@ FX_BOOL CJS_PublicMethods::AFSimple_Calculate(
|
| FXSYS_pow((double)10, (double)6);
|
| CJS_Value jsValue(pRuntime, dValue);
|
| if (pContext->GetEventHandler()->m_pValue)
|
| - pContext->GetEventHandler()->Value() = jsValue.ToCFXWideString();
|
| + pContext->GetEventHandler()->Value() =
|
| + jsValue.ToCFXWideString(pRuntime->GetIsolate());
|
|
|
| return TRUE;
|
| }
|
| @@ -1742,6 +1764,7 @@ FX_BOOL CJS_PublicMethods::AFRange_Validate(
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| CJS_EventHandler* pEvent = pContext->GetEventHandler();
|
|
|
| if (params.size() != 4) {
|
| @@ -1755,25 +1778,25 @@ FX_BOOL CJS_PublicMethods::AFRange_Validate(
|
| return TRUE;
|
| double dEentValue =
|
| atof(CFX_ByteString::FromUnicode(pEvent->Value()).c_str());
|
| - FX_BOOL bGreaterThan = params[0].ToBool();
|
| - double dGreaterThan = params[1].ToDouble();
|
| - FX_BOOL bLessThan = params[2].ToBool();
|
| - double dLessThan = params[3].ToDouble();
|
| + FX_BOOL bGreaterThan = params[0].ToBool(pRuntime->GetIsolate());
|
| + double dGreaterThan = params[1].ToDouble(pRuntime->GetIsolate());
|
| + FX_BOOL bLessThan = params[2].ToBool(pRuntime->GetIsolate());
|
| + double dLessThan = params[3].ToDouble(pRuntime->GetIsolate());
|
| CFX_WideString swMsg;
|
|
|
| if (bGreaterThan && bLessThan) {
|
| if (dEentValue < dGreaterThan || dEentValue > dLessThan)
|
| swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE1).c_str(),
|
| - params[1].ToCFXWideString().c_str(),
|
| - params[3].ToCFXWideString().c_str());
|
| + params[1].ToCFXWideString(pRuntime->GetIsolate()).c_str(),
|
| + params[3].ToCFXWideString(pRuntime->GetIsolate()).c_str());
|
| } else if (bGreaterThan) {
|
| if (dEentValue < dGreaterThan)
|
| swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE2).c_str(),
|
| - params[1].ToCFXWideString().c_str());
|
| + params[1].ToCFXWideString(pRuntime->GetIsolate()).c_str());
|
| } else if (bLessThan) {
|
| if (dEentValue > dLessThan)
|
| swMsg.Format(JSGetStringFromID(pContext, IDS_STRING_JSRANGE3).c_str(),
|
| - params[3].ToCFXWideString().c_str());
|
| + params[3].ToCFXWideString(pRuntime->GetIsolate()).c_str());
|
| }
|
|
|
| if (!swMsg.IsEmpty()) {
|
| @@ -1788,15 +1811,15 @@ FX_BOOL CJS_PublicMethods::AFExtractNums(IJS_Context* cc,
|
| CJS_Value& vRet,
|
| CFX_WideString& sError) {
|
| CJS_Context* pContext = (CJS_Context*)cc;
|
| + CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| +
|
| if (params.size() != 1) {
|
| sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
|
| return FALSE;
|
| }
|
|
|
| - CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc);
|
| CJS_Array nums;
|
| -
|
| - CFX_WideString str = params[0].ToCFXWideString();
|
| + CFX_WideString str = params[0].ToCFXWideString(pRuntime->GetIsolate());
|
| CFX_WideString sPart;
|
|
|
| if (str.GetAt(0) == L'.' || str.GetAt(0) == L',')
|
| @@ -1825,7 +1848,7 @@ FX_BOOL CJS_PublicMethods::AFExtractNums(IJS_Context* cc,
|
| if (nums.GetLength() > 0)
|
| vRet = CJS_Value(pRuntime, nums);
|
| else
|
| - vRet.SetNull();
|
| + vRet.SetNull(pRuntime);
|
|
|
| return TRUE;
|
| }
|
|
|