Chromium Code Reviews| Index: fpdfsdk/javascript/Annot.cpp |
| diff --git a/fpdfsdk/javascript/Annot.cpp b/fpdfsdk/javascript/Annot.cpp |
| index df123274d52d92fee5eccc3cbd692a42b880ad6b..95a428a9a5893c56ae2cd9a0ae656c5f03209f45 100644 |
| --- a/fpdfsdk/javascript/Annot.cpp |
| +++ b/fpdfsdk/javascript/Annot.cpp |
| @@ -11,6 +11,14 @@ |
| #include "fpdfsdk/javascript/JS_Value.h" |
| #include "fpdfsdk/javascript/cjs_context.h" |
| +namespace { |
| + |
| +CPDFSDK_BAAnnot* ToBAAnnot(CPDFSDK_Annot* annot) { |
| + return static_cast<CPDFSDK_BAAnnot*>(annot); |
| +} |
| + |
| +} // namespace |
| + |
| BEGIN_JS_STATIC_CONST(CJS_Annot) |
| END_JS_STATIC_CONST() |
| @@ -32,8 +40,12 @@ Annot::~Annot() {} |
| FX_BOOL Annot::hidden(IJS_Context* cc, |
| CJS_PropValue& vp, |
| CFX_WideString& sError) { |
| + CPDFSDK_BAAnnot* baAnnot = ToBAAnnot(m_pAnnot); |
| + if (!baAnnot) |
| + return FALSE; |
| + |
| if (vp.IsGetting()) { |
| - CPDF_Annot* pPDFAnnot = m_BAAnnot->GetPDFAnnot(); |
| + CPDF_Annot* pPDFAnnot = baAnnot->GetPDFAnnot(); |
| vp << CPDF_Annot::IsAnnotationHidden(pPDFAnnot->GetAnnotDict()); |
| return TRUE; |
| } |
| @@ -41,7 +53,7 @@ FX_BOOL Annot::hidden(IJS_Context* cc, |
| bool bHidden; |
| vp >> bHidden; |
| - uint32_t flags = m_BAAnnot->GetFlags(); |
| + uint32_t flags = baAnnot->GetFlags(); |
| if (bHidden) { |
| flags |= ANNOTFLAG_HIDDEN; |
| flags |= ANNOTFLAG_INVISIBLE; |
| @@ -53,21 +65,25 @@ FX_BOOL Annot::hidden(IJS_Context* cc, |
| flags &= ~ANNOTFLAG_NOVIEW; |
| flags |= ANNOTFLAG_PRINT; |
| } |
| - m_BAAnnot->SetFlags(flags); |
| + baAnnot->SetFlags(flags); |
| return TRUE; |
| } |
| FX_BOOL Annot::name(IJS_Context* cc, |
| CJS_PropValue& vp, |
| CFX_WideString& sError) { |
| + CPDFSDK_BAAnnot* baAnnot = ToBAAnnot(m_pAnnot); |
| + if (!baAnnot) |
| + return FALSE; |
| + |
| if (vp.IsGetting()) { |
| - vp << m_BAAnnot->GetAnnotName(); |
| + vp << baAnnot->GetAnnotName(); |
| return TRUE; |
| } |
| CFX_WideString annotName; |
| vp >> annotName; |
| - m_BAAnnot->SetAnnotName(annotName); |
| + baAnnot->SetAnnotName(annotName); |
| return TRUE; |
| } |
| @@ -80,10 +96,15 @@ FX_BOOL Annot::type(IJS_Context* cc, |
| return FALSE; |
| } |
| - vp << m_BAAnnot->GetType(); |
| + CPDFSDK_BAAnnot* baAnnot = ToBAAnnot(m_pAnnot); |
|
dsinclair
2016/09/13 18:28:35
Merge conflicted here.
|
| + if (!baAnnot) |
| + return FALSE; |
| + |
| + vp << baAnnot->GetType(); |
| return TRUE; |
| } |
| void Annot::SetSDKAnnot(CPDFSDK_BAAnnot* annot) { |
| - m_BAAnnot = annot; |
| + m_pAnnot = annot; |
| + m_pObserver.reset(new CPDFSDK_Annot::Observer(&m_pAnnot)); |
| } |