summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/fpdfapi/cmaps/fpdf_cmaps.cpp92
-rw-r--r--core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp21
-rw-r--r--core/fxcodec/codec/fx_codec_flate.cpp75
-rw-r--r--fpdfsdk/cpdfsdk_annothandlermgr.cpp8
-rw-r--r--fpdfsdk/cpdfsdk_widget.h6
-rw-r--r--fpdfsdk/cpdfsdk_widgethandler.cpp5
-rw-r--r--fpdfsdk/formfiller/cffl_formfiller.cpp16
-rw-r--r--fpdfsdk/formfiller/cffl_interactiveformfiller.cpp33
8 files changed, 145 insertions, 111 deletions
diff --git a/core/fpdfapi/cmaps/fpdf_cmaps.cpp b/core/fpdfapi/cmaps/fpdf_cmaps.cpp
index ad1091910c..630942bde7 100644
--- a/core/fpdfapi/cmaps/fpdf_cmaps.cpp
+++ b/core/fpdfapi/cmaps/fpdf_cmaps.cpp
@@ -74,31 +74,40 @@ uint16_t FPDFAPI_CIDFromCharCode(const FXCMAP_CMap* pMap, uint32_t charcode) {
return 0;
}
- while (pMap) {
- if (!pMap->m_pWordMap)
- return 0;
- if (pMap->m_WordMapType == FXCMAP_CMap::Single) {
- const auto* begin = reinterpret_cast<const SingleCmap*>(pMap->m_pWordMap);
- const auto* end = begin + pMap->m_WordCount;
- const auto* found = std::lower_bound(
- begin, end, loword, [](const SingleCmap& element, uint16_t code) {
- return element.code < code;
- });
- if (found != end && found->code == loword)
- return found->cid;
- } else {
- ASSERT(pMap->m_WordMapType == FXCMAP_CMap::Range);
- const auto* begin = reinterpret_cast<const RangeCmap*>(pMap->m_pWordMap);
- const auto* end = begin + pMap->m_WordCount;
- const auto* found = std::lower_bound(
- begin, end, loword, [](const RangeCmap& element, uint16_t code) {
- return element.high < code;
- });
- if (found != end && loword >= found->low && loword <= found->high)
- return found->cid + loword - found->low;
+ while (pMap && pMap->m_pWordMap) {
+ switch (pMap->m_WordMapType) {
+ case FXCMAP_CMap::Single: {
+ const auto* begin =
+ reinterpret_cast<const SingleCmap*>(pMap->m_pWordMap);
+ const auto* end = begin + pMap->m_WordCount;
+ const auto* found = std::lower_bound(
+ begin, end, loword, [](const SingleCmap& element, uint16_t code) {
+ return element.code < code;
+ });
+ if (found != end && found->code == loword)
+ return found->cid;
+ break;
+ }
+ case FXCMAP_CMap::Range: {
+ const auto* begin =
+ reinterpret_cast<const RangeCmap*>(pMap->m_pWordMap);
+ const auto* end = begin + pMap->m_WordCount;
+ const auto* found = std::lower_bound(
+ begin, end, loword, [](const RangeCmap& element, uint16_t code) {
+ return element.high < code;
+ });
+ if (found != end && loword >= found->low && loword <= found->high)
+ return found->cid + loword - found->low;
+ break;
+ }
+ default: {
+ NOTREACHED();
+ break;
+ }
}
pMap = FindNextCMap(pMap);
}
+
return 0;
}
@@ -110,22 +119,31 @@ uint32_t FPDFAPI_CharCodeFromCID(const FXCMAP_CMap* pMap, uint16_t cid) {
// second while loop.)
ASSERT(pMap);
while (pMap) {
- if (pMap->m_WordMapType == FXCMAP_CMap::Single) {
- const auto* pCur = reinterpret_cast<const SingleCmap*>(pMap->m_pWordMap);
- const auto* pEnd = pCur + pMap->m_WordCount;
- while (pCur < pEnd) {
- if (pCur->cid == cid)
- return pCur->code;
- ++pCur;
+ switch (pMap->m_WordMapType) {
+ case FXCMAP_CMap::Single: {
+ const auto* pCur =
+ reinterpret_cast<const SingleCmap*>(pMap->m_pWordMap);
+ const auto* pEnd = pCur + pMap->m_WordCount;
+ while (pCur < pEnd) {
+ if (pCur->cid == cid)
+ return pCur->code;
+ ++pCur;
+ }
+ break;
+ }
+ case FXCMAP_CMap::Range: {
+ const auto* pCur = reinterpret_cast<const RangeCmap*>(pMap->m_pWordMap);
+ const auto* pEnd = pCur + pMap->m_WordCount;
+ while (pCur < pEnd) {
+ if (cid >= pCur->cid && cid <= pCur->cid + pCur->high - pCur->low)
+ return pCur->low + cid - pCur->cid;
+ ++pCur;
+ }
+ break;
}
- } else {
- ASSERT(pMap->m_WordMapType == FXCMAP_CMap::Range);
- const auto* pCur = reinterpret_cast<const RangeCmap*>(pMap->m_pWordMap);
- const auto* pEnd = pCur + pMap->m_WordCount;
- while (pCur < pEnd) {
- if (cid >= pCur->cid && cid <= pCur->cid + pCur->high - pCur->low)
- return pCur->low + cid - pCur->cid;
- ++pCur;
+ default: {
+ NOTREACHED();
+ break;
}
}
pMap = FindNextCMap(pMap);
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
index 9693bc48ff..e2fa801a58 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -264,13 +264,20 @@ const CPDF_ContentMark* CPDF_PageContentGenerator::ProcessContentMarks(
}
// If there are parameters, write properties, direct or indirect.
- if (item->GetParamType() == CPDF_ContentMarkItem::DirectDict) {
- CPDF_StringArchiveStream archive_stream(buf);
- item->GetParam()->WriteTo(&archive_stream, nullptr);
- *buf << " ";
- } else {
- ASSERT(item->GetParamType() == CPDF_ContentMarkItem::PropertiesDict);
- *buf << "/" << item->GetPropertyName() << " ";
+ switch (item->GetParamType()) {
+ case CPDF_ContentMarkItem::DirectDict: {
+ CPDF_StringArchiveStream archive_stream(buf);
+ item->GetParam()->WriteTo(&archive_stream, nullptr);
+ *buf << " ";
+ break;
+ }
+ case CPDF_ContentMarkItem::PropertiesDict: {
+ *buf << "/" << item->GetPropertyName() << " ";
+ break;
+ }
+ default:
+ NOTREACHED();
+ break;
}
// Write BDC (begin dictionary content) operator.
diff --git a/core/fxcodec/codec/fx_codec_flate.cpp b/core/fxcodec/codec/fx_codec_flate.cpp
index eb68cedda5..39d27a4955 100644
--- a/core/fxcodec/codec/fx_codec_flate.cpp
+++ b/core/fxcodec/codec/fx_codec_flate.cpp
@@ -709,16 +709,21 @@ uint8_t* CCodec_FlatePredictorScanlineDecoder::v_GetNextLine() {
}
void CCodec_FlatePredictorScanlineDecoder::GetNextLineWithPredictedPitch() {
- if (m_Predictor == PredictorType::kPng) {
- FlateOutput(m_pFlate.get(), m_pPredictRaw, m_PredictPitch + 1);
- PNG_PredictLine(m_pScanline.get(), m_pPredictRaw, m_pLastLine,
- m_BitsPerComponent, m_Colors, m_Columns);
- memcpy(m_pLastLine, m_pScanline.get(), m_PredictPitch);
- } else {
- ASSERT(m_Predictor == PredictorType::kFlate);
- FlateOutput(m_pFlate.get(), m_pScanline.get(), m_Pitch);
- TIFF_PredictLine(m_pScanline.get(), m_PredictPitch, m_bpc, m_nComps,
- m_OutputWidth);
+ switch (m_Predictor) {
+ case PredictorType::kPng:
+ FlateOutput(m_pFlate.get(), m_pPredictRaw, m_PredictPitch + 1);
+ PNG_PredictLine(m_pScanline.get(), m_pPredictRaw, m_pLastLine,
+ m_BitsPerComponent, m_Colors, m_Columns);
+ memcpy(m_pLastLine, m_pScanline.get(), m_PredictPitch);
+ break;
+ case PredictorType::kFlate:
+ FlateOutput(m_pFlate.get(), m_pScanline.get(), m_Pitch);
+ TIFF_PredictLine(m_pScanline.get(), m_PredictPitch, m_bpc, m_nComps,
+ m_OutputWidth);
+ break;
+ default:
+ NOTREACHED();
+ break;
}
}
@@ -732,16 +737,21 @@ void CCodec_FlatePredictorScanlineDecoder::GetNextLineWithoutPredictedPitch() {
bytes_to_go -= read_leftover;
}
while (bytes_to_go) {
- if (m_Predictor == PredictorType::kPng) {
- FlateOutput(m_pFlate.get(), m_pPredictRaw, m_PredictPitch + 1);
- PNG_PredictLine(m_pPredictBuffer, m_pPredictRaw, m_pLastLine,
- m_BitsPerComponent, m_Colors, m_Columns);
- memcpy(m_pLastLine, m_pPredictBuffer, m_PredictPitch);
- } else {
- ASSERT(m_Predictor == PredictorType::kFlate);
- FlateOutput(m_pFlate.get(), m_pPredictBuffer, m_PredictPitch);
- TIFF_PredictLine(m_pPredictBuffer, m_PredictPitch, m_BitsPerComponent,
- m_Colors, m_Columns);
+ switch (m_Predictor) {
+ case PredictorType::kPng:
+ FlateOutput(m_pFlate.get(), m_pPredictRaw, m_PredictPitch + 1);
+ PNG_PredictLine(m_pPredictBuffer, m_pPredictRaw, m_pLastLine,
+ m_BitsPerComponent, m_Colors, m_Columns);
+ memcpy(m_pLastLine, m_pPredictBuffer, m_PredictPitch);
+ break;
+ case PredictorType::kFlate:
+ FlateOutput(m_pFlate.get(), m_pPredictBuffer, m_PredictPitch);
+ TIFF_PredictLine(m_pPredictBuffer, m_PredictPitch, m_BitsPerComponent,
+ m_Colors, m_Columns);
+ break;
+ default:
+ NOTREACHED();
+ break;
}
size_t read_bytes =
m_PredictPitch > bytes_to_go ? bytes_to_go : m_PredictPitch;
@@ -807,17 +817,22 @@ uint32_t CCodec_FlateModule::FlateOrLZWDecode(bool bLZW,
FlateUncompress(pdfium::make_span(src_buf, src_size), estimated_size,
*dest_buf, *dest_size, offset);
}
- if (predictor_type == PredictorType::kNone)
- return offset;
- bool ret;
- if (predictor_type == PredictorType::kPng) {
- ret =
- PNG_Predictor(*dest_buf, *dest_size, Colors, BitsPerComponent, Columns);
- } else {
- ASSERT(predictor_type == PredictorType::kFlate);
- ret = TIFF_Predictor(*dest_buf, *dest_size, Colors, BitsPerComponent,
- Columns);
+ bool ret = false;
+ switch (predictor_type) {
+ case PredictorType::kNone:
+ return offset;
+ case PredictorType::kPng:
+ ret = PNG_Predictor(*dest_buf, *dest_size, Colors, BitsPerComponent,
+ Columns);
+ break;
+ case PredictorType::kFlate:
+ ret = TIFF_Predictor(*dest_buf, *dest_size, Colors, BitsPerComponent,
+ Columns);
+ break;
+ default:
+ NOTREACHED();
+ break;
}
return ret ? offset : FX_INVALID_OFFSET;
}
diff --git a/fpdfsdk/cpdfsdk_annothandlermgr.cpp b/fpdfsdk/cpdfsdk_annothandlermgr.cpp
index 09d844f809..15ebfaacb4 100644
--- a/fpdfsdk/cpdfsdk_annothandlermgr.cpp
+++ b/fpdfsdk/cpdfsdk_annothandlermgr.cpp
@@ -16,6 +16,7 @@
#include "fpdfsdk/cpdfsdk_datetime.h"
#include "fpdfsdk/cpdfsdk_formfillenvironment.h"
#include "fpdfsdk/cpdfsdk_pageview.h"
+#include "fpdfsdk/cpdfsdk_widget.h"
#include "fpdfsdk/cpdfsdk_widgethandler.h"
#include "third_party/base/ptr_util.h"
@@ -330,8 +331,7 @@ CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::GetNextAnnot(CPDFSDK_Annot* pSDKAnnot,
#endif // PDF_ENABLE_XFA
// For PDF annots.
- ASSERT(pSDKAnnot->GetAnnotSubtype() == CPDF_Annot::Subtype::WIDGET);
- CPDFSDK_AnnotIterator ai(pSDKAnnot->GetPageView(),
- pSDKAnnot->GetAnnotSubtype());
- return bNext ? ai.GetNextAnnot(pSDKAnnot) : ai.GetPrevAnnot(pSDKAnnot);
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pSDKAnnot);
+ CPDFSDK_AnnotIterator ai(pWidget->GetPageView(), pWidget->GetAnnotSubtype());
+ return bNext ? ai.GetNextAnnot(pWidget) : ai.GetPrevAnnot(pWidget);
}
diff --git a/fpdfsdk/cpdfsdk_widget.h b/fpdfsdk/cpdfsdk_widget.h
index 97971c8342..1349981293 100644
--- a/fpdfsdk/cpdfsdk_widget.h
+++ b/fpdfsdk/cpdfsdk_widget.h
@@ -144,4 +144,10 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
#endif // PDF_ENABLE_XFA
};
+inline CPDFSDK_Widget* ToCPDFSDKWidget(CPDFSDK_Annot* pAnnot) {
+ return pAnnot && pAnnot->GetAnnotSubtype() == CPDF_Annot::Subtype::WIDGET
+ ? static_cast<CPDFSDK_Widget*>(pAnnot)
+ : nullptr;
+}
+
#endif // FPDFSDK_CPDFSDK_WIDGET_H_
diff --git a/fpdfsdk/cpdfsdk_widgethandler.cpp b/fpdfsdk/cpdfsdk_widgethandler.cpp
index a21063d55e..12ae17372a 100644
--- a/fpdfsdk/cpdfsdk_widgethandler.cpp
+++ b/fpdfsdk/cpdfsdk_widgethandler.cpp
@@ -31,11 +31,10 @@ CPDFSDK_WidgetHandler::CPDFSDK_WidgetHandler(
CPDFSDK_WidgetHandler::~CPDFSDK_WidgetHandler() {}
bool CPDFSDK_WidgetHandler::CanAnswer(CPDFSDK_Annot* pAnnot) {
- ASSERT(pAnnot->GetAnnotSubtype() == CPDF_Annot::Subtype::WIDGET);
- if (pAnnot->IsSignatureWidget())
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot);
+ if (pWidget->IsSignatureWidget())
return false;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot);
if (!pWidget->IsVisible())
return false;
diff --git a/fpdfsdk/formfiller/cffl_formfiller.cpp b/fpdfsdk/formfiller/cffl_formfiller.cpp
index 6174dde9ae..94592e719f 100644
--- a/fpdfsdk/formfiller/cffl_formfiller.cpp
+++ b/fpdfsdk/formfiller/cffl_formfiller.cpp
@@ -16,14 +16,6 @@
#include "fpdfsdk/cpdfsdk_widget.h"
#include "fpdfsdk/formfiller/cba_fontmap.h"
-namespace {
-
-CPDFSDK_Widget* CPDFSDKAnnotToWidget(CPDFSDK_Annot* annot) {
- return static_cast<CPDFSDK_Widget*>(annot);
-}
-
-} // namespace
-
CFFL_FormFiller::CFFL_FormFiller(CPDFSDK_FormFillEnvironment* pFormFillEnv,
CPDFSDK_Widget* pWidget)
: m_pFormFillEnv(pFormFillEnv), m_pWidget(pWidget), m_bValid(false) {
@@ -71,8 +63,6 @@ void CFFL_FormFiller::OnDraw(CPDFSDK_PageView* pPageView,
CPDFSDK_Annot* pAnnot,
CFX_RenderDevice* pDevice,
const CFX_Matrix& mtUser2Device) {
- ASSERT(pAnnot->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
-
if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, false)) {
CFX_Matrix mt = GetCurMatrix();
mt.Concat(mtUser2Device);
@@ -80,7 +70,7 @@ void CFFL_FormFiller::OnDraw(CPDFSDK_PageView* pPageView,
return;
}
- CPDFSDK_Widget* pWidget = CPDFSDKAnnotToWidget(pAnnot);
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot);
if (!CFFL_InteractiveFormFiller::IsVisible(pWidget))
return;
@@ -91,8 +81,8 @@ void CFFL_FormFiller::OnDrawDeactive(CPDFSDK_PageView* pPageView,
CPDFSDK_Annot* pAnnot,
CFX_RenderDevice* pDevice,
const CFX_Matrix& mtUser2Device) {
- CPDFSDKAnnotToWidget(pAnnot)->DrawAppearance(pDevice, mtUser2Device,
- CPDF_Annot::Normal, nullptr);
+ ToCPDFSDKWidget(pAnnot)->DrawAppearance(pDevice, mtUser2Device,
+ CPDF_Annot::Normal, nullptr);
}
void CFFL_FormFiller::OnMouseEnter(CPDFSDK_PageView* pPageView,
diff --git a/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp b/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
index 3db7aa9ab9..d73aaf93b3 100644
--- a/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
+++ b/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
@@ -118,7 +118,7 @@ void CFFL_InteractiveFormFiller::OnMouseEnter(
uint32_t nFlag) {
ASSERT((*pAnnot)->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
if (!m_bNotifying) {
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (pWidget->GetAAction(CPDF_AAction::CursorEnter).GetDict()) {
m_bNotifying = true;
@@ -151,7 +151,7 @@ void CFFL_InteractiveFormFiller::OnMouseExit(CPDFSDK_PageView* pPageView,
uint32_t nFlag) {
ASSERT((*pAnnot)->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
if (!m_bNotifying) {
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (pWidget->GetAAction(CPDF_AAction::CursorExit).GetDict()) {
m_bNotifying = true;
@@ -186,7 +186,7 @@ bool CFFL_InteractiveFormFiller::OnLButtonDown(
const CFX_PointF& point) {
ASSERT((*pAnnot)->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
if (!m_bNotifying) {
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (Annot_HitTest(pPageView, pAnnot->Get(), point) &&
pWidget->GetAAction(CPDF_AAction::ButtonDown).GetDict()) {
m_bNotifying = true;
@@ -224,7 +224,7 @@ bool CFFL_InteractiveFormFiller::OnLButtonUp(CPDFSDK_PageView* pPageView,
uint32_t nFlags,
const CFX_PointF& point) {
ASSERT((*pAnnot)->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
bool bSetFocus;
switch (pWidget->GetFieldType()) {
@@ -263,7 +263,7 @@ bool CFFL_InteractiveFormFiller::OnButtonUp(CPDFSDK_Annot::ObservedPtr* pAnnot,
if (m_bNotifying)
return false;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (!pWidget->GetAAction(CPDF_AAction::ButtonUp).GetDict())
return false;
@@ -371,7 +371,7 @@ bool CFFL_InteractiveFormFiller::OnSetFocus(CPDFSDK_Annot::ObservedPtr* pAnnot,
ASSERT((*pAnnot)->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
if (!m_bNotifying) {
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (pWidget->GetAAction(CPDF_AAction::GetFocus).GetDict()) {
m_bNotifying = true;
@@ -426,7 +426,7 @@ bool CFFL_InteractiveFormFiller::OnKillFocus(CPDFSDK_Annot::ObservedPtr* pAnnot,
if (m_bNotifying)
return true;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (!pWidget->GetAAction(CPDF_AAction::LoseFocus).GetDict())
return true;
@@ -475,8 +475,7 @@ CFFL_FormFiller* CFFL_InteractiveFormFiller::GetFormFiller(
if (!bRegister)
return nullptr;
- // TODO(thestig): How do we know |pAnnot| is a CPDFSDK_Widget?
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot);
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot);
FormFieldType fieldType = pWidget->GetFieldType();
CFFL_FormFiller* pFormFiller;
switch (fieldType) {
@@ -633,7 +632,7 @@ bool CFFL_InteractiveFormFiller::OnKeyStrokeCommit(
if (m_bNotifying)
return true;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (!pWidget->GetAAction(CPDF_AAction::KeyStroke).GetDict())
return true;
@@ -665,7 +664,7 @@ bool CFFL_InteractiveFormFiller::OnValidate(CPDFSDK_Annot::ObservedPtr* pAnnot,
if (m_bNotifying)
return true;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (!pWidget->GetAAction(CPDF_AAction::Validate).GetDict())
return true;
@@ -696,7 +695,7 @@ void CFFL_InteractiveFormFiller::OnCalculate(CPDFSDK_Annot::ObservedPtr* pAnnot,
if (m_bNotifying)
return;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (pWidget) {
CPDFSDK_InterForm* pInterForm = pPageView->GetFormFillEnv()->GetInterForm();
pInterForm->OnCalculate(pWidget->GetFormField());
@@ -710,7 +709,7 @@ void CFFL_InteractiveFormFiller::OnFormat(CPDFSDK_Annot::ObservedPtr* pAnnot,
if (m_bNotifying)
return;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
ASSERT(pWidget);
CPDFSDK_InterForm* pInterForm = pPageView->GetFormFillEnv()->GetInterForm();
@@ -734,7 +733,7 @@ bool CFFL_InteractiveFormFiller::OnClick(CPDFSDK_Annot::ObservedPtr* pAnnot,
if (m_bNotifying)
return false;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (!pWidget->HasXFAAAction(PDFSDK_XFA_Click))
return false;
@@ -764,7 +763,7 @@ bool CFFL_InteractiveFormFiller::OnFull(CPDFSDK_Annot::ObservedPtr* pAnnot,
if (m_bNotifying)
return false;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (!pWidget->HasXFAAAction(PDFSDK_XFA_Full))
return false;
@@ -817,7 +816,7 @@ bool CFFL_InteractiveFormFiller::OnPreOpen(CPDFSDK_Annot::ObservedPtr* pAnnot,
if (m_bNotifying)
return false;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (!pWidget->HasXFAAAction(PDFSDK_XFA_PreOpen))
return false;
@@ -848,7 +847,7 @@ bool CFFL_InteractiveFormFiller::OnPostOpen(CPDFSDK_Annot::ObservedPtr* pAnnot,
if (m_bNotifying)
return false;
- CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot->Get());
+ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot->Get());
if (!pWidget->HasXFAAAction(PDFSDK_XFA_PostOpen))
return false;