[Libreoffice-commits] core.git: 6 commits - accessibility/inc accessibility/source include/xmloff linguistic/inc linguistic/source vcl/unx xmloff/source
Noel Grandin
noel.grandin at collabora.co.uk
Tue Jan 17 09:00:33 UTC 2017
accessibility/inc/extended/AccessibleBrowseBox.hxx | 11 -
accessibility/inc/extended/AccessibleGridControl.hxx | 15 -
accessibility/source/extended/AccessibleBrowseBox.cxx | 75 +++----
accessibility/source/extended/AccessibleGridControl.cxx | 127 +++++--------
include/xmloff/xmlexp.hxx | 7
linguistic/inc/iprcache.hxx | 9
linguistic/source/iprcache.cxx | 11 -
linguistic/source/lngsvcmgr.cxx | 155 +++++++---------
linguistic/source/lngsvcmgr.hxx | 25 --
vcl/unx/generic/dtrans/X11_droptarget.cxx | 16 -
vcl/unx/generic/dtrans/X11_selection.hxx | 7
xmloff/source/core/xmlexp.cxx | 30 +--
12 files changed, 210 insertions(+), 278 deletions(-)
New commits:
commit eede420e30b7b69aedd5050d1d335e20c584559a
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jan 16 15:54:44 2017 +0200
use rtl::Reference in AccessibleGridControlAccess
instead of storing both raw pointers and uno::Reference
Change-Id: Ie2306b619bec81707c5cff4debb8c7462ac2f9a1
diff --git a/accessibility/inc/extended/AccessibleGridControl.hxx b/accessibility/inc/extended/AccessibleGridControl.hxx
index c99ac4e..703ea09 100644
--- a/accessibility/inc/extended/AccessibleGridControl.hxx
+++ b/accessibility/inc/extended/AccessibleGridControl.hxx
@@ -164,14 +164,9 @@ class AccessibleGridControlAccess :
,public ::svt::table::IAccessibleTableControl
{
private:
- css::uno::Reference< css::accessibility::XAccessible >
- m_xParent;
- ::svt::table::IAccessibleTable * m_pTable;
-
- css::uno::Reference< css::accessibility::XAccessibleContext >
- m_xContext;
- AccessibleGridControl* m_pContext;
- // note that this pointer is valid as long as m_xContext is valid!
+ css::uno::Reference< css::accessibility::XAccessible > m_xParent;
+ ::svt::table::IAccessibleTable * m_pTable;
+ rtl::Reference<AccessibleGridControl> m_xContext;
public:
AccessibleGridControlAccess(
@@ -180,7 +175,7 @@ public:
);
/// returns the AccessibleContext belonging to this Accessible
- inline AccessibleGridControl* getContext() { return m_pContext; }
+ inline AccessibleGridControl* getContext() { return m_xContext.get(); }
protected:
virtual ~AccessibleGridControlAccess() override;
@@ -198,7 +193,7 @@ protected:
void DisposeAccessImpl() override;
virtual bool isAlive() const override
{
- return m_pContext && m_pContext->isAlive();
+ return m_xContext.is() && m_xContext->isAlive();
}
virtual void commitCellEvent( sal_Int16 nEventId,
const css::uno::Any& rNewValue, const css::uno::Any& rOldValue ) override
diff --git a/accessibility/source/extended/AccessibleGridControl.cxx b/accessibility/source/extended/AccessibleGridControl.cxx
index b486f62..1203e9a 100644
--- a/accessibility/source/extended/AccessibleGridControl.cxx
+++ b/accessibility/source/extended/AccessibleGridControl.cxx
@@ -47,20 +47,16 @@ public:
css::uno::WeakReference< css::accessibility::XAccessible > m_aCreator;
/** The data table child. */
- css::uno::Reference< css::accessibility::XAccessible > m_xTable;
- AccessibleGridControlTable* m_pTable;
+ rtl::Reference<AccessibleGridControlTable> m_xTable;
/** The header bar for rows. */
- css::uno::Reference< css::accessibility::XAccessible > m_xRowHeaderBar;
- AccessibleGridControlHeader* m_pRowHeaderBar;
+ rtl::Reference<AccessibleGridControlHeader> m_xRowHeaderBar;
/** The header bar for columns (first row of the table). */
- css::uno::Reference< css::accessibility::XAccessible > m_xColumnHeaderBar;
- AccessibleGridControlHeader* m_pColumnHeaderBar;
+ rtl::Reference<AccessibleGridControlHeader> m_xColumnHeaderBar;
/** The table cell child. */
- css::uno::Reference< css::accessibility::XAccessible > m_xCell;
- AccessibleGridControlTableCell* m_pCell;
+ rtl::Reference<AccessibleGridControlTableCell> m_xCell;
};
@@ -83,29 +79,28 @@ void SAL_CALL AccessibleGridControl::disposing()
{
SolarMutexGuard g;
- m_xImpl->m_pTable = nullptr;
- m_xImpl->m_pColumnHeaderBar = nullptr;
- m_xImpl->m_pRowHeaderBar = nullptr;
- m_xImpl->m_pCell = nullptr;
m_xImpl->m_aCreator.clear();
- css::uno::Reference< css::accessibility::XAccessible > xTable = m_xImpl->m_xTable;
-
- css::uno::Reference< XComponent > xComp( m_xImpl->m_xTable, UNO_QUERY );
- if ( xComp.is() )
+ if ( m_xImpl->m_xTable.is() )
{
- xComp->dispose();
+ m_xImpl->m_xTable->dispose();
+ m_xImpl->m_xTable.clear();
}
- css::uno::Reference< css::accessibility::XAccessible > xCell = m_xImpl->m_xCell;
-
- css::uno::Reference< XComponent > xCellComp( m_xImpl->m_xCell, UNO_QUERY );
- if ( xCellComp.is() )
+ if ( m_xImpl->m_xCell.is() )
{
- xCellComp->dispose();
+ m_xImpl->m_xCell->dispose();
+ m_xImpl->m_xCell.clear();
+ }
+ if ( m_xImpl->m_xRowHeaderBar.is() )
+ {
+ m_xImpl->m_xRowHeaderBar->dispose();
+ m_xImpl->m_xRowHeaderBar.clear();
+ }
+ if ( m_xImpl->m_xColumnHeaderBar.is() )
+ {
+ m_xImpl->m_xColumnHeaderBar->dispose();
+ m_xImpl->m_xColumnHeaderBar.clear();
}
-
- ::comphelper::disposeComponent(m_xImpl->m_xRowHeaderBar);
- ::comphelper::disposeComponent(m_xImpl->m_xColumnHeaderBar);
AccessibleGridControlBase::disposing();
}
@@ -137,29 +132,25 @@ AccessibleGridControl::getAccessibleChild( sal_Int32 nChildIndex )
{
if(!m_xImpl->m_xColumnHeaderBar.is())
{
- AccessibleGridControlHeader* pColHeaderBar = new AccessibleGridControlHeader(m_xImpl->m_aCreator, m_aTable, svt::table::TCTYPE_COLUMNHEADERBAR);
- m_xImpl->m_xColumnHeaderBar = pColHeaderBar;
+ m_xImpl->m_xColumnHeaderBar = new AccessibleGridControlHeader(m_xImpl->m_aCreator, m_aTable, svt::table::TCTYPE_COLUMNHEADERBAR);
}
- xChild = m_xImpl->m_xColumnHeaderBar;
+ xChild = m_xImpl->m_xColumnHeaderBar.get();
}
else if(m_aTable.HasRowHeader() && (nChildIndex == 1 || nChildIndex == 0))
{
if(!m_xImpl->m_xRowHeaderBar.is())
{
- AccessibleGridControlHeader* pRowHeaderBar = new AccessibleGridControlHeader(m_xImpl->m_aCreator, m_aTable, svt::table::TCTYPE_ROWHEADERBAR);
- m_xImpl->m_xRowHeaderBar = pRowHeaderBar;
+ m_xImpl->m_xRowHeaderBar = new AccessibleGridControlHeader(m_xImpl->m_aCreator, m_aTable, svt::table::TCTYPE_ROWHEADERBAR);
}
- xChild = m_xImpl->m_xRowHeaderBar;
+ xChild = m_xImpl->m_xRowHeaderBar.get();
}
else
{
if(!m_xImpl->m_xTable.is())
{
- AccessibleGridControlTable* pTable = new AccessibleGridControlTable(m_xImpl->m_aCreator, m_aTable);
- m_xImpl->m_xTable = pTable;
- m_xImpl->m_pTable = pTable;
+ m_xImpl->m_xTable = new AccessibleGridControlTable(m_xImpl->m_aCreator, m_aTable);
}
- xChild = m_xImpl->m_xTable;
+ xChild = m_xImpl->m_xTable.get();
}
}
return xChild;
@@ -246,10 +237,9 @@ css::uno::Reference< css::accessibility::XAccessible > AccessibleGridControl::im
{
if( !m_xImpl->m_xTable.is() )
{
- m_xImpl->m_pTable = createAccessibleTable();
- m_xImpl->m_xTable = m_xImpl->m_pTable;
+ m_xImpl->m_xTable = createAccessibleTable();
}
- return m_xImpl->m_xTable;
+ return m_xImpl->m_xTable.get();
}
@@ -257,7 +247,7 @@ css::uno::Reference< css::accessibility::XAccessible >
AccessibleGridControl::implGetHeaderBar( AccessibleTableControlObjType eObjType )
{
css::uno::Reference< css::accessibility::XAccessible > xRet;
- css::uno::Reference< css::accessibility::XAccessible >* pxMember = nullptr;
+ rtl::Reference< AccessibleGridControlHeader >* pxMember = nullptr;
if( eObjType == TCTYPE_ROWHEADERBAR )
pxMember = &m_xImpl->m_xRowHeaderBar;
@@ -268,17 +258,10 @@ AccessibleGridControl::implGetHeaderBar( AccessibleTableControlObjType eObjType
{
if( !pxMember->is() )
{
- AccessibleGridControlHeader* pHeaderBar = new AccessibleGridControlHeader(
+ *pxMember = new AccessibleGridControlHeader(
m_xImpl->m_aCreator, m_aTable, eObjType );
-
- if ( TCTYPE_COLUMNHEADERBAR == eObjType)
- m_xImpl->m_pColumnHeaderBar = pHeaderBar;
- else
- m_xImpl->m_pRowHeaderBar = pHeaderBar;
-
- *pxMember = pHeaderBar;
}
- xRet = *pxMember;
+ xRet = pxMember->get();
}
return xRet;
}
@@ -318,16 +301,16 @@ void AccessibleGridControl::commitCellEvent(sal_Int16 _nEventId,const Any& _rNew
{
css::uno::Reference< css::accessibility::XAccessible > xAccessible = getAccessibleChild(i);
css::uno::Reference< css::accessibility::XAccessibleContext > xAccessibleChild = xAccessible->getAccessibleContext();
- if(m_xImpl->m_xTable == xAccessible)
+ if(css::uno::Reference< css::accessibility::XAccessible >(m_xImpl->m_xTable.get()) == xAccessible)
{
std::vector< AccessibleGridControlTableCell* >& rCells =
- m_xImpl->m_pTable->getCellVector();
+ m_xImpl->m_xTable->getCellVector();
size_t nIndex = m_aTable.GetCurrentRow() * m_aTable.GetColumnCount()
+ m_aTable.GetCurrentColumn();
if (nIndex < rCells.size() && rCells[nIndex])
{
- m_xImpl->m_pCell = rCells[nIndex];
- m_xImpl->m_pCell->commitEvent( _nEventId, _rNewValue, _rOldValue );
+ m_xImpl->m_xCell = rCells[nIndex];
+ m_xImpl->m_xCell->commitEvent( _nEventId, _rNewValue, _rOldValue );
}
}
}
@@ -335,7 +318,7 @@ void AccessibleGridControl::commitCellEvent(sal_Int16 _nEventId,const Any& _rNew
else
{
if ( m_xImpl->m_xTable.is() )
- m_xImpl->m_pTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
+ m_xImpl->m_xTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
}
}
@@ -351,9 +334,9 @@ void AccessibleGridControl::commitTableEvent(sal_Int16 _nEventId,const Any& _rNe
if (nCurrentRow > -1 && nCurrentCol > -1)
{
sal_Int32 nColumnCount = m_aTable.GetColumnCount();
- xChild = m_xImpl->m_pTable->getAccessibleChild(nCurrentRow * nColumnCount + nCurrentCol);
+ xChild = m_xImpl->m_xTable->getAccessibleChild(nCurrentRow * nColumnCount + nCurrentCol);
}
- m_xImpl->m_pTable->commitEvent(_nEventId, makeAny(xChild),_rOldValue);
+ m_xImpl->m_xTable->commitEvent(_nEventId, makeAny(xChild),_rOldValue);
}
else if(_nEventId == AccessibleEventId::TABLE_MODEL_CHANGED)
{
@@ -363,33 +346,33 @@ void AccessibleGridControl::commitTableEvent(sal_Int16 _nEventId,const Any& _rNe
if(aChange.Type == AccessibleTableModelChangeType::DELETE)
{
std::vector< AccessibleGridControlTableCell* >& rCells =
- m_xImpl->m_pTable->getCellVector();
+ m_xImpl->m_xTable->getCellVector();
std::vector< css::uno::Reference< css::accessibility::XAccessible > >& rAccCells =
- m_xImpl->m_pTable->getAccessibleCellVector();
+ m_xImpl->m_xTable->getAccessibleCellVector();
int nColCount = m_aTable.GetColumnCount();
// check valid index - entries are inserted lazily
size_t const nStart = nColCount * aChange.FirstRow;
size_t const nEnd = nColCount * aChange.LastRow;
if (nStart < rCells.size())
{
- m_xImpl->m_pTable->getCellVector().erase(
+ m_xImpl->m_xTable->getCellVector().erase(
rCells.begin() + nStart,
rCells.begin() + std::min(rCells.size(), nEnd));
}
if (nStart < rAccCells.size())
{
- m_xImpl->m_pTable->getAccessibleCellVector().erase(
+ m_xImpl->m_xTable->getAccessibleCellVector().erase(
rAccCells.begin() + nStart,
rAccCells.begin() + std::min(rAccCells.size(), nEnd));
}
- m_xImpl->m_pTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
+ m_xImpl->m_xTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
}
else
- m_xImpl->m_pTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
+ m_xImpl->m_xTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
}
}
else
- m_xImpl->m_pTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
+ m_xImpl->m_xTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
}
}
@@ -400,7 +383,6 @@ AccessibleGridControlAccess::AccessibleGridControlAccess(
const css::uno::Reference< css::accessibility::XAccessible >& rxParent, ::svt::table::IAccessibleTable& rTable )
: m_xParent( rxParent )
, m_pTable( & rTable )
- , m_pContext( nullptr )
{
}
@@ -415,8 +397,11 @@ void AccessibleGridControlAccess::DisposeAccessImpl()
SolarMutexGuard g;
m_pTable = nullptr;
- m_pContext = nullptr;
- ::comphelper::disposeComponent( m_xContext );
+ if (m_xContext.is())
+ {
+ m_xContext->dispose();
+ m_xContext.clear();
+ }
}
@@ -424,19 +409,15 @@ css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL Accessibl
{
SolarMutexGuard g;
- OSL_ENSURE( ( m_pContext && m_xContext.is() ) || ( !m_pContext && !m_xContext.is() ),
- "extended/AccessibleGridControlAccess::getAccessibleContext: inconsistency!" );
-
// if the context died meanwhile (we're no listener, so it won't tell us explicitly when this happens),
// then reset an re-create.
- if ( m_pContext && !m_pContext->isAlive() )
- m_xContext = m_pContext = nullptr;
+ if ( m_xContext.is() && !m_xContext->isAlive() )
+ m_xContext = nullptr;
if (!m_xContext.is() && m_pTable)
- m_xContext = m_pContext =
- new AccessibleGridControl(m_xParent, this, *m_pTable);
+ m_xContext = new AccessibleGridControl(m_xParent, this, *m_pTable);
- return m_xContext;
+ return m_xContext.get();
}
commit be0089b58b1a4a2f2d73a8da0b40b7b029c277a2
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jan 16 15:37:13 2017 +0200
use rtl::Reference in AccessibleBrowseBoxAccess
instead of storing a raw pointer and a uno::Reference
Change-Id: I4326cbda900e053599f1e753cb1bff122bdecc44
diff --git a/accessibility/inc/extended/AccessibleBrowseBox.hxx b/accessibility/inc/extended/AccessibleBrowseBox.hxx
index bc6f1a5..69debf4 100644
--- a/accessibility/inc/extended/AccessibleBrowseBox.hxx
+++ b/accessibility/inc/extended/AccessibleBrowseBox.hxx
@@ -195,15 +195,12 @@ class AccessibleBrowseBoxAccess:
public ::svt::IAccessibleBrowseBox
{
private:
- ::osl::Mutex m_aMutex;
+ ::osl::Mutex m_aMutex;
css::uno::Reference< css::accessibility::XAccessible >
m_xParent;
::svt::IAccessibleTableProvider& m_rBrowseBox;
- css::uno::Reference< css::accessibility::XAccessibleContext >
- m_xContext;
- AccessibleBrowseBox* m_pContext;
- // note that this pointer is valid as long as m_xContext is valid!
+ rtl::Reference<AccessibleBrowseBox> m_xContext;
public:
AccessibleBrowseBoxAccess(
@@ -212,7 +209,7 @@ public:
);
/// returns the AccessibleContext belonging to this Accessible
- inline AccessibleBrowseBox* getContext() { return m_pContext; }
+ inline AccessibleBrowseBox* getContext() { return m_xContext.get(); }
protected:
virtual ~AccessibleBrowseBoxAccess() override;
@@ -230,7 +227,7 @@ protected:
void dispose() override;
virtual bool isAlive() const override
{
- return m_pContext && m_pContext->isAlive();
+ return m_xContext.is() && m_xContext->isAlive();
}
virtual css::uno::Reference< css::accessibility::XAccessible >
getHeaderBar( ::svt::AccessibleBrowseBoxObjType _eObjType ) override
diff --git a/accessibility/source/extended/AccessibleBrowseBox.cxx b/accessibility/source/extended/AccessibleBrowseBox.cxx
index 377dc0a..07baad0 100644
--- a/accessibility/source/extended/AccessibleBrowseBox.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBox.cxx
@@ -21,7 +21,6 @@
#include "extended/AccessibleBrowseBoxTable.hxx"
#include "extended/AccessibleBrowseBoxHeaderBar.hxx"
#include <svtools/accessibletableprovider.hxx>
-#include <comphelper/types.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <sal/types.h>
@@ -43,16 +42,13 @@ public:
css::uno::WeakReference< css::accessibility::XAccessible > m_aCreator;
/** The data table child. */
- css::uno::Reference< css::accessibility::XAccessible > mxTable;
- AccessibleBrowseBoxTable* m_pTable;
+ rtl::Reference<AccessibleBrowseBoxTable> mxTable;
/** The header bar for rows ("handle column"). */
- css::uno::Reference< css::accessibility::XAccessible > mxRowHeaderBar;
- AccessibleBrowseBoxHeaderBar* m_pRowHeaderBar;
+ rtl::Reference<AccessibleBrowseBoxHeaderBar> mxRowHeaderBar;
/** The header bar for columns (first row of the table). */
- css::uno::Reference< css::accessibility::XAccessible > mxColumnHeaderBar;
- AccessibleBrowseBoxHeaderBar* m_pColumnHeaderBar;
+ rtl::Reference<AccessibleBrowseBoxHeaderBar> mxColumnHeaderBar;
};
// Ctor/Dtor/disposing
@@ -87,21 +83,23 @@ void SAL_CALL AccessibleBrowseBox::disposing()
{
::osl::MutexGuard aGuard( getMutex() );
- m_xImpl->m_pTable = nullptr;
- m_xImpl->m_pColumnHeaderBar = nullptr;
- m_xImpl->m_pRowHeaderBar = nullptr;
m_xImpl->m_aCreator.clear();
- css::uno::Reference< css::accessibility::XAccessible > xTable = m_xImpl->mxTable;
-
- css::uno::Reference< XComponent > xComp( m_xImpl->mxTable, UNO_QUERY );
- if ( xComp.is() )
+ if ( m_xImpl->mxTable.is() )
{
- xComp->dispose();
-
+ m_xImpl->mxTable->dispose();
+ m_xImpl->mxTable.clear();
+ }
+ if ( m_xImpl->mxRowHeaderBar.is() )
+ {
+ m_xImpl->mxRowHeaderBar->dispose();
+ m_xImpl->mxRowHeaderBar.clear();
+ }
+ if ( m_xImpl->mxColumnHeaderBar.is() )
+ {
+ m_xImpl->mxColumnHeaderBar->dispose();
+ m_xImpl->mxColumnHeaderBar.clear();
}
- ::comphelper::disposeComponent(m_xImpl->mxRowHeaderBar);
- ::comphelper::disposeComponent(m_xImpl->mxColumnHeaderBar);
AccessibleBrowseBoxBase::disposing();
}
@@ -218,11 +216,10 @@ css::uno::Reference< css::accessibility::XAccessible > AccessibleBrowseBox::impl
{
if( !m_xImpl->mxTable.is() )
{
- m_xImpl->m_pTable = createAccessibleTable();
- m_xImpl->mxTable = m_xImpl->m_pTable;
+ m_xImpl->mxTable = createAccessibleTable();
}
- return m_xImpl->mxTable;
+ return m_xImpl->mxTable.get();
}
@@ -230,7 +227,7 @@ css::uno::Reference< css::accessibility::XAccessible >
AccessibleBrowseBox::implGetHeaderBar( AccessibleBrowseBoxObjType eObjType )
{
css::uno::Reference< css::accessibility::XAccessible > xRet;
- css::uno::Reference< css::accessibility::XAccessible >* pxMember = nullptr;
+ rtl::Reference< AccessibleBrowseBoxHeaderBar >* pxMember = nullptr;
if( eObjType == BBTYPE_ROWHEADERBAR )
pxMember = &m_xImpl->mxRowHeaderBar;
@@ -243,15 +240,9 @@ AccessibleBrowseBox::implGetHeaderBar( AccessibleBrowseBoxObjType eObjType )
{
AccessibleBrowseBoxHeaderBar* pHeaderBar = new AccessibleBrowseBoxHeaderBar(
m_xImpl->m_aCreator, *mpBrowseBox, eObjType );
-
- if ( BBTYPE_COLUMNHEADERBAR == eObjType)
- m_xImpl->m_pColumnHeaderBar = pHeaderBar;
- else
- m_xImpl->m_pRowHeaderBar = pHeaderBar;
-
*pxMember = pHeaderBar;
}
- xRet = *pxMember;
+ xRet = pxMember->get();
}
return xRet;
}
@@ -287,7 +278,7 @@ void AccessibleBrowseBox::commitTableEvent(sal_Int16 _nEventId,const Any& _rNewV
{
if ( m_xImpl->mxTable.is() )
{
- m_xImpl->m_pTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
+ m_xImpl->mxTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
}
}
@@ -295,10 +286,9 @@ void AccessibleBrowseBox::commitHeaderBarEvent( sal_Int16 _nEventId,
const Any& _rNewValue,
const Any& _rOldValue,bool _bColumnHeaderBar)
{
- css::uno::Reference< css::accessibility::XAccessible > xHeaderBar = _bColumnHeaderBar ? m_xImpl->mxColumnHeaderBar : m_xImpl->mxRowHeaderBar;
- AccessibleBrowseBoxHeaderBar* pHeaderBar = _bColumnHeaderBar ? m_xImpl->m_pColumnHeaderBar : m_xImpl->m_pRowHeaderBar;
+ rtl::Reference< AccessibleBrowseBoxHeaderBar >& xHeaderBar = _bColumnHeaderBar ? m_xImpl->mxColumnHeaderBar : m_xImpl->mxRowHeaderBar;
if ( xHeaderBar.is() )
- pHeaderBar->commitEvent(_nEventId,_rNewValue,_rOldValue);
+ xHeaderBar->commitEvent(_nEventId,_rNewValue,_rOldValue);
}
@@ -307,7 +297,6 @@ void AccessibleBrowseBox::commitHeaderBarEvent( sal_Int16 _nEventId,
AccessibleBrowseBoxAccess::AccessibleBrowseBoxAccess( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, ::svt::IAccessibleTableProvider& _rBrowseBox )
:m_xParent( _rxParent )
,m_rBrowseBox( _rBrowseBox )
- ,m_pContext( nullptr )
{
}
@@ -321,8 +310,11 @@ void AccessibleBrowseBoxAccess::dispose()
{
::osl::MutexGuard aGuard( m_aMutex );
- m_pContext = nullptr;
- ::comphelper::disposeComponent( m_xContext );
+ if (m_xContext.is())
+ {
+ m_xContext->dispose();
+ m_xContext.clear();
+ }
}
@@ -330,18 +322,15 @@ css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL Accessibl
{
::osl::MutexGuard aGuard( m_aMutex );
- OSL_ENSURE( ( m_pContext && m_xContext.is() ) || ( !m_pContext && !m_xContext.is() ),
- "extended/AccessibleBrowseBoxAccess::getAccessibleContext: inconsistency!" );
-
// if the context died meanwhile (there is no listener, so it won't tell us explicitly when this happens),
// then reset and re-create.
- if ( m_pContext && !m_pContext->isAlive() )
- m_xContext = m_pContext = nullptr;
+ if ( m_xContext.is() && !m_xContext->isAlive() )
+ m_xContext = nullptr;
if ( !m_xContext.is() )
- m_xContext = m_pContext = new AccessibleBrowseBox( m_xParent, this, m_rBrowseBox );
+ m_xContext = new AccessibleBrowseBox( m_xParent, this, m_rBrowseBox );
- return m_xContext;
+ return m_xContext.get();
}
commit 76f81d58ab0cd701182f2d55281546ecd8b08c2c
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jan 16 15:14:20 2017 +0200
use rtl::Reference in LngSvcMgr
instead of storing both raw pointers and uno::Reference
Change-Id: Ie403e1e7a081bc3f91fd25be89c54ddc1d1cadd2
diff --git a/linguistic/source/lngsvcmgr.cxx b/linguistic/source/lngsvcmgr.cxx
index 35cc6e7..9a752ae 100644
--- a/linguistic/source/lngsvcmgr.cxx
+++ b/linguistic/source/lngsvcmgr.cxx
@@ -272,8 +272,8 @@ void LngSvcMgrListenerHelper::Timeout()
static_cast<css::linguistic2::XLinguServiceManager*>(&rMyManager), nCombinedLngSvcEvt );
nCombinedLngSvcEvt = 0;
- if (rMyManager.pSpellDsp)
- rMyManager.pSpellDsp->FlushSpellCache();
+ if (rMyManager.mxSpellDsp.is())
+ rMyManager.mxSpellDsp->FlushSpellCache();
// pass event on to linguistic2::XLinguServiceEventListener's
aLngSvcMgrListeners.notifyEach( &linguistic2::XLinguServiceEventListener::processLinguServiceEvent, aEvtObj );
@@ -340,8 +340,8 @@ void SAL_CALL
if (0 != (nDlEvt & nHyphenateFlags))
nLngSvcEvt |= linguistic2::LinguServiceEventFlags::HYPHENATE_AGAIN;
- if (rMyManager.pSpellDsp)
- rMyManager.pSpellDsp->FlushSpellCache();
+ if (rMyManager.mxSpellDsp.is())
+ rMyManager.mxSpellDsp->FlushSpellCache();
if (nLngSvcEvt)
LaunchEvent( nLngSvcEvt );
}
@@ -431,16 +431,10 @@ LngSvcMgr::LngSvcMgr()
{
bDisposing = false;
- pSpellDsp = nullptr;
- pGrammarDsp = nullptr;
- pHyphDsp = nullptr;
- pThesDsp = nullptr;
-
pAvailSpellSvcs = nullptr;
pAvailGrammarSvcs = nullptr;
pAvailHyphSvcs = nullptr;
pAvailThesSvcs = nullptr;
- pListenerHelper = nullptr;
// request notify events when properties (i.e. something in the subtree) changes
uno::Sequence< OUString > aNames(4);
@@ -508,9 +502,9 @@ IMPL_LINK_NOARG(LngSvcMgr, updateAndBroadcast, Idle *, void)
UpdateAll();
- if (pListenerHelper)
+ if (mxListenerHelper.is())
{
- pListenerHelper->AddLngSvcEvt(
+ mxListenerHelper->AddLngSvcEvt(
linguistic2::LinguServiceEventFlags::SPELL_CORRECT_WORDS_AGAIN |
linguistic2::LinguServiceEventFlags::SPELL_WRONG_WORDS_AGAIN |
linguistic2::LinguServiceEventFlags::PROOFREAD_AGAIN |
@@ -845,7 +839,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames )
nLang = LanguageTag::convertToLanguageType( aKeyText );
GetSpellCheckerDsp_Impl( false ); // don't set service list, it will be done below
- pSpellDsp->SetServiceList( LanguageTag::convertToLocale(nLang), aSvcImplNames );
+ mxSpellDsp->SetServiceList( LanguageTag::convertToLocale(nLang), aSvcImplNames );
}
}
else if (rName.startsWith( aGrammarCheckerList ))
@@ -870,7 +864,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames )
if (SvtLinguConfig().HasGrammarChecker())
{
GetGrammarCheckerDsp_Impl( false ); // don't set service list, it will be done below
- pGrammarDsp->SetServiceList( LanguageTag::convertToLocale(nLang), aSvcImplNames );
+ mxGrammarDsp->SetServiceList( LanguageTag::convertToLocale(nLang), aSvcImplNames );
}
}
}
@@ -894,7 +888,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames )
nLang = LanguageTag::convertToLanguageType( aKeyText );
GetHyphenatorDsp_Impl( false ); // don't set service list, it will be done below
- pHyphDsp->SetServiceList( LanguageTag::convertToLocale(nLang), aSvcImplNames );
+ mxHyphDsp->SetServiceList( LanguageTag::convertToLocale(nLang), aSvcImplNames );
}
}
else if (rName.startsWith( aThesaurusList ))
@@ -917,7 +911,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames )
nLang = LanguageTag::convertToLanguageType( aKeyText );
GetThesaurusDsp_Impl( false ); // don't set service list, it will be done below
- pThesDsp->SetServiceList( LanguageTag::convertToLocale(nLang), aSvcImplNames );
+ mxThesDsp->SetServiceList( LanguageTag::convertToLocale(nLang), aSvcImplNames );
}
}
else
@@ -938,29 +932,27 @@ void LngSvcMgr::ImplCommit()
void LngSvcMgr::GetListenerHelper_Impl()
{
- if (!pListenerHelper)
+ if (!mxListenerHelper.is())
{
- pListenerHelper = new LngSvcMgrListenerHelper( *this, linguistic::GetDictionaryList() );
- xListenerHelper = static_cast<linguistic2::XLinguServiceEventListener *>(pListenerHelper);
+ mxListenerHelper = new LngSvcMgrListenerHelper( *this, linguistic::GetDictionaryList() );
}
}
void LngSvcMgr::GetSpellCheckerDsp_Impl( bool bSetSvcList )
{
- if (!pSpellDsp)
+ if (!mxSpellDsp.is())
{
- pSpellDsp = new SpellCheckerDispatcher( *this );
- xSpellDsp = pSpellDsp;
+ mxSpellDsp = new SpellCheckerDispatcher( *this );
if (bSetSvcList)
- SetCfgServiceLists( *pSpellDsp );
+ SetCfgServiceLists( *mxSpellDsp );
}
}
void LngSvcMgr::GetGrammarCheckerDsp_Impl( bool bSetSvcList )
{
- if (!pGrammarDsp && SvtLinguConfig().HasGrammarChecker())
+ if (!mxGrammarDsp.is() && SvtLinguConfig().HasGrammarChecker())
{
//! since the grammar checking iterator needs to be a one instance service
//! we need to create it the correct way!
@@ -976,11 +968,10 @@ void LngSvcMgr::GetGrammarCheckerDsp_Impl( bool bSetSvcList )
if (xGCI.is())
{
- pGrammarDsp = dynamic_cast< GrammarCheckingIterator * >(xGCI.get());
- xGrammarDsp = xGCI;
- SAL_WARN_IF( pGrammarDsp == nullptr, "linguistic", "failed to get implementation" );
- if (bSetSvcList && pGrammarDsp)
- SetCfgServiceLists( *pGrammarDsp );
+ mxGrammarDsp = dynamic_cast< GrammarCheckingIterator * >(xGCI.get());
+ SAL_WARN_IF( mxGrammarDsp == nullptr, "linguistic", "failed to get implementation" );
+ if (bSetSvcList && mxGrammarDsp.is())
+ SetCfgServiceLists( *mxGrammarDsp );
}
}
}
@@ -988,24 +979,22 @@ void LngSvcMgr::GetGrammarCheckerDsp_Impl( bool bSetSvcList )
void LngSvcMgr::GetHyphenatorDsp_Impl( bool bSetSvcList )
{
- if (!pHyphDsp)
+ if (!mxHyphDsp.is())
{
- pHyphDsp = new HyphenatorDispatcher( *this );
- xHyphDsp = pHyphDsp;
+ mxHyphDsp = new HyphenatorDispatcher( *this );
if (bSetSvcList)
- SetCfgServiceLists( *pHyphDsp );
+ SetCfgServiceLists( *mxHyphDsp );
}
}
void LngSvcMgr::GetThesaurusDsp_Impl( bool bSetSvcList )
{
- if (!pThesDsp)
+ if (!mxThesDsp.is())
{
- pThesDsp = new ThesaurusDispatcher;
- xThesDsp = pThesDsp;
+ mxThesDsp = new ThesaurusDispatcher;
if (bSetSvcList)
- SetCfgServiceLists( *pThesDsp );
+ SetCfgServiceLists( *mxThesDsp );
}
}
@@ -1429,9 +1418,9 @@ uno::Reference< linguistic2::XSpellChecker > SAL_CALL
uno::Reference< linguistic2::XSpellChecker > xRes;
if (!bDisposing)
{
- if (!xSpellDsp.is())
+ if (!mxSpellDsp.is())
GetSpellCheckerDsp_Impl();
- xRes = xSpellDsp;
+ xRes = mxSpellDsp.get();
}
return xRes;
}
@@ -1448,9 +1437,9 @@ uno::Reference< linguistic2::XHyphenator > SAL_CALL
uno::Reference< linguistic2::XHyphenator > xRes;
if (!bDisposing)
{
- if (!xHyphDsp.is())
+ if (!mxHyphDsp.is())
GetHyphenatorDsp_Impl();
- xRes = xHyphDsp;
+ xRes = mxHyphDsp.get();
}
return xRes;
}
@@ -1467,9 +1456,9 @@ uno::Reference< linguistic2::XThesaurus > SAL_CALL
uno::Reference< linguistic2::XThesaurus > xRes;
if (!bDisposing)
{
- if (!xThesDsp.is())
+ if (!mxThesDsp.is())
GetThesaurusDsp_Impl();
- xRes = xThesDsp;
+ xRes = mxThesDsp.get();
}
return xRes;
}
@@ -1485,9 +1474,9 @@ sal_Bool SAL_CALL
bool bRes = false;
if (!bDisposing && xListener.is())
{
- if (!pListenerHelper)
+ if (!mxListenerHelper.is())
GetListenerHelper_Impl();
- bRes = pListenerHelper->AddLngSvcMgrListener( xListener );
+ bRes = mxListenerHelper->AddLngSvcMgrListener( xListener );
}
return bRes;
}
@@ -1503,10 +1492,10 @@ sal_Bool SAL_CALL
bool bRes = false;
if (!bDisposing && xListener.is())
{
- DBG_ASSERT( pListenerHelper, "listener removed without being added" );
- if (!pListenerHelper)
+ DBG_ASSERT( mxListenerHelper.is(), "listener removed without being added" );
+ if (!mxListenerHelper.is())
GetListenerHelper_Impl();
- bRes = pListenerHelper->RemoveLngSvcMgrListener( xListener );
+ bRes = mxListenerHelper->RemoveLngSvcMgrListener( xListener );
}
return bRes;
}
@@ -1642,62 +1631,62 @@ void SAL_CALL
{
if (rServiceName == SN_SPELLCHECKER)
{
- if (!xSpellDsp.is())
+ if (!mxSpellDsp.is())
GetSpellCheckerDsp_Impl();
bool bChanged = !IsEqSvcList( rServiceImplNames,
- pSpellDsp->GetServiceList( rLocale ) );
+ mxSpellDsp->GetServiceList( rLocale ) );
if (bChanged)
{
- pSpellDsp->SetServiceList( rLocale, rServiceImplNames );
+ mxSpellDsp->SetServiceList( rLocale, rServiceImplNames );
SaveCfgSvcs( SN_SPELLCHECKER );
- if (pListenerHelper && bChanged)
- pListenerHelper->AddLngSvcEvt(
+ if (mxListenerHelper.is() && bChanged)
+ mxListenerHelper->AddLngSvcEvt(
linguistic2::LinguServiceEventFlags::SPELL_CORRECT_WORDS_AGAIN |
linguistic2::LinguServiceEventFlags::SPELL_WRONG_WORDS_AGAIN );
}
}
else if (rServiceName == SN_GRAMMARCHECKER)
{
- if (!xGrammarDsp.is())
+ if (!mxGrammarDsp.is())
GetGrammarCheckerDsp_Impl();
bool bChanged = !IsEqSvcList( rServiceImplNames,
- pGrammarDsp->GetServiceList( rLocale ) );
+ mxGrammarDsp->GetServiceList( rLocale ) );
if (bChanged)
{
- pGrammarDsp->SetServiceList( rLocale, rServiceImplNames );
+ mxGrammarDsp->SetServiceList( rLocale, rServiceImplNames );
SaveCfgSvcs( SN_GRAMMARCHECKER );
- if (pListenerHelper && bChanged)
- pListenerHelper->AddLngSvcEvt(
+ if (mxListenerHelper.is() && bChanged)
+ mxListenerHelper->AddLngSvcEvt(
linguistic2::LinguServiceEventFlags::PROOFREAD_AGAIN );
}
}
else if (rServiceName == SN_HYPHENATOR)
{
- if (!xHyphDsp.is())
+ if (!mxHyphDsp.is())
GetHyphenatorDsp_Impl();
bool bChanged = !IsEqSvcList( rServiceImplNames,
- pHyphDsp->GetServiceList( rLocale ) );
+ mxHyphDsp->GetServiceList( rLocale ) );
if (bChanged)
{
- pHyphDsp->SetServiceList( rLocale, rServiceImplNames );
+ mxHyphDsp->SetServiceList( rLocale, rServiceImplNames );
SaveCfgSvcs( SN_HYPHENATOR );
- if (pListenerHelper && bChanged)
- pListenerHelper->AddLngSvcEvt(
+ if (mxListenerHelper.is() && bChanged)
+ mxListenerHelper->AddLngSvcEvt(
linguistic2::LinguServiceEventFlags::HYPHENATE_AGAIN );
}
}
else if (rServiceName == SN_THESAURUS)
{
- if (!xThesDsp.is())
+ if (!mxThesDsp.is())
GetThesaurusDsp_Impl();
bool bChanged = !IsEqSvcList( rServiceImplNames,
- pThesDsp->GetServiceList( rLocale ) );
+ mxThesDsp->GetServiceList( rLocale ) );
if (bChanged)
{
- pThesDsp->SetServiceList( rLocale, rServiceImplNames );
+ mxThesDsp->SetServiceList( rLocale, rServiceImplNames );
SaveCfgSvcs( SN_THESAURUS );
}
}
@@ -1716,30 +1705,30 @@ bool LngSvcMgr::SaveCfgSvcs( const OUString &rServiceName )
if (rServiceName == SN_SPELLCHECKER)
{
- if (!pSpellDsp)
+ if (!mxSpellDsp.get())
GetSpellCheckerDsp_Impl();
- pDsp = pSpellDsp;
+ pDsp = mxSpellDsp.get();
aLocales = getAvailableLocales( SN_SPELLCHECKER );
}
else if (rServiceName == SN_GRAMMARCHECKER)
{
- if (!pGrammarDsp)
+ if (!mxGrammarDsp.is())
GetGrammarCheckerDsp_Impl();
- pDsp = pGrammarDsp;
+ pDsp = mxGrammarDsp.get();
aLocales = getAvailableLocales( SN_GRAMMARCHECKER );
}
else if (rServiceName == SN_HYPHENATOR)
{
- if (!pHyphDsp)
+ if (!mxHyphDsp.is())
GetHyphenatorDsp_Impl();
- pDsp = pHyphDsp;
+ pDsp = mxHyphDsp.get();
aLocales = getAvailableLocales( SN_HYPHENATOR );
}
else if (rServiceName == SN_THESAURUS)
{
- if (!pThesDsp)
+ if (!mxThesDsp.is())
GetThesaurusDsp_Impl();
- pDsp = pThesDsp;
+ pDsp = mxThesDsp.get();
aLocales = getAvailableLocales( SN_THESAURUS );
}
@@ -1754,13 +1743,13 @@ bool LngSvcMgr::SaveCfgSvcs( const OUString &rServiceName )
// get node name to be used
const char *pNodeName = nullptr;
- if (pDsp == pSpellDsp)
+ if (pDsp == mxSpellDsp.get())
pNodeName = "ServiceManager/SpellCheckerList";
- else if (pDsp == pGrammarDsp)
+ else if (pDsp == mxGrammarDsp.get())
pNodeName = "ServiceManager/GrammarCheckerList";
- else if (pDsp == pHyphDsp)
+ else if (pDsp == mxHyphDsp.get())
pNodeName = "ServiceManager/HyphenatorList";
- else if (pDsp == pThesDsp)
+ else if (pDsp == mxThesDsp.get())
pNodeName = "ServiceManager/ThesaurusList";
else
{
@@ -1775,7 +1764,7 @@ bool LngSvcMgr::SaveCfgSvcs( const OUString &rServiceName )
// build value to be written back to configuration
uno::Any aCfgAny;
- if ((pDsp == pHyphDsp || pDsp == pGrammarDsp) && aSvcImplNames.getLength() > 1)
+ if ((pDsp == mxHyphDsp.get() || pDsp == mxGrammarDsp.get()) && aSvcImplNames.getLength() > 1)
aSvcImplNames.realloc(1); // there should be only one entry for hyphenators or grammar checkers (because they are not chained)
aCfgAny <<= aSvcImplNames;
DBG_ASSERT( aCfgAny.hasValue(), "missing value for 'Any' type" );
@@ -1936,8 +1925,8 @@ void SAL_CALL
lang::EventObject aEvtObj( static_cast<XLinguServiceManager*>(this) );
aEvtListeners.disposeAndClear( aEvtObj );
- if (pListenerHelper)
- pListenerHelper->DisposeAndClear( aEvtObj );
+ if (mxListenerHelper.is())
+ mxListenerHelper->DisposeAndClear( aEvtObj );
}
}
@@ -1976,9 +1965,9 @@ bool LngSvcMgr::AddLngSvcEvtBroadcaster(
bool bRes = false;
if (rxBroadcaster.is())
{
- if (!pListenerHelper)
+ if (!mxListenerHelper.is())
GetListenerHelper_Impl();
- bRes = pListenerHelper->AddLngSvcEvtBroadcaster( rxBroadcaster );
+ bRes = mxListenerHelper->AddLngSvcEvtBroadcaster( rxBroadcaster );
}
return bRes;
}
diff --git a/linguistic/source/lngsvcmgr.hxx b/linguistic/source/lngsvcmgr.hxx
index 493e6dd..348ca09 100644
--- a/linguistic/source/lngsvcmgr.hxx
+++ b/linguistic/source/lngsvcmgr.hxx
@@ -30,6 +30,7 @@
#include <com/sun/star/util/XModifyBroadcaster.hpp>
#include <com/sun/star/util/XModifyListener.hpp>
#include <unotools/configitem.hxx>
+#include <rtl/ref.hxx>
#include <vcl/timer.hxx>
#include <vcl/idle.hxx>
#include <vector>
@@ -65,19 +66,7 @@ class LngSvcMgr :
{
friend class LngSvcMgrListenerHelper;
- ::comphelper::OInterfaceContainerHelper2 aEvtListeners;
-
- css::uno::Reference<
- css::linguistic2::XSpellChecker > xSpellDsp;
- css::uno::Reference<
- css::linguistic2::XProofreadingIterator > xGrammarDsp;
- css::uno::Reference<
- css::linguistic2::XHyphenator > xHyphDsp;
- css::uno::Reference<
- css::linguistic2::XThesaurus > xThesDsp;
-
- css::uno::Reference<
- css::lang::XEventListener > xListenerHelper;
+ ::comphelper::OInterfaceContainerHelper2 aEvtListeners;
css::uno::Reference<
css::util::XModifyBroadcaster> xMB;
@@ -94,12 +83,12 @@ class LngSvcMgr :
css::uno::Sequence<
css::lang::Locale > aAvailThesLocales;
- SpellCheckerDispatcher * pSpellDsp;
- GrammarCheckingIterator * pGrammarDsp;
- HyphenatorDispatcher * pHyphDsp;
- ThesaurusDispatcher * pThesDsp;
+ rtl::Reference<SpellCheckerDispatcher> mxSpellDsp;
+ rtl::Reference<GrammarCheckingIterator> mxGrammarDsp;
+ rtl::Reference<HyphenatorDispatcher> mxHyphDsp;
+ rtl::Reference<ThesaurusDispatcher> mxThesDsp;
- LngSvcMgrListenerHelper * pListenerHelper;
+ rtl::Reference<LngSvcMgrListenerHelper> mxListenerHelper;
typedef std::vector< std::unique_ptr<SvcInfo> > SvcInfoArray;
SvcInfoArray * pAvailSpellSvcs;
commit e4d362017ecd6076ab9fd13d9c6b2c5137580500
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jan 16 15:04:38 2017 +0200
use rtl::Reference in SpellCache
instead of storing both a raw pointer and a uno::Reference
Change-Id: I8764bf6b7d7745dd14f6c7548e771131354b1f23
diff --git a/linguistic/inc/iprcache.hxx b/linguistic/inc/iprcache.hxx
index f37f3af..b311511 100644
--- a/linguistic/inc/iprcache.hxx
+++ b/linguistic/inc/iprcache.hxx
@@ -30,6 +30,7 @@
#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
#include <com/sun/star/linguistic2/XLinguProperties.hpp>
+#include <rtl/ref.hxx>
#include <rtl/string.hxx>
#include <i18nlangtag/lang.h>
@@ -75,12 +76,10 @@ public:
class SpellCache final
{
- css::uno::Reference< css::linguistic2::XDictionaryListEventListener >
- xFlushLstnr;
- FlushListener *pFlushLstnr;
+ rtl::Reference<FlushListener> mxFlushLstnr;
- typedef std::set< OUString > WordList_t;
- typedef std::map< LanguageType, WordList_t > LangWordList_t;
+ typedef std::set< OUString > WordList_t;
+ typedef std::map< LanguageType, WordList_t > LangWordList_t;
LangWordList_t aWordLists;
SpellCache(const SpellCache &) = delete;
diff --git a/linguistic/source/iprcache.cxx b/linguistic/source/iprcache.cxx
index fbcbb44..e7989b2 100644
--- a/linguistic/source/iprcache.cxx
+++ b/linguistic/source/iprcache.cxx
@@ -189,20 +189,19 @@ void SAL_CALL FlushListener::propertyChange(
SpellCache::SpellCache()
{
- pFlushLstnr = new FlushListener( *this );
- xFlushLstnr = pFlushLstnr;
+ mxFlushLstnr = new FlushListener( *this );
Reference<XSearchableDictionaryList> aDictionaryList(GetDictionaryList());
- pFlushLstnr->SetDicList( aDictionaryList ); //! after reference is established
+ mxFlushLstnr->SetDicList( aDictionaryList ); //! after reference is established
Reference<XLinguProperties> aPropertySet(GetLinguProperties());
- pFlushLstnr->SetPropSet( aPropertySet ); //! after reference is established
+ mxFlushLstnr->SetPropSet( aPropertySet ); //! after reference is established
}
SpellCache::~SpellCache()
{
Reference<XSearchableDictionaryList> aEmptyList;
Reference<XLinguProperties> aEmptySet;
- pFlushLstnr->SetDicList( aEmptyList );
- pFlushLstnr->SetPropSet( aEmptySet );
+ mxFlushLstnr->SetDicList( aEmptyList );
+ mxFlushLstnr->SetPropSet( aEmptySet );
}
void SpellCache::Flush()
commit 034cb09f56fba58ccc53acb88681e1f0b812156a
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jan 16 14:56:48 2017 +0200
use rtl::Reference in SvXMLExport
instead of storing both a raw pointer and an uno::Reference
Change-Id: I83774937d3556b9fed550a7f3e757dc975b4098a
diff --git a/include/xmloff/xmlexp.hxx b/include/xmloff/xmlexp.hxx
index 96a1ded..7fbcb41 100644
--- a/include/xmloff/xmlexp.hxx
+++ b/include/xmloff/xmlexp.hxx
@@ -131,8 +131,7 @@ class XMLOFF_DLLPUBLIC SvXMLExport : public cppu::WeakImplHelper<
css::uno::Reference< css::beans::XPropertySet > mxExportInfo;
css::uno::Reference< css::lang::XEventListener > mxEventListener;
- SvXMLAttributeList *mpAttrList; // a common attribute list
- css::uno::Reference< css::xml::sax::XAttributeList > mxAttrList; // and an interface of it
+ rtl::Reference<SvXMLAttributeList> mxAttrList; // a common attribute list
OUString msOrigFileName; // the original URL
OUString msGraphicObjectProtocol;
@@ -377,8 +376,8 @@ public:
css::xml::sax::XAttributeList >& xAttrList );
// Get common attribute list as implementation or interface.
- SvXMLAttributeList &GetAttrList() { return *mpAttrList; }
- const css::uno::Reference< css::xml::sax::XAttributeList > & GetXAttrList() { return mxAttrList; }
+ SvXMLAttributeList &GetAttrList() { return *mxAttrList.get(); }
+ css::uno::Reference< css::xml::sax::XAttributeList > GetXAttrList() { return mxAttrList.get(); }
// Get document handler. This methods are not const, because the
// reference allowes modifications through the handler.
diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx
index b46af12..3666cfa 100644
--- a/xmloff/source/core/xmlexp.cxx
+++ b/xmloff/source/core/xmlexp.cxx
@@ -393,8 +393,6 @@ void SvXMLExport::InitCtor_()
GetXMLToken(XML_NP_CSS3TEXT), GetXMLToken(XML_N_CSS3TEXT), XML_NAMESPACE_CSS3TEXT );
}
- mxAttrList = static_cast<xml::sax::XAttributeList*>(mpAttrList);
-
msGraphicObjectProtocol = "vnd.sun.star.GraphicObject:";
msEmbeddedObjectProtocol = "vnd.sun.star.EmbeddedObject:";
@@ -434,7 +432,7 @@ SvXMLExport::SvXMLExport(
const enum XMLTokenEnum eClass, SvXMLExportFlags nExportFlags )
: mpImpl( new SvXMLExport_Impl ),
m_xContext(xContext), m_implementationName(implementationName),
- mpAttrList( new SvXMLAttributeList ),
+ mxAttrList( new SvXMLAttributeList ),
mpNamespaceMap( new SvXMLNamespaceMap ),
mpUnitConv( new SvXMLUnitConverter( xContext,
util::MeasureUnit::MM_100TH, eDefaultMeasureUnit) ),
@@ -463,7 +461,7 @@ SvXMLExport::SvXMLExport(
m_xContext(xContext), m_implementationName(implementationName),
mxHandler( rHandler ),
mxExtHandler( rHandler, uno::UNO_QUERY ),
- mpAttrList( new SvXMLAttributeList ),
+ mxAttrList( new SvXMLAttributeList ),
msOrigFileName( rFileName ),
mpNamespaceMap( new SvXMLNamespaceMap ),
mpUnitConv( new SvXMLUnitConverter( xContext,
@@ -500,7 +498,7 @@ SvXMLExport::SvXMLExport(
mxHandler( rHandler ),
mxExtHandler( rHandler, uno::UNO_QUERY ),
mxNumberFormatsSupplier (rModel, uno::UNO_QUERY),
- mpAttrList( new SvXMLAttributeList ),
+ mxAttrList( new SvXMLAttributeList ),
msOrigFileName( rFileName ),
mpNamespaceMap( new SvXMLNamespaceMap ),
mpUnitConv( new SvXMLUnitConverter( xContext,
@@ -945,7 +943,7 @@ void SvXMLExport::AddAttributeASCII( sal_uInt16 nPrefixKey,
OUString sName( OUString::createFromAscii( pName ) );
OUString sValue( OUString::createFromAscii( pValue ) );
- mpAttrList->AddAttribute(
+ mxAttrList->AddAttribute(
GetNamespaceMap_().GetQNameByKey( nPrefixKey, sName ), sValue );
}
@@ -954,14 +952,14 @@ void SvXMLExport::AddAttribute( sal_uInt16 nPrefixKey, const sal_Char *pName,
{
OUString sName( OUString::createFromAscii( pName ) );
- mpAttrList->AddAttribute(
+ mxAttrList->AddAttribute(
GetNamespaceMap_().GetQNameByKey( nPrefixKey, sName ), rValue );
}
void SvXMLExport::AddAttribute( sal_uInt16 nPrefixKey, const OUString& rName,
const OUString& rValue )
{
- mpAttrList->AddAttribute(
+ mxAttrList->AddAttribute(
GetNamespaceMap_().GetQNameByKey( nPrefixKey, rName ), rValue );
}
@@ -969,7 +967,7 @@ void SvXMLExport::AddAttribute( sal_uInt16 nPrefixKey,
enum XMLTokenEnum eName,
const OUString& rValue )
{
- mpAttrList->AddAttribute(
+ mxAttrList->AddAttribute(
GetNamespaceMap_().GetQNameByKey( nPrefixKey, GetXMLToken(eName) ),
rValue );
}
@@ -978,7 +976,7 @@ void SvXMLExport::AddAttribute( sal_uInt16 nPrefixKey,
enum XMLTokenEnum eName,
enum XMLTokenEnum eValue)
{
- mpAttrList->AddAttribute(
+ mxAttrList->AddAttribute(
GetNamespaceMap_().GetQNameByKey( nPrefixKey, GetXMLToken(eName) ),
GetXMLToken(eValue) );
}
@@ -986,7 +984,7 @@ void SvXMLExport::AddAttribute( sal_uInt16 nPrefixKey,
void SvXMLExport::AddAttribute( const OUString& rQName,
const OUString& rValue )
{
- mpAttrList->AddAttribute(
+ mxAttrList->AddAttribute(
rQName,
rValue );
}
@@ -994,7 +992,7 @@ void SvXMLExport::AddAttribute( const OUString& rQName,
void SvXMLExport::AddAttribute( const OUString& rQName,
enum ::xmloff::token::XMLTokenEnum eValue )
{
- mpAttrList->AddAttribute(
+ mxAttrList->AddAttribute(
rQName,
GetXMLToken(eValue) );
}
@@ -1061,18 +1059,18 @@ void SvXMLExport::AddLanguageTagAttributes( sal_uInt16 nPrefix, sal_uInt16 nPref
void SvXMLExport::AddAttributeList( const uno::Reference< xml::sax::XAttributeList >& xAttrList )
{
if( xAttrList.is())
- mpAttrList->AppendAttributeList( xAttrList );
+ mxAttrList->AppendAttributeList( xAttrList );
}
void SvXMLExport::ClearAttrList()
{
- mpAttrList->Clear();
+ mxAttrList->Clear();
}
#ifdef DBG_UTIL
void SvXMLExport::CheckAttrList()
{
- SAL_WARN_IF( mpAttrList->getLength(), "xmloff.core", "XMLExport::CheckAttrList: list is not empty" );
+ SAL_WARN_IF( mxAttrList->getLength(), "xmloff.core", "XMLExport::CheckAttrList: list is not empty" );
}
#endif
@@ -1350,7 +1348,7 @@ sal_uInt32 SvXMLExport::exportDoc( enum ::xmloff::token::XMLTokenEnum eClass )
sal_uInt16 nPos = mpNamespaceMap->GetFirstKey();
while( USHRT_MAX != nPos )
{
- mpAttrList->AddAttribute( mpNamespaceMap->GetAttrNameByKey( nPos ),
+ mxAttrList->AddAttribute( mpNamespaceMap->GetAttrNameByKey( nPos ),
mpNamespaceMap->GetNameByKey( nPos ) );
nPos = mpNamespaceMap->GetNextKey( nPos );
}
commit 2796150fdcc340be6b3dba19fc9c5734c21e0e6e
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jan 16 14:47:13 2017 +0200
use rtl::Reference in DropTarget
instead of storing both a raw pointer and a uno::Reference
Change-Id: Ia03e68ce7c0bec4b6e43e9ab32d8a918ea467f5b
diff --git a/vcl/unx/generic/dtrans/X11_droptarget.cxx b/vcl/unx/generic/dtrans/X11_droptarget.cxx
index b6892eb..3915d8e 100644
--- a/vcl/unx/generic/dtrans/X11_droptarget.cxx
+++ b/vcl/unx/generic/dtrans/X11_droptarget.cxx
@@ -35,15 +35,14 @@ DropTarget::DropTarget() :
>( m_aMutex ),
m_bActive( false ),
m_nDefaultActions( 0 ),
- m_aTargetWindow( None ),
- m_pSelectionManager( nullptr )
+ m_aTargetWindow( None )
{
}
DropTarget::~DropTarget()
{
- if( m_pSelectionManager )
- m_pSelectionManager->deregisterDropTarget( m_aTargetWindow );
+ if( m_xSelectionManager.is() )
+ m_xSelectionManager->deregisterDropTarget( m_aTargetWindow );
}
void DropTarget::initialize( const Sequence< Any >& arguments ) throw( css::uno::Exception, std::exception )
@@ -59,15 +58,14 @@ void DropTarget::initialize( const Sequence< Any >& arguments ) throw( css::uno:
aIdentifier >>= aDisplayName;
}
- m_pSelectionManager = &SelectionManager::get( aDisplayName );
- m_xSelectionManager = static_cast< XDragSource* >(m_pSelectionManager);
- m_pSelectionManager->initialize( arguments );
+ m_xSelectionManager = &SelectionManager::get( aDisplayName );
+ m_xSelectionManager->initialize( arguments );
- if( m_pSelectionManager->getDisplay() ) // #136582# sanity check
+ if( m_xSelectionManager->getDisplay() ) // #136582# sanity check
{
sal_IntPtr aWindow = None;
arguments.getConstArray()[1] >>= aWindow;
- m_pSelectionManager->registerDropTarget( aWindow, this );
+ m_xSelectionManager->registerDropTarget( aWindow, this );
m_aTargetWindow = aWindow;
m_bActive = true;
}
diff --git a/vcl/unx/generic/dtrans/X11_selection.hxx b/vcl/unx/generic/dtrans/X11_selection.hxx
index ec46b32..24de1bc 100644
--- a/vcl/unx/generic/dtrans/X11_selection.hxx
+++ b/vcl/unx/generic/dtrans/X11_selection.hxx
@@ -31,8 +31,8 @@
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/frame/XDesktop2.hpp>
#include <osl/thread.h>
-
#include <osl/conditn.hxx>
+#include <rtl/ref.hxx>
#include <list>
#include <unordered_map>
@@ -75,11 +75,10 @@ namespace x11 {
bool m_bActive;
sal_Int8 m_nDefaultActions;
::Window m_aTargetWindow;
- SelectionManager* m_pSelectionManager;
- css::uno::Reference< css::datatransfer::dnd::XDragSource >
+ rtl::Reference<SelectionManager>
m_xSelectionManager;
::std::list< css::uno::Reference< css::datatransfer::dnd::XDropTargetListener > >
- m_aListeners;
+ m_aListeners;
DropTarget();
virtual ~DropTarget() override;
More information about the Libreoffice-commits
mailing list