diff options
author | Noel Grandin <noel@peralex.com> | 2015-12-04 11:52:53 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-12-04 11:07:34 +0000 |
commit | 9e2973dbb90b5d9ce004cbf333f5000e4d50dc18 (patch) | |
tree | 039d1dba4fcd8fd0db8eb8e94be113201da128e6 /sw/inc/unotbl.hxx | |
parent | b1ff7054a0d7c12e0961c7a78bb2626b33c7f0d1 (diff) |
fix SwClient crash in SwXNumberingRules/SwXTableRows/SwXTableColumns
was generated a crash when running 'make check' on my Linux box.
These classes need to hold the SolarMutex when destructing their
SwClient base class.
Change-Id: I448ea00978d003aa37d8663d37b4edf9e54a6a56
Reviewed-on: https://gerrit.libreoffice.org/20391
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'sw/inc/unotbl.hxx')
-rw-r--r-- | sw/inc/unotbl.hxx | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/sw/inc/unotbl.hxx b/sw/inc/unotbl.hxx index 96323c274809..5de9902516be 100644 --- a/sw/inc/unotbl.hxx +++ b/sw/inc/unotbl.hxx @@ -547,11 +547,12 @@ class SwXTableRows final : public cppu::WeakImplHelper < css::table::XTableRows, css::lang::XServiceInfo ->, - public SwClient - +> { - SwFrameFormat* GetFrameFormat() { return static_cast<SwFrameFormat*>(GetRegisteredIn()); } +private: + class Impl; + ::sw::UnoImplPtr<Impl> m_pImpl; + SwFrameFormat* GetFrameFormat(); const SwFrameFormat* GetFrameFormat() const { return const_cast<SwXTableRows*>(this)->GetFrameFormat(); } protected: virtual ~SwXTableRows(); @@ -579,20 +580,18 @@ public: virtual OUString SAL_CALL getImplementationName() throw( css::uno::RuntimeException, std::exception ) override; virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( css::uno::RuntimeException, std::exception ) override; virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( css::uno::RuntimeException, std::exception ) override; - - //SwClient - virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) override; }; class SwXTableColumns : public cppu::WeakImplHelper < css::table::XTableColumns, css::lang::XServiceInfo ->, - public SwClient - +> { - SwFrameFormat* GetFrameFormat() const { return const_cast<SwFrameFormat*>(static_cast<const SwFrameFormat*>(GetRegisteredIn())); } +private: + class Impl; + ::sw::UnoImplPtr<Impl> m_pImpl; + SwFrameFormat* GetFrameFormat() const; protected: virtual ~SwXTableColumns(); public: @@ -619,9 +618,6 @@ public: virtual OUString SAL_CALL getImplementationName() throw( css::uno::RuntimeException, std::exception ) override; virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( css::uno::RuntimeException, std::exception ) override; virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( css::uno::RuntimeException, std::exception ) override; - - //SwClient - virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) override; }; int sw_CompareCellRanges( |