Add Observable::ObservedPtr::HasObservable().

if (pObserved->HasObservable()) is more readable than if (*pObserved).

Change-Id: I61ad3deb8e9f30cdc120a05555c2558f34489681
Reviewed-on: https://pdfium-review.googlesource.com/c/43811
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxcrt/observable.h b/core/fxcrt/observable.h
index e118dc8..3205bc0 100644
--- a/core/fxcrt/observable.h
+++ b/core/fxcrt/observable.h
@@ -46,6 +46,7 @@
       ASSERT(m_pObservable);
       m_pObservable = nullptr;
     }
+    bool HasObservable() const { return !!m_pObservable; }
     ObservedPtr& operator=(const ObservedPtr& that) {
       Reset(that.Get());
       return *this;
@@ -54,7 +55,7 @@
       return m_pObservable == that.m_pObservable;
     }
     bool operator!=(const ObservedPtr& that) const { return !(*this == that); }
-    explicit operator bool() const { return !!m_pObservable; }
+    explicit operator bool() const { return HasObservable(); }
     T* Get() const { return m_pObservable; }
     T& operator*() const { return *m_pObservable; }
     T* operator->() const { return m_pObservable; }
diff --git a/fpdfsdk/cpdfsdk_annothandlermgr.cpp b/fpdfsdk/cpdfsdk_annothandlermgr.cpp
index 3dc3f09..ac22fe2 100644
--- a/fpdfsdk/cpdfsdk_annothandlermgr.cpp
+++ b/fpdfsdk/cpdfsdk_annothandlermgr.cpp
@@ -130,7 +130,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnLButtonDown(pPageView, pAnnot, nFlags, point);
 }
@@ -140,7 +140,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnLButtonUp(pPageView, pAnnot, nFlags, point);
 }
@@ -150,7 +150,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnMouseMove(pPageView, pAnnot, nFlags, point);
 }
@@ -161,7 +161,7 @@
     uint32_t nFlags,
     short zDelta,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, point);
 }
@@ -171,7 +171,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnRButtonDown(pPageView, pAnnot, nFlags, point);
 }
@@ -181,7 +181,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())
       ->OnRButtonUp(pPageView, pAnnot, nFlags, point);
 }
@@ -190,7 +190,7 @@
     CPDFSDK_PageView* pPageView,
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlag) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   GetAnnotHandler(pAnnot->Get())->OnMouseEnter(pPageView, pAnnot, nFlag);
 }
 
@@ -198,7 +198,7 @@
     CPDFSDK_PageView* pPageView,
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlag) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   GetAnnotHandler(pAnnot->Get())->OnMouseExit(pPageView, pAnnot, nFlag);
 }
 
@@ -233,14 +233,14 @@
 bool CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlag) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())->OnSetFocus(pAnnot, nFlag);
 }
 
 bool CPDFSDK_AnnotHandlerMgr::Annot_OnKillFocus(
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlag) {
-  ASSERT(*pAnnot);
+  ASSERT(pAnnot->HasObservable());
   return GetAnnotHandler(pAnnot->Get())->OnKillFocus(pAnnot, nFlag);
 }
 
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
index 155fcc0..52dfb52 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
@@ -646,7 +646,7 @@
     return true;
   if (m_pFocusAnnot && !KillFocusAnnot(0))
     return false;
-  if (!*pAnnot)
+  if (!pAnnot->HasObservable())
     return false;
 
   CPDFSDK_PageView* pPageView = (*pAnnot)->GetPageView();
diff --git a/fpdfsdk/cpdfsdk_xfawidgethandler.cpp b/fpdfsdk/cpdfsdk_xfawidgethandler.cpp
index 75a5c12..1660f86 100644
--- a/fpdfsdk/cpdfsdk_xfawidgethandler.cpp
+++ b/fpdfsdk/cpdfsdk_xfawidgethandler.cpp
@@ -180,7 +180,7 @@
 void CPDFSDK_XFAWidgetHandler::OnMouseEnter(CPDFSDK_PageView* pPageView,
                                             CPDFSDK_Annot::ObservedPtr* pAnnot,
                                             uint32_t nFlag) {
-  if (!pPageView || !(*pAnnot))
+  if (!pPageView || !pAnnot->HasObservable())
     return;
   CXFA_FFWidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot->Get());
   pWidgetHandler->OnMouseEnter((*pAnnot)->GetXFAWidget());
@@ -189,7 +189,7 @@
 void CPDFSDK_XFAWidgetHandler::OnMouseExit(CPDFSDK_PageView* pPageView,
                                            CPDFSDK_Annot::ObservedPtr* pAnnot,
                                            uint32_t nFlag) {
-  if (!pPageView || !(*pAnnot))
+  if (!pPageView || !pAnnot->HasObservable())
     return;
 
   CXFA_FFWidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot->Get());
