diff options
author | weili <weili@chromium.org> | 2016-08-08 17:30:37 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-08 17:30:37 -0700 |
commit | 5d8e5aa882fe8d37d32b71137f039165581ddb82 (patch) | |
tree | a0a2b0efa1ee6f8fd06c964f4b9cda5f551c74ae /xfa/fwl/lightwidget/cfwl_barcode.cpp | |
parent | b6befb2ed2485a3805cddea86dc7574510178ea9 (diff) | |
download | pdfium-5d8e5aa882fe8d37d32b71137f039165581ddb82.tar.xz |
Use virtual function to retrieve interface pointer
Use virtual function to return the actual interface type instead
of the base interface type to avoid a lot of casts.
Also tidy up CFWL_Widget by encapsulating variables, and use
smart pointers for class owned member variables.
Review-Url: https://codereview.chromium.org/2209153002
Diffstat (limited to 'xfa/fwl/lightwidget/cfwl_barcode.cpp')
-rw-r--r-- | xfa/fwl/lightwidget/cfwl_barcode.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/xfa/fwl/lightwidget/cfwl_barcode.cpp b/xfa/fwl/lightwidget/cfwl_barcode.cpp index 2e29d63f34..24dce17fee 100644 --- a/xfa/fwl/lightwidget/cfwl_barcode.cpp +++ b/xfa/fwl/lightwidget/cfwl_barcode.cpp @@ -8,6 +8,14 @@ #include <memory> +IFWL_Barcode* CFWL_Barcode::GetWidget() { + return static_cast<IFWL_Barcode*>(m_pIface.get()); +} + +const IFWL_Barcode* CFWL_Barcode::GetWidget() const { + return static_cast<IFWL_Barcode*>(m_pIface.get()); +} + CFWL_Barcode* CFWL_Barcode::Create() { return new CFWL_Barcode; } @@ -24,7 +32,7 @@ FWL_Error CFWL_Barcode::Initialize(const CFWL_WidgetProperties* pProperties) { if (ret != FWL_Error::Succeeded) { return ret; } - m_pIface = pBarcode.release(); + m_pIface = std::move(pBarcode); CFWL_Widget::Initialize(); return FWL_Error::Succeeded; } @@ -34,15 +42,12 @@ CFWL_Barcode::CFWL_Barcode() {} CFWL_Barcode::~CFWL_Barcode() {} void CFWL_Barcode::SetType(BC_TYPE type) { - if (!m_pIface) - return; - static_cast<IFWL_Barcode*>(m_pIface)->SetType(type); + if (GetWidget()) + GetWidget()->SetType(type); } FX_BOOL CFWL_Barcode::IsProtectedType() { - if (!m_pIface) - return 0; - return static_cast<IFWL_Barcode*>(m_pIface)->IsProtectedType(); + return GetWidget() ? GetWidget()->IsProtectedType() : FALSE; } CFWL_Barcode::CFWL_BarcodeDP::CFWL_BarcodeDP() |