summaryrefslogtreecommitdiff
path: root/fpdfsdk
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-06-21 17:28:24 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-06-21 17:28:24 +0000
commit3d8131535e6b127c7ededdbd2e76662688997272 (patch)
tree656faaadbaf0139f8a299b672f6530e7a004b6bb /fpdfsdk
parenta964f2a5ab09dc01d09fad78f940ee8e0e5c0c04 (diff)
downloadpdfium-3d8131535e6b127c7ededdbd2e76662688997272.tar.xz
Pass output parameters as pointers in ijs_event_context
It is hard to tell if there is some unsavory stuff going on with references otherwise. Avoids some const_casts in the process. Add some UnownedPtrs along the way to check caller's storage duration. Change-Id: Ic8d85802083f0b27e07993ea25f8f1c15fca1712 Reviewed-on: https://pdfium-review.googlesource.com/35750 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fpdfsdk')
-rw-r--r--fpdfsdk/cpdfsdk_actionhandler.cpp18
-rw-r--r--fpdfsdk/cpdfsdk_interform.cpp4
2 files changed, 12 insertions, 10 deletions
diff --git a/fpdfsdk/cpdfsdk_actionhandler.cpp b/fpdfsdk/cpdfsdk_actionhandler.cpp
index 5b72082104..64d82b93ba 100644
--- a/fpdfsdk/cpdfsdk_actionhandler.cpp
+++ b/fpdfsdk/cpdfsdk_actionhandler.cpp
@@ -422,22 +422,24 @@ void CPDFSDK_ActionHandler::RunFieldJavaScript(
break;
case CPDF_AAction::GetFocus:
context->OnField_Focus(data->bModifier, data->bShift, pFormField,
- data->sValue);
+ &data->sValue);
break;
case CPDF_AAction::LoseFocus:
context->OnField_Blur(data->bModifier, data->bShift, pFormField,
- data->sValue);
+ &data->sValue);
break;
case CPDF_AAction::KeyStroke:
context->OnField_Keystroke(
- data->sChange, data->sChangeEx, data->bKeyDown, data->bModifier,
- data->nSelEnd, data->nSelStart, data->bShift, pFormField,
- data->sValue, data->bWillCommit, data->bFieldFull, data->bRC);
+ &data->sChange, data->sChangeEx, data->bKeyDown,
+ data->bModifier, &data->nSelEnd, &data->nSelStart, data->bShift,
+ pFormField, &data->sValue, data->bWillCommit, data->bFieldFull,
+ &data->bRC);
break;
case CPDF_AAction::Validate:
- context->OnField_Validate(
- data->sChange, data->sChangeEx, data->bKeyDown, data->bModifier,
- data->bShift, pFormField, data->sValue, data->bRC);
+ context->OnField_Validate(&data->sChange, data->sChangeEx,
+ data->bKeyDown, data->bModifier,
+ data->bShift, pFormField, &data->sValue,
+ &data->bRC);
break;
default:
NOTREACHED();
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp
index 751a889b68..9d646b6574 100644
--- a/fpdfsdk/cpdfsdk_interform.cpp
+++ b/fpdfsdk/cpdfsdk_interform.cpp
@@ -290,7 +290,7 @@ void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) {
WideString sValue = sOldValue;
bool bRC = true;
IJS_Runtime::ScopedEventContext pContext(pRuntime);
- pContext->OnField_Calculate(pFormField, pField, sValue, bRC);
+ pContext->OnField_Calculate(pFormField, pField, &sValue, &bRC);
Optional<IJS_Runtime::JS_Error> err = pContext->RunScript(csJS);
if (!err && bRC && sValue.Compare(sOldValue) != 0)
@@ -324,7 +324,7 @@ WideString CPDFSDK_InterForm::OnFormat(CPDF_FormField* pFormField,
if (!script.IsEmpty()) {
WideString Value = sValue;
IJS_Runtime::ScopedEventContext pContext(pRuntime);
- pContext->OnField_Format(pFormField, Value, true);
+ pContext->OnField_Format(pFormField, &Value, true);
Optional<IJS_Runtime::JS_Error> err = pContext->RunScript(script);
if (!err) {
sValue = std::move(Value);