@@ -200,7 +200,7 @@
                                              CPDFSDK_Annot::ObservedPtr* pAnnot,
                                              uint32_t nFlags,
                                              const CFX_PointF& point) {
-  if (!pPageView || !(*pAnnot))
+  if (!pPageView || !pAnnot->HasObservable())
     return false;
 
   CXFA_FFWidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot->Get());
@@ -212,7 +212,7 @@
                                            CPDFSDK_Annot::ObservedPtr* pAnnot,
                                            uint32_t nFlags,
                                            const CFX_PointF& point) {
-  if (!pPageView || !(*pAnnot))
+  if (!pPageView || !pAnnot->HasObservable())
     return false;
 
   CXFA_FFWidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot->Get());
@@ -225,7 +225,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  if (!pPageView || !(*pAnnot))
+  if (!pPageView || !pAnnot->HasObservable())
     return false;
 
   CXFA_FFWidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot->Get());
@@ -237,7 +237,7 @@
                                            CPDFSDK_Annot::ObservedPtr* pAnnot,
                                            uint32_t nFlags,
                                            const CFX_PointF& point) {
-  if (!pPageView || !(*pAnnot))
+  if (!pPageView || !pAnnot->HasObservable())
     return false;
 
   CXFA_FFWidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot->Get());
@@ -250,7 +250,7 @@
                                             uint32_t nFlags,
                                             short zDelta,
                                             const CFX_PointF& point) {
-  if (!pPageView || !(*pAnnot))
+  if (!pPageView || !pAnnot->HasObservable())
     return false;
 
   CXFA_FFWidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot->Get());
@@ -262,7 +262,7 @@
                                              CPDFSDK_Annot::ObservedPtr* pAnnot,
                                              uint32_t nFlags,
                                              const CFX_PointF& point) {
-  if (!pPageView || !(*pAnnot))
+  if (!pPageView || !pAnnot->HasObservable())
     return false;
 
   CXFA_FFWidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot->Get());
@@ -274,7 +274,7 @@
                                            CPDFSDK_Annot::ObservedPtr* pAnnot,
                                            uint32_t nFlags,
                                            const CFX_PointF& point) {
-  if (!pPageView || !(*pAnnot))
+  if (!pPageView || !pAnnot->HasObservable())
     return false;
 
   CXFA_FFWidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot->Get());
@@ -287,7 +287,7 @@
     CPDFSDK_Annot::ObservedPtr* pAnnot,
     uint32_t nFlags,
     const CFX_PointF& point) {
-  if (!pPageView || !(*pAnnot))
+  if (!pPageView || !pAnnot->HasObservable())
     return false;
 
   CXFA_FFWidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot->Get());
