[Libreoffice-commits] core.git: 3 commits - connectivity/source sw/source ucb/source
Michael Stahl
mstahl at redhat.com
Wed May 29 16:17:00 PDT 2013
connectivity/source/drivers/flat/ETable.cxx | 21 +++++++++++++++++----
sw/source/filter/ww8/wrtw8esh.cxx | 4 ++--
ucb/source/ucp/webdav-neon/NeonLockStore.cxx | 17 ++++++++++++-----
3 files changed, 31 insertions(+), 11 deletions(-)
New commits:
commit 526fbddf6935b0a3983563af71c4ccea4561cebb
Author: Michael Stahl <mstahl at redhat.com>
Date: Wed May 29 20:31:08 2013 +0200
connectivity: make MSVC happy with pairFirstLess
MSVC 2008 with _DEBUG calls this with parameters in wrong order so needs
more overloads.
Change-Id: I334fd93bea278dc147b3b575d079cacf02de5e87
diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx
index a6b5a67..4a81462 100644
--- a/connectivity/source/drivers/flat/ETable.cxx
+++ b/connectivity/source/drivers/flat/ETable.cxx
@@ -755,10 +755,23 @@ void OFlatTable::refreshHeader()
// -----------------------------------------------------------------------------
namespace
{
- template< typename Tp, typename Te> bool pairFirstLess(const Tp &p, const Te &e)
+ template< typename Tp, typename Te> struct PairFirstLess
{
- return p.first < e;
- }
+ bool operator() (const Tp &p, const Te &e)
+ {
+ return p.first < e;
+ }
+#ifdef DBG_UTIL
+ bool operator() (const Te &e, const Tp &p)
+ {
+ return e < p.first;
+ }
+ bool operator() (const Tp &p1, const Tp &p2)
+ {
+ return p1.first < p2.first;
+ }
+#endif
+ };
}
// -----------------------------------------------------------------------------
sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos)
@@ -896,7 +909,7 @@ sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int
vector< TRowPositionInFile >::const_iterator aFind = lower_bound(m_aRowPosToFilePos.begin(),
m_aRowPosToFilePos.end(),
nOffset,
- pairFirstLess< TRowPositionInFile, sal_Int32 >);
+ PairFirstLess< TRowPositionInFile, sal_Int32 >());
if(aFind == m_aRowPosToFilePos.end() || aFind->first != nOffset)
//invalid bookmark
commit 713cfaf98425e048963e8044be25cc0aa0840b28
Author: Michael Stahl <mstahl at redhat.com>
Date: Wed May 29 23:44:04 2013 +0200
WaE: C4146 unary operator applied to unsigned type
Change-Id: Ic23667dc5fb455a7b11f49f4a13df2c49496f702
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index be4f594..e334552 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -1809,8 +1809,8 @@ sal_Int32 SwBasicEscherEx::WriteFlyFrameAttr(const SwFrmFmt& rFmt,
const sal_uInt32 nShadowType = 131074; // shadow type of ms word. need to set the default value.
sal_uInt32 nColor = (sal_uInt32)(pSI->GetColor().GetColor()) ;
- sal_uInt32 nOffX = pSI->GetWidth() * nCstScale;
- sal_uInt32 nOffY = pSI->GetWidth() * nCstScale;
+ sal_Int32 nOffX = pSI->GetWidth() * nCstScale;
+ sal_Int32 nOffY = pSI->GetWidth() * nCstScale;
sal_uInt32 nShadow = nShadowType;
SvxShadowLocation eLocation = pSI->GetLocation();
commit 68ba2785c55eaa1ea70ce135bdad5322b0e04ed7
Author: Michael Stahl <mstahl at redhat.com>
Date: Wed May 29 21:18:29 2013 +0200
ucb: NeonLockStore::stopTicker(): avoid deadlock
Tor reports that NeonLockStore::stopTicker() m_pTickerThread->join()
can deadlock with TickerThread running NeonLockStore::refreshLocks().
This can be avoided by copying m_pTickerThread to the stack, and
releasing the m_aMutex before calling join().
Change-Id: I387f83a530c5b893f79fa677b1092e0902c8af65
diff --git a/ucb/source/ucp/webdav-neon/NeonLockStore.cxx b/ucb/source/ucp/webdav-neon/NeonLockStore.cxx
index 04608a6..043ea7d 100644
--- a/ucb/source/ucp/webdav-neon/NeonLockStore.cxx
+++ b/ucb/source/ucp/webdav-neon/NeonLockStore.cxx
@@ -128,14 +128,21 @@ void NeonLockStore::startTicker()
void NeonLockStore::stopTicker()
{
- osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_pTickerThread.is() )
+ rtl::Reference<TickerThread> pTickerThread;
{
- m_pTickerThread->finish();
- m_pTickerThread->join();
+ osl::MutexGuard aGuard( m_aMutex );
+
+ if (!m_pTickerThread.is())
+ {
+ return; // nothing to do
+ }
+ m_pTickerThread->finish(); // needs mutex
+ // the TickerThread may run refreshLocks() at most once after this
+ pTickerThread = m_pTickerThread;
m_pTickerThread.clear();
}
+
+ pTickerThread->join(); // without m_aMutex locked (to prevent deadlock)
}
void NeonLockStore::registerSession( HttpSession * pHttpSession )
More information about the Libreoffice-commits
mailing list