summaryrefslogtreecommitdiff
path: root/sw/inc/unotbl.hxx
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-12-04 11:52:53 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-12-04 11:07:34 +0000
commit9e2973dbb90b5d9ce004cbf333f5000e4d50dc18 (patch)
tree039d1dba4fcd8fd0db8eb8e94be113201da128e6 /sw/inc/unotbl.hxx
parentb1ff7054a0d7c12e0961c7a78bb2626b33c7f0d1 (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.hxx24
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(