@@ -351,9 +351,9 @@
     CPDFSDK_Annot::ObservedPtr* pOldAnnot,
     CPDFSDK_Annot::ObservedPtr* pNewAnnot) {
   CXFA_FFWidgetHandler* pWidgetHandler = nullptr;
-  if (*pOldAnnot)
+  if (pOldAnnot->HasObservable())
     pWidgetHandler = GetXFAWidgetHandler(pOldAnnot->Get());
-  else if (*pNewAnnot)
+  else if (pNewAnnot->HasObservable())
     pWidgetHandler = GetXFAWidgetHandler(pNewAnnot->Get());
 
   if (!pWidgetHandler)
diff --git a/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp b/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
index cb36de7..e1d28c8 100644
--- a/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
+++ b/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
@@ -130,7 +130,7 @@
       fa.bShift = CPDFSDK_FormFillEnvironment::IsSHIFTKeyDown(nFlag);
       pWidget->OnAAction(CPDF_AAction::CursorEnter, &fa, pPageView);
       m_bNotifying = false;
-      if (!(*pAnnot))
+      if (!pAnnot->HasObservable())
         return;
 
       if (pWidget->IsAppModified()) {
@@ -163,7 +163,7 @@
       fa.bShift = CPDFSDK_FormFillEnvironment::IsSHIFTKeyDown(nFlag);
       pWidget->OnAAction(CPDF_AAction::CursorExit, &fa, pPageView);
       m_bNotifying = false;
-      if (!(*pAnnot))
+      if (!pAnnot->HasObservable())
         return;
 
       if (pWidget->IsAppModified()) {
@@ -199,7 +199,7 @@
       fa.bShift = CPDFSDK_FormFillEnvironment::IsSHIFTKeyDown(nFlags);
       pWidget->OnAAction(CPDF_AAction::ButtonDown, &fa, pPageView);
       m_bNotifying = false;
-      if (!(*pAnnot))
+      if (!pAnnot->HasObservable())
         return true;
 
       if (!IsValidAnnot(pPageView, pAnnot->Get()))
@@ -277,7 +277,7 @@
   fa.bShift = CPDFSDK_FormFillEnvironment::IsSHIFTKeyDown(nFlag);
   pWidget->OnAAction(CPDF_AAction::ButtonUp, &fa, pPageView);
   m_bNotifying = false;
-  if (!(*pAnnot) || !IsValidAnnot(pPageView, pWidget))
+  if (!pAnnot->HasObservable() || !IsValidAnnot(pPageView, pWidget))
     return true;
   if (nAge == pWidget->GetAppearanceAge())
     return false;
@@ -365,7 +365,7 @@
 
 bool CFFL_InteractiveFormFiller::OnSetFocus(CPDFSDK_Annot::ObservedPtr* pAnnot,
                                             uint32_t nFlag) {
-  if (!(*pAnnot))
+  if (!pAnnot->HasObservable())
     return false;
 
   ASSERT((*pAnnot)->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
@@ -390,7 +390,7 @@
       pFormFiller->GetActionData(pPageView, CPDF_AAction::GetFocus, fa);
       pWidget->OnAAction(CPDF_AAction::GetFocus, &fa, pPageView);
       m_bNotifying = false;
-      if (!(*pAnnot))
+      if (!pAnnot->HasObservable())
         return false;
 
       if (pWidget->IsAppModified()) {
@@ -410,7 +410,7 @@
 
 bool CFFL_InteractiveFormFiller::OnKillFocus(CPDFSDK_Annot::ObservedPtr* pAnnot,
                                              uint32_t nFlag) {
-  if (!(*pAnnot))
+  if (!pAnnot->HasObservable())
     return false;
 
   ASSERT((*pAnnot)->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
@@ -419,7 +419,7 @@
     return true;
 
   pFormFiller->KillFocusForAnnot(pAnnot->Get(), nFlag);
-  if (!(*pAnnot))
+  if (!pAnnot->HasObservable())
     return false;
 
   if (m_bNotifying)
@@ -441,7 +441,7 @@
   pFormFiller->GetActionData(pPageView, CPDF_AAction::LoseFocus, fa);
   pWidget->OnAAction(CPDF_AAction::LoseFocus, &fa, pPageView);
   m_bNotifying = false;
-  return !!(*pAnnot);
+  return pAnnot->HasObservable();
 }
 
 bool CFFL_InteractiveFormFiller::IsVisible(CPDFSDK_Widget* pWidget) {
@@ -656,7 +656,7 @@
   pFormFiller->GetActionData(pPageView, CPDF_AAction::KeyStroke, fa);
   pFormFiller->SaveState(pPageView);
   pWidget->OnAAction(CPDF_AAction::KeyStroke, &fa, pPageView);
-  if (!(*pAnnot))
+  if (!pAnnot->HasObservable())
     return true;
 
   m_bNotifying = false;
@@ -687,7 +687,7 @@
   pFormFiller->GetActionData(pPageView, CPDF_AAction::Validate, fa);
   pFormFiller->SaveState(pPageView);
   pWidget->OnAAction(CPDF_AAction::Validate, &fa, pPageView);
-  if (!(*pAnnot))
+  if (!pAnnot->HasObservable())
     return true;
 
   m_bNotifying = false;
@@ -719,7 +719,7 @@
   CPDFSDK_InterForm* pInterForm = pPageView->GetFormFillEnv()->GetInterForm();
 
   Optional<WideString> sValue = pInterForm->OnFormat(pWidget->GetFormField());
-  if (!(*pAnnot))
+  if (!pAnnot->HasObservable())
     return;
 
   if (sValue.has_value()) {
@@ -751,7 +751,7 @@
 
   pWidget->OnXFAAAction(PDFSDK_XFA_Click, &fa, pPageView);
   m_bNotifying = false;
-  if (!(*pAnnot) || !IsValidAnnot(pPageView, pWidget))
+  if (!pAnnot->HasObservable() || !IsValidAnnot(pPageView, pWidget))
     return true;
   if (nAge == pWidget->GetAppearanceAge())
     return false;
@@ -781,7 +781,7 @@
 
   pWidget->OnXFAAAction(PDFSDK_XFA_Full, &fa, pPageView);
   m_bNotifying = false;
-  if (!(*pAnnot) || !IsValidAnnot(pPageView, pWidget))
+  if (!pAnnot->HasObservable() || !IsValidAnnot(pPageView, pWidget))
     return true;
   if (nAge == pWidget->GetAppearanceAge())
     return false;
@@ -834,7 +834,7 @@
 
   pWidget->OnXFAAAction(PDFSDK_XFA_PreOpen, &fa, pPageView);
   m_bNotifying = false;
-  if (!(*pAnnot) || !IsValidAnnot(pPageView, pWidget))
+  if (!pAnnot->HasObservable() || !IsValidAnnot(pPageView, pWidget))
     return true;
   if (nAge == pWidget->GetAppearanceAge())
     return false;
@@ -865,7 +865,7 @@
 
   pWidget->OnXFAAAction(PDFSDK_XFA_PostOpen, &fa, pPageView);
   m_bNotifying = false;
-  if (!(*pAnnot) || !IsValidAnnot(pPageView, pWidget))
+  if (!pAnnot->HasObservable() || !IsValidAnnot(pPageView, pWidget))
     return true;
   if (nAge == pWidget->GetAppearanceAge())
     return false;