Avoid a copy in CJS_Document::mailForm().
Since the copied data ultimately goes out to Doc_mail() as a void*, it
is not intended to be modified. Thus CJS_Document::mailForm() does not
need to make a copy, and can just pass in the original data.
Change-Id: I073308ac785b737284226e94f45c50fcd819dd3a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/96610
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
index b379644..c1102e4 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
@@ -248,13 +248,14 @@
return WideString::FromDefANSI(ByteStringView(pBuff));
}
-void CPDFSDK_FormFillEnvironment::JS_docmailForm(pdfium::span<uint8_t> mailData,
- FPDF_BOOL bUI,
- const WideString& To,
- const WideString& Subject,
- const WideString& CC,
- const WideString& BCC,
- const WideString& Msg) {
+void CPDFSDK_FormFillEnvironment::JS_docmailForm(
+ pdfium::span<const uint8_t> mailData,
+ FPDF_BOOL bUI,
+ const WideString& To,
+ const WideString& Subject,
+ const WideString& CC,
+ const WideString& BCC,
+ const WideString& Msg) {
IPDF_JSPLATFORM* js_platform = GetJSPlatform();
if (!js_platform || !js_platform->Doc_mail)
return;
@@ -264,7 +265,7 @@
ByteString bsCC = CC.ToUTF16LE();
ByteString bsBcc = BCC.ToUTF16LE();
ByteString bsMsg = Msg.ToUTF16LE();
- js_platform->Doc_mail(js_platform, mailData.data(),
+ js_platform->Doc_mail(js_platform, const_cast<uint8_t*>(mailData.data()),
pdfium::base::checked_cast<int>(mailData.size()), bUI,
AsFPDFWideString(&bsTo), AsFPDFWideString(&bsSubject),
AsFPDFWideString(&bsCC), AsFPDFWideString(&bsBcc),