[Libreoffice-commits] core.git: 11 commits - framework/source include/sfx2 qadevOOo/tests sfx2/source solenv/gbuild sw/inc sw/source unoxml/source

Michael Stahl mstahl at redhat.com
Sat Apr 25 14:13:47 PDT 2015


 framework/source/fwe/classes/framelistanalyzer.cxx |    2 
 framework/source/services/autorecovery.cxx         |    2 
 include/sfx2/DocumentMetadataAccess.hxx            |    2 
 qadevOOo/tests/java/ifc/table/_XTableCharts.java   |    2 
 sfx2/source/doc/Metadatable.cxx                    |    1 
 sfx2/source/doc/SfxDocumentMetaData.cxx            |    1 
 solenv/gbuild/CppunitTest.mk                       |    3 
 sw/inc/pam.hxx                                     |    9 -
 sw/inc/swcrsr.hxx                                  |    7 
 sw/inc/viscrs.hxx                                  |    1 
 sw/source/core/access/acccell.cxx                  |    4 
 sw/source/core/access/acccontext.cxx               |  176 +++++++++------------
 sw/source/core/access/acccontext.hxx               |   52 ++----
 sw/source/core/access/accdoc.cxx                   |   45 -----
 sw/source/core/access/accdoc.hxx                   |    6 
 sw/source/core/access/accframebase.cxx             |   14 -
 sw/source/core/access/accmap.cxx                   |   14 -
 sw/source/core/access/accpage.cxx                  |    6 
 sw/source/core/access/accpara.cxx                  |   14 -
 sw/source/core/crsr/pam.cxx                        |    9 -
 sw/source/core/crsr/swcrsr.cxx                     |    4 
 sw/source/core/crsr/viscrs.cxx                     |    2 
 sw/source/core/edit/eddel.cxx                      |    2 
 sw/source/core/edit/edglss.cxx                     |    3 
 sw/source/core/text/frminf.cxx                     |    2 
 sw/source/core/unocore/unoobj2.cxx                 |    2 
 sw/source/core/unocore/unotextmarkup.cxx           |    6 
 sw/source/filter/basflt/shellio.cxx                |    2 
 sw/source/filter/html/swhtml.cxx                   |   13 -
 sw/source/filter/ww8/ww8par.cxx                    |    4 
 sw/source/filter/ww8/ww8par2.cxx                   |    2 
 sw/source/filter/ww8/ww8par5.cxx                   |    6 
 unoxml/source/rdf/librdf_repository.cxx            |    1 
 33 files changed, 168 insertions(+), 251 deletions(-)

New commits:
commit c23dd470d49d722197c148f4ef64a6a3350af88d
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Apr 25 22:24:58 2015 +0200

    sw: same treatment for SwCursor's fake "copy constructor"
    
    Change-Id: Id627274ca6ad87e7e85b5ce64419ed68a5d4c9c3

diff --git a/sw/inc/swcrsr.hxx b/sw/inc/swcrsr.hxx
index 1e84b16..5e3ea0a 100644
--- a/sw/inc/swcrsr.hxx
+++ b/sw/inc/swcrsr.hxx
@@ -69,6 +69,8 @@ class SW_DLLPUBLIC SwCursor : public SwPaM
 
     using SwPaM::Find;
 
+    SwCursor(SwCursor const& rPaM) SAL_DELETED_FUNCTION;
+
 protected:
     _SwCursor_SavePos* CreateNewSavePos() const;
     void SaveState();
@@ -86,8 +88,9 @@ public:
     SwCursor( const SwPosition &rPos, SwPaM* pRing, bool bColumnSel );
     virtual ~SwCursor();
 
-    // @@@ semantic: no copy ctor.
-    SwCursor( SwCursor& rCpy);
+    /// this takes a second parameter, which indicates the Ring that
+    /// the new cursor should be part of (may be null)
+    SwCursor(SwCursor const& rCursor, SwPaM* pRing);
 
 public:
 
diff --git a/sw/inc/viscrs.hxx b/sw/inc/viscrs.hxx
index a96d366..99b25f7 100644
--- a/sw/inc/viscrs.hxx
+++ b/sw/inc/viscrs.hxx
@@ -126,6 +126,7 @@ public:
     SwShellCrsr( const SwCrsrShell& rCrsrSh, const SwPosition &rPos );
     SwShellCrsr( const SwCrsrShell& rCrsrSh, const SwPosition &rPos,
                     const Point& rPtPos, SwPaM* pRing = 0 );
+    // note: *intentionally* links the new shell cursor into the old one's Ring
     SwShellCrsr( SwShellCrsr& );
     virtual ~SwShellCrsr();
 
diff --git a/sw/source/core/crsr/swcrsr.cxx b/sw/source/core/crsr/swcrsr.cxx
index e0a1a9c..dcca20d 100644
--- a/sw/source/core/crsr/swcrsr.cxx
+++ b/sw/source/core/crsr/swcrsr.cxx
@@ -123,8 +123,8 @@ SwCursor::SwCursor( const SwPosition &rPos, SwPaM* pRing, bool bColumnSel )
 }
 
 // @@@ semantic: no copy ctor.
-SwCursor::SwCursor( SwCursor& rCpy )
-    : SwPaM( rCpy, &rCpy )
+SwCursor::SwCursor(SwCursor const& rCpy, SwPaM *const pRing)
+    : SwPaM( rCpy, pRing )
     , m_pSavePos(nullptr)
     , m_nRowSpanOffset(rCpy.m_nRowSpanOffset)
     , m_nCursorBidiLevel(rCpy.m_nCursorBidiLevel)
diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx
index 11ef0f5..f5cdeb8 100644
--- a/sw/source/core/crsr/viscrs.cxx
+++ b/sw/source/core/crsr/viscrs.cxx
@@ -528,7 +528,7 @@ SwShellCrsr::SwShellCrsr(
 {}
 
 SwShellCrsr::SwShellCrsr( SwShellCrsr& rICrsr )
-    : SwCursor(rICrsr)
+    : SwCursor(rICrsr, &rICrsr)
     , SwSelPaintRects(*rICrsr.GetShell())
     , m_MarkPt(rICrsr.GetMkPos())
     , m_PointPt(rICrsr.GetPtPos())
commit bdf3c9bff607e3977c8455927b21ba292530d25a
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Apr 25 22:17:06 2015 +0200

    sw: replace SwPaM's so-called "copy constructor"
    
    Make explict that it links the new SwPaM into a Ring, by adding a 2nd
    parameter for the Ring.
    
    Change-Id: I8ac0bb1a8bede8b67a3a8874cf805bd88aad2819

diff --git a/sw/inc/pam.hxx b/sw/inc/pam.hxx
index 30a19c3..916e4e0 100644
--- a/sw/inc/pam.hxx
+++ b/sw/inc/pam.hxx
@@ -166,8 +166,10 @@ class SW_DLLPUBLIC SwPaM : public sw::Ring<SwPaM>
 
     SwPaM* MakeRegion( SwMoveFn fnMove, const SwPaM * pOrigRg = 0 );
 
+    SwPaM(SwPaM const& rPaM) SAL_DELETED_FUNCTION;
+
 public:
-    SwPaM( const SwPosition& rPos, SwPaM* pRing = 0 );
+    explicit SwPaM( const SwPosition& rPos, SwPaM* pRing = 0 );
     SwPaM( const SwPosition& rMk, const SwPosition& rPt, SwPaM* pRing = 0 );
     SwPaM( const SwNodeIndex& rMk, const SwNodeIndex& rPt,
            long nMkOffset = 0, long nPtOffset = 0, SwPaM* pRing = 0 );
@@ -181,8 +183,9 @@ public:
     SwPaM( const SwNodeIndex& rNd, sal_Int32 nCntnt = 0, SwPaM* pRing = 0 );
     virtual ~SwPaM();
 
-    /// @@@ semantic: no copy ctor.
-    SwPaM( SwPaM & );
+    /// this takes a second parameter, which indicates the Ring that
+    /// the new PaM should be part of (may be null)
+    SwPaM(SwPaM const& rPaM, SwPaM * pRing);
     /// @@@ semantic: no copy assignment for super class Ring.
     SwPaM& operator=( const SwPaM & );
 
diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx
index e449f94..be811b4 100644
--- a/sw/source/core/crsr/pam.cxx
+++ b/sw/source/core/crsr/pam.cxx
@@ -436,9 +436,8 @@ SwPaM::SwPaM( const SwNodeIndex& rNodeIdx, sal_Int32 nCntnt, SwPaM* pRing )
 
 SwPaM::~SwPaM() {}
 
-// @@@ semantic: no copy ctor.
-SwPaM::SwPaM( SwPaM &rPam )
-    : Ring( &rPam )
+SwPaM::SwPaM(SwPaM const& rPam, SwPaM *const pRing)
+    : Ring(pRing)
     , m_Bound1( *(rPam.m_pPoint) )
     , m_Bound2( *(rPam.m_pMark)  )
     , m_pPoint( &m_Bound1 ), m_pMark( rPam.HasMark() ? &m_Bound2 : m_pPoint )
@@ -504,7 +503,7 @@ bool SwPaM::Move( SwMoveFn fnMove, SwGoInDoc fnGo )
     @param fnMove  Contains information if beginning or end of document.
     @param pOrigRg The given region.
 
-    @return Newly created area.
+    @return Newly created range, in Ring with parameter pOrigRg.
 */
 SwPaM* SwPaM::MakeRegion( SwMoveFn fnMove, const SwPaM * pOrigRg )
 {
@@ -520,7 +519,7 @@ SwPaM* SwPaM::MakeRegion( SwMoveFn fnMove, const SwPaM * pOrigRg )
     }
     else
     {
-        pPam = new SwPaM( *const_cast<SwPaM*>(pOrigRg) ); // given search area
+        pPam = new SwPaM(*pOrigRg, const_cast<SwPaM*>(pOrigRg)); // given search range
         // make sure that SPoint is on the "real" start position
         // FORWARD: SPoint always smaller than GetMark
         // BACKWARD: SPoint always bigger than GetMark
diff --git a/sw/source/core/crsr/swcrsr.cxx b/sw/source/core/crsr/swcrsr.cxx
index 83e0870..e0a1a9c 100644
--- a/sw/source/core/crsr/swcrsr.cxx
+++ b/sw/source/core/crsr/swcrsr.cxx
@@ -124,7 +124,7 @@ SwCursor::SwCursor( const SwPosition &rPos, SwPaM* pRing, bool bColumnSel )
 
 // @@@ semantic: no copy ctor.
 SwCursor::SwCursor( SwCursor& rCpy )
-    : SwPaM( rCpy )
+    : SwPaM( rCpy, &rCpy )
     , m_pSavePos(nullptr)
     , m_nRowSpanOffset(rCpy.m_nRowSpanOffset)
     , m_nCursorBidiLevel(rCpy.m_nCursorBidiLevel)
diff --git a/sw/source/core/text/frminf.cxx b/sw/source/core/text/frminf.cxx
index 530e52a..61b5560 100644
--- a/sw/source/core/text/frminf.cxx
+++ b/sw/source/core/text/frminf.cxx
@@ -156,7 +156,7 @@ SwPaM *AddPam( SwPaM *pPam, const SwTxtFrm* pTxtFrm,
                 pPam->GetPoint()->nContent += nLen;
                 return pPam;
             }
-            pPam = new SwPaM( *pPam );
+            pPam = new SwPaM(*pPam, pPam);
         }
 
         SwIndex &rContent = pPam->GetPoint()->nContent;
diff --git a/sw/source/core/unocore/unoobj2.cxx b/sw/source/core/unocore/unoobj2.cxx
index 685e356..18cb6a5 100644
--- a/sw/source/core/unocore/unoobj2.cxx
+++ b/sw/source/core/unocore/unoobj2.cxx
@@ -144,7 +144,7 @@ void DeepCopyPaM(SwPaM const & rSource, SwPaM & rTarget)
         do
         {
             // create new PaM
-            SwPaM *const pNew = new SwPaM(*pPam);
+            SwPaM *const pNew = new SwPaM(*pPam, nullptr);
             // insert into ring
             pNew->MoveTo(&rTarget);
             pPam = pPam->GetNext();
diff --git a/sw/source/core/unocore/unotextmarkup.cxx b/sw/source/core/unocore/unotextmarkup.cxx
index 9a6984f..1a7c162 100644
--- a/sw/source/core/unocore/unotextmarkup.cxx
+++ b/sw/source/core/unocore/unotextmarkup.cxx
@@ -125,10 +125,10 @@ void SAL_CALL SwXTextMarkup::commitTextRangeMarkup(::sal_Int32 nType, const OUSt
     }
     else if (pCursor)
     {
-        SwPaM aPam(*pCursor->GetPaM());
+        SwPaM & rPam(*pCursor->GetPaM());
 
-        SwPosition* startPos = aPam.Start();
-        SwPosition* endPos   = aPam.End();
+        SwPosition* startPos = rPam.Start();
+        SwPosition* endPos   = rPam.End();
 
         commitStringMarkup (nType, aIdentifier, startPos->nContent.GetIndex(), endPos->nContent.GetIndex() - startPos->nContent.GetIndex(), xMarkupInfoContainer);
     }
diff --git a/sw/source/filter/basflt/shellio.cxx b/sw/source/filter/basflt/shellio.cxx
index 567aad5..2fcf22f 100644
--- a/sw/source/filter/basflt/shellio.cxx
+++ b/sw/source/filter/basflt/shellio.cxx
@@ -795,7 +795,7 @@ sal_uLong SwWriter::Write( WriterRef& rxWriter, const OUString* pRealFileName )
             }
             else
             {
-                pPam = new SwPaM( *pPam );
+                pPam = new SwPaM( *pPam, pPam );
                 pPam->Move( fnMoveBackward, fnGoDoc );
                 pPam->SetMark();
                 pPam->Move( fnMoveForward, fnGoDoc );
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 5dfd048..85922e7 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -2474,7 +2474,7 @@ void SwWW8ImplReader::AppendTxtNode(SwPosition& rPos)
         if(pPreviousNumPaM)
             delete pPreviousNumPaM, pPreviousNumPaM = 0;
 
-        pPreviousNumPaM = new SwPaM(*pPaM);
+        pPreviousNumPaM = new SwPaM(*pPaM, pPaM);
         pPrevNumRule = pRule;
     }
     else if(!pRule && pPreviousNumPaM)
@@ -4503,7 +4503,7 @@ void wwSectionManager::InsertSegments()
         if (bInsertSection)
         {
             // Start getting the bounds of this section
-            SwPaM aSectPaM(*mrReader.pPaM);
+            SwPaM aSectPaM(*mrReader.pPaM, mrReader.pPaM);
             SwNodeIndex aAnchor(aSectPaM.GetPoint()->nNode);
             if (aNext != aEnd)
             {
diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx
index 2a86c4f..97865c5 100644
--- a/sw/source/filter/ww8/ww8par2.cxx
+++ b/sw/source/filter/ww8/ww8par2.cxx
@@ -3484,7 +3484,7 @@ void SwWW8ImplReader::StopTable()
     // #i101116# - Keep PaM on table end only for nested tables
     if ( nInTable > 1 )
     {
-        mpTableEndPaM.reset(new SwPaM(*pPaM));
+        mpTableEndPaM.reset(new SwPaM(*pPaM, pPaM));
     }
 }
 
diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
index 521e7f8..daef1e6 100644
--- a/sw/source/filter/ww8/ww8par5.cxx
+++ b/sw/source/filter/ww8/ww8par5.cxx
@@ -2204,7 +2204,7 @@ eF_ResT SwWW8ImplReader::Read_F_Macro( WW8FieldDesc*, OUString& rStr)
         WW8_CP nOldCp = pPlcxMan->Where();
         WW8_CP nCp = nOldCp + nOffset;
 
-        SwPaM aPaM(*pPaM);
+        SwPaM aPaM(*pPaM, pPaM);
         aPaM.SetMark();
         aPaM.Move(fnMoveBackward);
         aPaM.Exchange();
@@ -3318,9 +3318,9 @@ eF_ResT SwWW8ImplReader::Read_F_Tox( WW8FieldDesc* pF, OUString& rStr )
     {
         delete mpPosAfterTOC;
     }
-    mpPosAfterTOC = new SwPaM(*pPaM);
+    mpPosAfterTOC = new SwPaM(*pPaM, pPaM);
     (*pPaM).Move(fnMoveBackward);
-    SwPaM aRegion(*pPaM);
+    SwPaM aRegion(*pPaM, pPaM);
 
     OSL_ENSURE(rDoc.GetCurTOX(*aRegion.GetPoint()), "Misunderstood how toc works");
     if (SwTOXBase* pBase2 = (SwTOXBase*)rDoc.GetCurTOX(*aRegion.GetPoint()))
commit c55599fd0e7198773087c6433031f7119aaaca36
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Apr 25 21:25:00 2015 +0200

    rhbz#1205072: sw: resource mangement SNAFU caused by SwPaM copy ctor
    
    SwPaM copy ctor has the surprising habit of linking the new one into the
    old one's Ring.  If you copy a shell cursor, *this* epic fail happens:
    
    ==948== Thread 6 SelectionManager:
    ==948== Invalid free() / delete / delete[] / realloc()
    ==948==    at 0x4A07CE9: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==948==    by 0x222F542B: SwPaM::operator delete(void*, unsigned long) (in /libreoffice-4-3/instdir/program/libswlo.so)
    ==948==    by 0x2239E20E: SwPaM::~SwPaM() (pam.cxx:422)
    ==948==    by 0x22368630: CheckRange(SwCursor*) (crsrsh.cxx:111)
    ==948==    by 0x2236DECC: SwCrsrShell::UpdateCrsr(unsigned short, bool) (crsrsh.cxx:1397)
    ==948==    by 0x22369113: SwCrsrShell::EndAction(bool) (crsrsh.cxx:290)
    ==948==    by 0x2268971F: SwEditShell::EndAllAction() (edws.cxx:87)
    ==948==    by 0x2262BEF3: SwBaseLink::DataChanged(rtl::OUString const&, com::sun::star::uno::Any const&) (swbaslnk.cxx:274)
    ==948==    by 0x2262C78E: SwBaseLink::SwapIn(bool, bool) (swbaslnk.cxx:411)
    ==948==    by 0x227102EC: SwGrfNode::SwapIn(bool) (ndgrf.cxx:539)
    ==948==    by 0x227121BC: SwGrfNode::MakeCopy(SwDoc*, SwNodeIndex const&) const (ndgrf.cxx:999)
    ==948==    by 0x22610E4D: SwNodes::_CopyNodes(SwNodeRange const&, SwNodeIndex const&, bool, bool) const (nodes.cxx:1862)
    ==948==    by 0x225B98E0: SwDoc::CopyWithFlyInFly(SwNodeRange const&, int, SwNodeIndex const&, SwPaM const*, bool, bool, bool) const (ndcopy.cxx:1336)
    ==948==    by 0x224AC1FF: SwDoc::CopyLayoutFmt(SwFrmFmt const&, SwFmtAnchor const&, bool, bool) (doclay.cxx:446)
    ==948==    by 0x2294D2D4: SwTxtFlyCnt::CopyFlyFmt(SwDoc*) (atrflyin.cxx:130)
    ==948==    by 0x229A5B96: MakeTxtAttr(SwDoc&, SfxPoolItem&, int, int, CopyOrNew_t, SwTxtNode*) (thints.cxx:1060)
    ==948==    by 0x229A64E6: SwTxtNode::InsertItem(SfxPoolItem&, int, int, unsigned short) (thints.cxx:1224)
    ==948==    by 0x2298E536: SwTxtNode::CopyText(SwTxtNode*, SwIndex const&, SwIndex const&, int, bool) (ndtxt.cxx:1773)
    ==948==    by 0x2298DC08: SwTxtNode::CopyText(SwTxtNode*, SwIndex const&, int, bool) (ndtxt.cxx:1555)
    ==948==    by 0x225B4C9D: SwTxtNode::MakeCopy(SwDoc*, SwNodeIndex const&) const (ndcopy.cxx:286)
    ==948==    by 0x22610E4D: SwNodes::_CopyNodes(SwNodeRange const&, SwNodeIndex const&, bool, bool) const (nodes.cxx:1862)
    ==948==    by 0x223EF3C2: SwNodes::_Copy(SwNodeRange const&, SwNodeIndex const&, bool) const (ndarr.hxx:182)
    ==948==    by 0x225B5D8D: SwTableNode::MakeCopy(SwDoc*, SwNodeIndex const&) const (ndcopy.cxx:475)
    ==948==    by 0x22610ACA: SwNodes::_CopyNodes(SwNodeRange const&, SwNodeIndex const&, bool, bool) const (nodes.cxx:1790)
    ==948==    by 0x223EF3C2: SwNodes::_Copy(SwNodeRange const&, SwNodeIndex const&, bool) const (ndarr.hxx:182)
    ==948==    by 0x225CA663: SwSectionNode::MakeCopy(SwDoc*, SwNodeIndex const&) const (ndsect.cxx:1270)
    ==948==    by 0x22610BFC: SwNodes::_CopyNodes(SwNodeRange const&, SwNodeIndex const&, bool, bool) const (nodes.cxx:1817)
    ==948==    by 0x223EF3C2: SwNodes::_Copy(SwNodeRange const&, SwNodeIndex const&, bool) const (ndarr.hxx:182)
    ==948==    by 0x225CA663: SwSectionNode::MakeCopy(SwDoc*, SwNodeIndex const&) const (ndsect.cxx:1270)
    ==948==    by 0x22610BFC: SwNodes::_CopyNodes(SwNodeRange const&, SwNodeIndex const&, bool, bool) const (nodes.cxx:1817)
    ==948==    by 0x223EF3C2: SwNodes::_Copy(SwNodeRange const&, SwNodeIndex const&, bool) const (ndarr.hxx:182)
    ==948==    by 0x225CA663: SwSectionNode::MakeCopy(SwDoc*, SwNodeIndex const&) const (ndsect.cxx:1270)
    ==948==    by 0x22610BFC: SwNodes::_CopyNodes(SwNodeRange const&, SwNodeIndex const&, bool, bool) const (nodes.cxx:1817)
    ==948==    by 0x225B98E0: SwDoc::CopyWithFlyInFly(SwNodeRange const&, int, SwNodeIndex const&, SwPaM const*, bool, bool, bool) const (ndcopy.cxx:1336)
    ==948==    by 0x225B8F15: SwDoc::CopyImpl(SwPaM&, SwPosition&, bool, bool, SwPaM*) const (ndcopy.cxx:1239)
    ==948==    by 0x225B6EE0: SwDoc::CopyRange(SwPaM&, SwPosition&, bool) const (ndcopy.cxx:707)
    ==948==    by 0x22667E69: SwEditShell::_CopySelToDoc(SwDoc*, SwNodeIndex*) (edglss.cxx:244)
    ==948==    by 0x226C8400: SwFEShell::Copy(SwDoc*, rtl::OUString const*) (fecopy.cxx:214)
    ==948==    by 0x22DBF72B: (anonymous namespace)::lclOverWriteDoc(SwWrtShell&, SwDoc&) (swdtflvr.cxx:373)
    ==948==    by 0x22DBFBC6: SwTransferable::GetData(com::sun::star::datatransfer::DataFlavor const&, rtl::OUString const&) (swdtflvr.cxx:439)
    ==948==    by 0x7CB36C7: TransferableHelper::getTransferData2(com::sun::star::datatransfer::DataFlavor const&, rtl::OUString const&) (transfer.cxx:332)
    ==948==    by 0x7CB34B5: TransferableHelper::getTransferData(com::sun::star::datatransfer::DataFlavor const&) (transfer.cxx:306)
    ==948==    by 0x17A7E949: x11::SelectionManager::convertData(com::sun::star::uno::Reference<com::sun::star::datatransfer::XTransferable> const&, unsigned long, unsigned long, int&, com::sun::star::uno::Sequence<signed char>&) (X11_selection.cxx:655)
    ==948==    by 0x17A823CA: x11::SelectionManager::sendData(x11::SelectionAdaptor*, unsigned long, unsigned long, unsigned long, unsigned long) (X11_selection.cxx:1503)
    ==948==    by 0x17A82E03: x11::SelectionManager::handleSelectionRequest(XSelectionRequestEvent&) (X11_selection.cxx:1729)
    ==948==    by 0x17A8A08A: x11::SelectionManager::handleXEvent(_XEvent&) (X11_selection.cxx:3574)
    ==948==  Address 0x21e31a60 is on thread 6's stack
    ==948==  in frame #40, created by SwEditShell::_CopySelToDoc(SwDoc*, SwNodeIndex*) (edglss.cxx:158)
    
    (regression from 49505336a629a75f4fb48bbe0c532b402e857ed4)
    
    Change-Id: I3d0a288a83b4719dda7977b4898dea656ea67388

diff --git a/sw/source/core/edit/eddel.cxx b/sw/source/core/edit/eddel.cxx
index 0cbd8f2..8c0e777 100644
--- a/sw/source/core/edit/eddel.cxx
+++ b/sw/source/core/edit/eddel.cxx
@@ -95,7 +95,7 @@ void SwEditShell::DeleteSel( SwPaM& rPam, bool* pUndo )
         if (bSelectAll)
         {
             assert(dynamic_cast<SwShellCrsr*>(&rPam)); // must be corrected pam
-            pNewPam.reset(new SwPaM(rPam));
+            pNewPam.reset(new SwPaM(*rPam.GetMark(), *rPam.GetPoint()));
             // Selection starts at the first para of the first cell, but we
             // want to delete the table node before the first cell as well.
             pNewPam->Start()->nNode = pNewPam->Start()->nNode.GetNode().FindTableNode()->GetIndex();
diff --git a/sw/source/core/edit/edglss.cxx b/sw/source/core/edit/edglss.cxx
index 8139e10..5647587 100644
--- a/sw/source/core/edit/edglss.cxx
+++ b/sw/source/core/edit/edglss.cxx
@@ -231,13 +231,14 @@ bool SwEditShell::_CopySelToDoc( SwDoc* pInsDoc, SwNodeIndex* pSttNd )
                     // Make a copy, so that in case we need to adjust the selection
                     // for the purpose of copying, our shell cursor is not touched.
                     // (Otherwise we would have to restore it.)
-                    SwPaM aPaM(rPaM);
+                    SwPaM aPaM(*rPaM.GetMark(), *rPaM.GetPoint());
                     if (bSelectAll)
                     {
                         // Selection starts at the first para of the first cell,
                         // but we want to copy the table and the start node before
                         // the first cell as well.
                         aPaM.Start()->nNode = aPaM.Start()->nNode.GetNode().FindTableNode()->GetIndex();
+                        aPaM.Start()->nContent.Assign(nullptr, 0);
                     }
                     bRet = GetDoc()->getIDocumentContentOperations().CopyRange( aPaM, aPos, /*bCopyAll=*/false, /*bCheckPos=*/true ) || bRet;
                 }
commit 1b6be726449fb9b1ff54bc99a1b8839621444ddc
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Apr 25 20:42:54 2015 +0200

    gbuild: CppunitTest: allow specifying arguments with CPPUNITTEST_ARGS
    
    Change-Id: Ied595f97c2a6501a7e80a378a474689c43ad60d9

diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
index 970e8b9..a6eae56 100644
--- a/solenv/gbuild/CppunitTest.mk
+++ b/solenv/gbuild/CppunitTest.mk
@@ -68,7 +68,8 @@ $(if $(URE),\
 $(if $(VCL),\
 	--protector $(call gb_Library_get_target,vclbootstrapprotector) vclbootstrapprotector \
  ) \
-$(ARGS)
+$(ARGS) \
+$(CPPUNITTEST_ARGS)
 endef
 
 .PHONY : $(call gb_CppunitTest_get_clean_target,%)
commit 77de4200b5d344e12c7239c32af2a2af887a176b
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Apr 25 19:26:59 2015 +0200

    sw: remove more SwAccessibleContext code that...
    
    ... looks related to some non-existent "async loading" feature.
    
    Change-Id: I99eaad92ce7f98e65c491e9862bed505ce1aa9fc

diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
index 4e3b92f..30b19f6 100644
--- a/sw/source/core/access/acccontext.cxx
+++ b/sw/source/core/access/acccontext.cxx
@@ -521,7 +521,6 @@ SwAccessibleContext::SwAccessibleContext( SwAccessibleMap *const pMap,
     , m_nRole(nRole)
     , m_isDisposing( false )
     , m_isRegisteredAtAccessibleMap( true )
-    , m_isBeginDocumentLoad( true )
     , m_isSelectedInDoc(false)
 {
     InitStates();
@@ -581,21 +580,6 @@ uno::Reference< XAccessible> SAL_CALL
     {
         ::rtl::Reference < SwAccessibleContext > xChildImpl(
                 GetMap()->GetContextImpl( aChild.GetSwFrm(), !m_isDisposing )  );
-        //Send out accessible event when begin load.
-        if (m_isBeginDocumentLoad && m_nRole == AccessibleRole::DOCUMENT_TEXT)
-        {
-
-            FireStateChangedEvent( AccessibleStateType::FOCUSABLE,true );
-            FireStateChangedEvent( AccessibleStateType::BUSY,true );
-            FireStateChangedEvent( AccessibleStateType::FOCUSED,true );
-            // OFFSCREEN == !SHOWING, should stay consistent
-            // FireStateChangedEvent( AccessibleStateType::OFFSCREEN,true );
-            FireStateChangedEvent( AccessibleStateType::SHOWING,true );
-            FireStateChangedEvent( AccessibleStateType::BUSY,false );
-            // OFFSCREEN again?
-            // FireStateChangedEvent( AccessibleStateType::OFFSCREEN,false );
-            m_isBeginDocumentLoad = false;
-        }
         if( xChildImpl.is() )
         {
             xChildImpl->SetParent( this );
diff --git a/sw/source/core/access/acccontext.hxx b/sw/source/core/access/acccontext.hxx
index 873e9b2..4e620d6 100644
--- a/sw/source/core/access/acccontext.hxx
+++ b/sw/source/core/access/acccontext.hxx
@@ -89,8 +89,6 @@ private:
     bool m_isRegisteredAtAccessibleMap;
 
     void InitStates();
-    //Add a member to identify the first time that document load
-    bool m_isBeginDocumentLoad;
 
 protected:
     void SetName( const OUString& rName ) { m_sName = rName; }
commit 1d2244ecac353c227c6001d9a2e326d42b1116b0
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Apr 25 19:23:12 2015 +0200

    sw: remove SwAccessibleDocument XEventListener buggy dead code
    
    This was added with IA2, but evidently it's dead - the listener is never
    registered at the broadcaster.  Also the first of the events it is
    listening for does not exist, and the others are actually called
    "OnLoadFinished" and "OnLayoutFinished".
    
    Also remove the "isIfAsynLoad" [sic] member.
    
    Change-Id: Ib261c193289e415af91b3097c525e90ef051f824

diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
index aca8c35..4e3b92f 100644
--- a/sw/source/core/access/acccontext.cxx
+++ b/sw/source/core/access/acccontext.cxx
@@ -521,9 +521,7 @@ SwAccessibleContext::SwAccessibleContext( SwAccessibleMap *const pMap,
     , m_nRole(nRole)
     , m_isDisposing( false )
     , m_isRegisteredAtAccessibleMap( true )
-    //Initialize the begin document load and IfAsynLoad to true
     , m_isBeginDocumentLoad( true )
-    , isIfAsynLoad( true )
     , m_isSelectedInDoc(false)
 {
     InitStates();
@@ -589,16 +587,13 @@ uno::Reference< XAccessible> SAL_CALL
 
             FireStateChangedEvent( AccessibleStateType::FOCUSABLE,true );
             FireStateChangedEvent( AccessibleStateType::BUSY,true );
-            if( !isIfAsynLoad )
-            {
-                FireStateChangedEvent( AccessibleStateType::FOCUSED,true );
-                // OFFSCREEN == !SHOWING, should stay consistent
-                // FireStateChangedEvent( AccessibleStateType::OFFSCREEN,true );
-                FireStateChangedEvent( AccessibleStateType::SHOWING,true );
-                FireStateChangedEvent( AccessibleStateType::BUSY,false );
-                // OFFSCREEN again?
-                // FireStateChangedEvent( AccessibleStateType::OFFSCREEN,false );
-            }
+            FireStateChangedEvent( AccessibleStateType::FOCUSED,true );
+            // OFFSCREEN == !SHOWING, should stay consistent
+            // FireStateChangedEvent( AccessibleStateType::OFFSCREEN,true );
+            FireStateChangedEvent( AccessibleStateType::SHOWING,true );
+            FireStateChangedEvent( AccessibleStateType::BUSY,false );
+            // OFFSCREEN again?
+            // FireStateChangedEvent( AccessibleStateType::OFFSCREEN,false );
             m_isBeginDocumentLoad = false;
         }
         if( xChildImpl.is() )
diff --git a/sw/source/core/access/acccontext.hxx b/sw/source/core/access/acccontext.hxx
index 43ec362..873e9b2 100644
--- a/sw/source/core/access/acccontext.hxx
+++ b/sw/source/core/access/acccontext.hxx
@@ -98,8 +98,6 @@ protected:
     {
         return m_nRole;
     }
-    //Add a member to identify if the document is Asyn load.
-    bool isIfAsynLoad;
     //This flag is used to mark the object's selected state.
     bool   m_isSelectedInDoc;
     void SetParent( SwAccessibleContext *pParent );
diff --git a/sw/source/core/access/accdoc.cxx b/sw/source/core/access/accdoc.cxx
index 0e33471..765ce5f 100644
--- a/sw/source/core/access/accdoc.cxx
+++ b/sw/source/core/access/accdoc.cxx
@@ -465,12 +465,6 @@ uno::Any SwAccessibleDocument::queryInterface(
         uno::Reference<XAccessibleSelection> aSelect = this;
         aRet <<= aSelect;
     }
-    //Add XEventListener interface support.
-    else if ( (rType == cppu::UnoType<com::sun::star::document::XEventListener>::get()) )
-    {
-        uno::Reference<com::sun::star::document::XEventListener> aSelect = this;
-        aRet <<= aSelect;
-    }
     else  if ( rType == cppu::UnoType<XAccessibleExtendedAttributes>::get())
     {
         uno::Reference<XAccessibleExtendedAttributes> aAttribute = this;
@@ -494,13 +488,10 @@ uno::Sequence< uno::Type > SAL_CALL SwAccessibleDocument::getTypes()
 
     sal_Int32 nIndex = aTypes.getLength();
     //Reset types memory alloc
-    //aTypes.realloc( nIndex + 1 );
-    aTypes.realloc( nIndex + 2 );
+    aTypes.realloc( nIndex + 1 );
 
     uno::Type* pTypes = aTypes.getArray();
     pTypes[nIndex] = cppu::UnoType<XAccessibleSelection>::get();
-    //Add XEventListener interface support.
-    pTypes[nIndex + 1 ] = cppu::UnoType<com::sun::star::document::XEventListener>::get();
     return aTypes;
 }
 
@@ -562,40 +553,6 @@ void SwAccessibleDocument::deselectAccessibleChild(
     maSelectionHelper.deselectAccessibleChild( nChildIndex );
 }
 
-//Implement XEventListener interfaces
-void SAL_CALL SwAccessibleDocument::notifyEvent( const ::com::sun::star::document::EventObject& Event )
-            throw (::com::sun::star::uno::RuntimeException, std::exception)
-{
-    SolarMutexGuard g;
-
-    if ( Event.EventName == "FirstPageShows" )
-    {
-        FireStateChangedEvent( AccessibleStateType::FOCUSED,true );
-    }
-    else if ( Event.EventName == "LoadFinished" )
-    {
-        // IA2 CWS. MT: OFFSCREEN == !SHOWING, should stay consistent
-        // FireStateChangedEvent( AccessibleStateType::OFFSCREEN,true );
-        // MT: LoadFinished => Why not SHOWING == TRUE?
-        FireStateChangedEvent( AccessibleStateType::SHOWING,false );
-    }
-    else if ( Event.EventName == "FormatFinished" )
-    {
-        FireStateChangedEvent( AccessibleStateType::BUSY,false );
-        // FireStateChangedEvent( AccessibleStateType::OFFSCREEN,false );
-        FireStateChangedEvent( AccessibleStateType::SHOWING,true );
-    }
-    else
-    {
-        isIfAsynLoad = false;
-    }
-}
-
-void SAL_CALL SwAccessibleDocument::disposing( const ::com::sun::star::lang::EventObject& )
-            throw (::com::sun::star::uno::RuntimeException, std::exception)
-{
-}
-
 uno::Any SAL_CALL SwAccessibleDocument::getExtendedAttributes()
     throw (::com::sun::star::lang::IndexOutOfBoundsException,
            ::com::sun::star::uno::RuntimeException,
diff --git a/sw/source/core/access/accdoc.hxx b/sw/source/core/access/accdoc.hxx
index 953c8a1..1fae89e 100644
--- a/sw/source/core/access/accdoc.hxx
+++ b/sw/source/core/access/accdoc.hxx
@@ -107,7 +107,6 @@ public:
  */
 class SwAccessibleDocument : public SwAccessibleDocumentBase,
                              public com::sun::star::accessibility::XAccessibleSelection,
-                             public com::sun::star::document::XEventListener,
                              public com::sun::star::accessibility::XAccessibleExtendedAttributes,
                              public com::sun::star::accessibility::XAccessibleGetAccFlowTo
 {
@@ -125,11 +124,6 @@ public:
     SwAccessibleDocument( SwAccessibleMap* pInitMap );
 
     DECL_LINK( WindowChildEventListener, VclSimpleEvent* );
-    //  XEventListener
-    virtual void SAL_CALL notifyEvent( const ::com::sun::star::document::EventObject& Event )
-            throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
-    virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Event )
-            throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
     // XServiceInfo
 
commit 8c7928b647c49e7bb4a6d0ee46a1d5bc90f168b5
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Apr 25 19:15:27 2015 +0200

    sw: prefix members of SwAccessibleContext
    
    Change-Id: Ie5cb2d9819fcb4b22b596a0ba407043d9d80db7d

diff --git a/sw/source/core/access/acccell.cxx b/sw/source/core/access/acccell.cxx
index aee976e..b52f9a4 100644
--- a/sw/source/core/access/acccell.cxx
+++ b/sw/source/core/access/acccell.cxx
@@ -127,7 +127,7 @@ bool SwAccessibleCell::_InvalidateMyCursorPos()
     bool bNew = IsSelected();
     bool bOld;
     {
-        osl::MutexGuard aGuard( aMutex );
+        osl::MutexGuard aGuard( m_Mutex );
         bOld = bIsSelected;
         bIsSelected = bNew;
     }
@@ -227,7 +227,7 @@ void SwAccessibleCell::_InvalidateCursorPos()
 
 bool SwAccessibleCell::HasCursor()
 {
-    osl::MutexGuard aGuard( aMutex );
+    osl::MutexGuard aGuard( m_Mutex );
     return bIsSelected;
 }
 
diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
index dd42c52..aca8c35 100644
--- a/sw/source/core/access/acccontext.cxx
+++ b/sw/source/core/access/acccontext.cxx
@@ -55,27 +55,27 @@ using namespace ::com::sun::star::accessibility;
 
 void SwAccessibleContext::InitStates()
 {
-    bIsShowingState = GetMap() && IsShowing( *(GetMap()) );
+    m_isShowingState = GetMap() && IsShowing( *(GetMap()) );
 
     SwViewShell *pVSh = GetMap()->GetShell();
-    bIsEditableState = pVSh && IsEditable( pVSh );
-    bIsOpaqueState = pVSh && IsOpaque( pVSh );
-    bIsDefuncState = false;
+    m_isEditableState = pVSh && IsEditable( pVSh );
+    m_isOpaqueState = pVSh && IsOpaque( pVSh );
+    m_isDefuncState = false;
 }
 
 void SwAccessibleContext::SetParent( SwAccessibleContext *pParent )
 {
-    osl::MutexGuard aGuard( aMutex );
+    osl::MutexGuard aGuard( m_Mutex );
 
     uno::Reference < XAccessible > xParent( pParent );
-    xWeakParent = xParent;
+    m_xWeakParent = xParent;
 }
 
 uno::Reference< XAccessible > SwAccessibleContext::GetWeakParent() const
 {
-    osl::MutexGuard aGuard( aMutex );
+    osl::MutexGuard aGuard( m_Mutex );
 
-    uno::Reference< XAccessible > xParent( xWeakParent );
+    uno::Reference< XAccessible > xParent( m_xWeakParent );
     return xParent;
 }
 
@@ -278,9 +278,9 @@ void SwAccessibleContext::Scrolled( const SwRect& rOldVisArea )
     bool bIsOldShowingState;
     bool bIsNewShowingState = IsShowing( *(GetMap()) );
     {
-        osl::MutexGuard aGuard( aMutex );
-        bIsOldShowingState = bIsShowingState;
-        bIsShowingState = bIsNewShowingState;
+        osl::MutexGuard aGuard( m_Mutex );
+        bIsOldShowingState = m_isShowingState;
+        m_isShowingState = bIsNewShowingState;
     }
 
     if( bIsOldShowingState != bIsNewShowingState )
@@ -443,8 +443,8 @@ void SwAccessibleContext::FireAccessibleEvent( AccessibleEventObject& rEvent )
         rEvent.Source = xThis;
     }
 
-    if (nClientId)
-        comphelper::AccessibleEventNotifier::addEvent( nClientId, rEvent );
+    if (m_nClientId)
+        comphelper::AccessibleEventNotifier::addEvent( m_nClientId, rEvent );
 }
 
 void SwAccessibleContext::FireVisibleDataEvent()
@@ -475,11 +475,11 @@ void SwAccessibleContext::GetStates(
     SolarMutexGuard aGuard;
 
     // SHOWING
-    if( bIsShowingState )
+    if (m_isShowingState)
         rStateSet.AddState( AccessibleStateType::SHOWING );
 
     // EDITABLE
-    if( bIsEditableState )
+    if (m_isEditableState)
     //Set editable state to graphic and other object when the document is editable
     {
         rStateSet.AddState( AccessibleStateType::EDITABLE );
@@ -490,13 +490,13 @@ void SwAccessibleContext::GetStates(
     rStateSet.AddState( AccessibleStateType::ENABLED );
 
     // OPAQUE
-    if( bIsOpaqueState )
+    if (m_isOpaqueState)
         rStateSet.AddState( AccessibleStateType::OPAQUE );
 
     // VISIBLE
     rStateSet.AddState( AccessibleStateType::VISIBLE );
 
-    if( bIsDefuncState )
+    if (m_isDefuncState)
         rStateSet.AddState( AccessibleStateType::DEFUNC );
 }
 
@@ -504,27 +504,27 @@ bool SwAccessibleContext::IsEditableState()
 {
     bool bRet;
     {
-        osl::MutexGuard aGuard( aMutex );
-        bRet = bIsEditableState;
+        osl::MutexGuard aGuard( m_Mutex );
+        bRet = m_isEditableState;
     }
 
     return bRet;
 }
 
-SwAccessibleContext::SwAccessibleContext( SwAccessibleMap *pM,
-                                          sal_Int16 nR,
+SwAccessibleContext::SwAccessibleContext( SwAccessibleMap *const pMap,
+                                          sal_Int16 const nRole,
                                           const SwFrm *pF )
-    : SwAccessibleFrame( pM->GetVisArea().SVRect(), pF,
-                         pM->GetShell()->IsPreview() )
-    , pMap( pM )
-    , nClientId(0)
-    , nRole( nR )
-    , bDisposing( false )
-    , bRegisteredAtAccessibleMap( true )
+    : SwAccessibleFrame( pMap->GetVisArea().SVRect(), pF,
+                         pMap->GetShell()->IsPreview() )
+    , m_pMap( pMap )
+    , m_nClientId(0)
+    , m_nRole(nRole)
+    , m_isDisposing( false )
+    , m_isRegisteredAtAccessibleMap( true )
     //Initialize the begin document load and IfAsynLoad to true
-    , bBeginDocumentLoad( true )
+    , m_isBeginDocumentLoad( true )
     , isIfAsynLoad( true )
-    , bIsSeletedInDoc( false)
+    , m_isSelectedInDoc(false)
 {
     InitStates();
 }
@@ -550,10 +550,10 @@ sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleChildCount()
 
     CHECK_FOR_DEFUNC( XAccessibleContext )
     //Notify the frame is a document
-    if( nRole == AccessibleRole::DOCUMENT_TEXT )
+    if (m_nRole == AccessibleRole::DOCUMENT_TEXT)
         bIsAccDocUse = true;
 
-    return bDisposing ? 0 : GetChildCount( *(GetMap()) );
+    return m_isDisposing ? 0 : GetChildCount( *(GetMap()) );
 }
 
 uno::Reference< XAccessible> SAL_CALL
@@ -565,7 +565,7 @@ uno::Reference< XAccessible> SAL_CALL
     CHECK_FOR_DEFUNC( XAccessibleContext )
 
     //Notify the frame is a document
-    if( nRole == AccessibleRole::DOCUMENT_TEXT )
+    if (m_nRole == AccessibleRole::DOCUMENT_TEXT)
         bIsAccDocUse = true;
 
     const SwAccessibleChild aChild( GetChild( *(GetMap()), nIndex ) );
@@ -582,9 +582,9 @@ uno::Reference< XAccessible> SAL_CALL
     if( aChild.GetSwFrm() )
     {
         ::rtl::Reference < SwAccessibleContext > xChildImpl(
-                GetMap()->GetContextImpl( aChild.GetSwFrm(), !bDisposing )  );
+                GetMap()->GetContextImpl( aChild.GetSwFrm(), !m_isDisposing )  );
         //Send out accessible event when begin load.
-        if( bBeginDocumentLoad && nRole == AccessibleRole::DOCUMENT_TEXT )
+        if (m_isBeginDocumentLoad && m_nRole == AccessibleRole::DOCUMENT_TEXT)
         {
 
             FireStateChangedEvent( AccessibleStateType::FOCUSABLE,true );
@@ -599,7 +599,7 @@ uno::Reference< XAccessible> SAL_CALL
                 // OFFSCREEN again?
                 // FireStateChangedEvent( AccessibleStateType::OFFSCREEN,false );
             }
-            bBeginDocumentLoad = false;
+            m_isBeginDocumentLoad = false;
         }
         if( xChildImpl.is() )
         {
@@ -611,7 +611,7 @@ uno::Reference< XAccessible> SAL_CALL
     {
         ::rtl::Reference < ::accessibility::AccessibleShape > xChildImpl(
                 GetMap()->GetContextImpl( aChild.GetDrawObject(),
-                                          this, !bDisposing )  );
+                                          this, !m_isDisposing) );
         if( xChildImpl.is() )
             xChild = xChildImpl.get();
     }
@@ -631,18 +631,18 @@ uno::Reference< XAccessible> SAL_CALL SwAccessibleContext::getAccessibleParent()
     CHECK_FOR_DEFUNC( XAccessibleContext )
 
     const SwFrm *pUpper = GetParent();
-    OSL_ENSURE( pUpper != 0 || bDisposing, "no upper found" );
+    OSL_ENSURE( pUpper != 0 || m_isDisposing, "no upper found" );
 
     uno::Reference< XAccessible > xAcc;
     if( pUpper )
-        xAcc = GetMap()->GetContext( pUpper, !bDisposing );
+        xAcc = GetMap()->GetContext( pUpper, !m_isDisposing );
 
-    OSL_ENSURE( xAcc.is() || bDisposing, "no parent found" );
+    OSL_ENSURE( xAcc.is() || m_isDisposing, "no parent found" );
 
     // Remember the parent as weak ref.
     {
-        osl::MutexGuard aWeakParentGuard( aMutex );
-        xWeakParent = xAcc;
+        osl::MutexGuard aWeakParentGuard( m_Mutex );
+        m_xWeakParent = xAcc;
     }
 
     return xAcc;
@@ -656,14 +656,14 @@ sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleIndexInParent()
     CHECK_FOR_DEFUNC( XAccessibleContext )
 
     const SwFrm *pUpper = GetParent();
-    OSL_ENSURE( pUpper != 0 || bDisposing, "no upper found" );
+    OSL_ENSURE( pUpper != 0 || m_isDisposing, "no upper found" );
 
     sal_Int32 nIndex = -1;
     if( pUpper )
     {
         ::rtl::Reference < SwAccessibleContext > xAccImpl(
-            GetMap()->GetContextImpl( pUpper, !bDisposing )  );
-        OSL_ENSURE( xAccImpl.is() || bDisposing, "no parent found" );
+            GetMap()->GetContextImpl(pUpper, !m_isDisposing) );
+        OSL_ENSURE( xAccImpl.is() || m_isDisposing, "no parent found" );
         if( xAccImpl.is() )
             nIndex = xAccImpl->GetChildIndex( *(GetMap()), SwAccessibleChild(GetFrm()) );
     }
@@ -674,7 +674,7 @@ sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleIndexInParent()
 sal_Int16 SAL_CALL SwAccessibleContext::getAccessibleRole()
         throw (uno::RuntimeException, std::exception)
 {
-    return nRole;
+    return m_nRole;
 }
 
 OUString SAL_CALL SwAccessibleContext::getAccessibleDescription()
@@ -687,7 +687,7 @@ OUString SAL_CALL SwAccessibleContext::getAccessibleDescription()
 OUString SAL_CALL SwAccessibleContext::getAccessibleName()
         throw (uno::RuntimeException, std::exception)
 {
-    return sName;
+    return m_sName;
 }
 
 uno::Reference< XAccessibleRelationSet> SAL_CALL
@@ -710,7 +710,7 @@ uno::Reference<XAccessibleStateSet> SAL_CALL
     ::utl::AccessibleStateSetHelper *pStateSet =
         new ::utl::AccessibleStateSetHelper;
 
-    if( bIsSeletedInDoc )
+    if (m_isSelectedInDoc)
         pStateSet->AddState( AccessibleStateType::SELECTED );
 
     uno::Reference<XAccessibleStateSet> xStateSet( pStateSet );
@@ -735,9 +735,9 @@ void SAL_CALL SwAccessibleContext::addAccessibleEventListener(
     if (xListener.is())
     {
         SolarMutexGuard aGuard;
-        if (!nClientId)
-            nClientId = comphelper::AccessibleEventNotifier::registerClient( );
-        comphelper::AccessibleEventNotifier::addEventListener( nClientId, xListener );
+        if (!m_nClientId)
+            m_nClientId = comphelper::AccessibleEventNotifier::registerClient( );
+        comphelper::AccessibleEventNotifier::addEventListener( m_nClientId, xListener );
     }
 }
 
@@ -748,15 +748,15 @@ void SAL_CALL SwAccessibleContext::removeAccessibleEventListener(
     if (xListener.is())
     {
         SolarMutexGuard aGuard;
-        sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( nClientId, xListener );
+        sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( m_nClientId, xListener );
         if ( !nListenerCount )
         {
             // no listeners anymore
             // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
             // and at least to us not firing any events anymore, in case somebody calls
             // NotifyAccessibleEvent, again
-            comphelper::AccessibleEventNotifier::revokeClient( nClientId );
-            nClientId = 0;
+            comphelper::AccessibleEventNotifier::revokeClient( m_nClientId );
+            m_nClientId = 0;
         }
     }
 }
@@ -1052,7 +1052,7 @@ void SwAccessibleContext::Dispose( bool bRecursive )
     OSL_ENSURE( GetMap()->GetVisArea() == GetVisArea(),
                 "invalid vis area for dispose" );
 
-    bDisposing = true;
+    m_isDisposing = true;
 
     // dispose children
     if( bRecursive )
@@ -1076,22 +1076,22 @@ void SwAccessibleContext::Dispose( bool bRecursive )
     // set defunc state (its not required to broadcast a state changed
     // event if the object is disposed afterwards)
     {
-        osl::MutexGuard aDefuncStateGuard( aMutex );
-        bIsDefuncState = true;
+        osl::MutexGuard aDefuncStateGuard( m_Mutex );
+        m_isDefuncState = true;
     }
 
     // broadcast dispose event
-    if ( nClientId )
+    if (m_nClientId)
     {
-        comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nClientId, *this );
-        nClientId =  0;
+        comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( m_nClientId, *this );
+        m_nClientId =  0;
     }
 
     RemoveFrmFromAccessibleMap();
     ClearFrm();
-    pMap = 0;
+    m_pMap = nullptr;
 
-    bDisposing = false;
+    m_isDisposing = false;
 }
 
 void SwAccessibleContext::DisposeChild( const SwAccessibleChild& rChildFrmOrObj,
@@ -1144,9 +1144,9 @@ void SwAccessibleContext::InvalidatePosOrSize( const SwRect& )
     bool bIsOldShowingState;
     bool bIsNewShowingState = IsShowing( *(GetMap()) );
     {
-        osl::MutexGuard aShowingStateGuard( aMutex );
-        bIsOldShowingState = bIsShowingState;
-        bIsShowingState = bIsNewShowingState;
+        osl::MutexGuard aShowingStateGuard( m_Mutex );
+        bIsOldShowingState = m_isShowingState;
+        m_isShowingState = bIsNewShowingState;
     }
 
     if( bIsOldShowingState != bIsNewShowingState )
@@ -1292,9 +1292,9 @@ void SwAccessibleContext::InvalidateStates( AccessibleStates _nStates )
                 bool bIsOldEditableState;
                 bool bIsNewEditableState = IsEditable( pVSh );
                 {
-                    osl::MutexGuard aGuard( aMutex );
-                    bIsOldEditableState = bIsEditableState;
-                    bIsEditableState = bIsNewEditableState;
+                    osl::MutexGuard aGuard( m_Mutex );
+                    bIsOldEditableState = m_isEditableState;
+                    m_isEditableState = bIsNewEditableState;
                 }
 
                 if( bIsOldEditableState != bIsNewEditableState )
@@ -1306,9 +1306,9 @@ void SwAccessibleContext::InvalidateStates( AccessibleStates _nStates )
                 bool bIsOldOpaqueState;
                 bool bIsNewOpaqueState = IsOpaque( pVSh );
                 {
-                    osl::MutexGuard aGuard( aMutex );
-                    bIsOldOpaqueState = bIsOpaqueState;
-                    bIsOpaqueState = bIsNewOpaqueState;
+                    osl::MutexGuard aGuard( m_Mutex );
+                    bIsOldOpaqueState = m_isOpaqueState;
+                    m_isOpaqueState = bIsNewOpaqueState;
                 }
 
                 if( bIsOldOpaqueState != bIsNewOpaqueState )
@@ -1438,7 +1438,7 @@ OUString SwAccessibleContext::GetResource( sal_uInt16 nResId,
 
 void SwAccessibleContext::RemoveFrmFromAccessibleMap()
 {
-    if( bRegisteredAtAccessibleMap && GetFrm() && GetMap() )
+    if (m_isRegisteredAtAccessibleMap && GetFrm() && GetMap())
         GetMap()->RemoveContext( GetFrm() );
 }
 
@@ -1489,12 +1489,12 @@ void SwAccessibleContext::GetAdditionalAccessibleChildren( std::vector< vcl::Win
     }
 }
 
-bool SwAccessibleContext::SetSelectedState(bool bSeleted)
+bool SwAccessibleContext::SetSelectedState(bool const bSelected)
 {
-    if(bIsSeletedInDoc != bSeleted)
+    if (m_isSelectedInDoc != bSelected)
     {
-        bIsSeletedInDoc = bSeleted;
-        FireStateChangedEvent( AccessibleStateType::SELECTED, bSeleted );
+        m_isSelectedInDoc = bSelected;
+        FireStateChangedEvent( AccessibleStateType::SELECTED, bSelected );
         return true;
     }
     return false;
diff --git a/sw/source/core/access/acccontext.hxx b/sw/source/core/access/acccontext.hxx
index a609f5c..43ec362 100644
--- a/sw/source/core/access/acccontext.hxx
+++ b/sw/source/core/access/acccontext.hxx
@@ -59,57 +59,57 @@ class SwAccessibleContext :
     friend class SwAccessibleSelectionHelper;
 
 protected:
-    mutable ::osl::Mutex aListenerMutex;
-    mutable ::osl::Mutex aMutex;
+    mutable ::osl::Mutex m_ListenerMutex;
+    mutable ::osl::Mutex m_Mutex;
 
 private:
-    OUString sName;  // immutable outside constructor
+    OUString m_sName;  // immutable outside constructor
 
     // The parent if it has been retrieved. This is always an
     // SwAccessibleContext. (protected by Mutex)
     ::com::sun::star::uno::WeakReference <
-        ::com::sun::star::accessibility::XAccessible > xWeakParent;
+        ::com::sun::star::accessibility::XAccessible > m_xWeakParent;
 
-    SwAccessibleMap *pMap;  // must be protected by solar mutex
+    SwAccessibleMap *m_pMap; // must be protected by solar mutex
 
-    sal_uInt32 nClientId;   // client id in the AccessibleEventNotifier queue
-    sal_Int16 nRole;        // immutable outside constructor
+    sal_uInt32 m_nClientId;  // client id in the AccessibleEventNotifier queue
+    sal_Int16 m_nRole;        // immutable outside constructor
 
     // The current states (protected by mutex)
-    bool bIsShowingState : 1;
-    bool bIsEditableState : 1;
-    bool bIsOpaqueState : 1;
-    bool bIsDefuncState : 1;
+    bool m_isShowingState : 1;
+    bool m_isEditableState : 1;
+    bool m_isOpaqueState : 1;
+    bool m_isDefuncState : 1;
 
     // Are we currently disposing that object (protected by solar mutex)?
-    bool bDisposing : 1;
+    bool m_isDisposing : 1;
 
     // #i85634# - boolean, indicating if the accessible context is
     // in general registered at the accessible map.
-    bool bRegisteredAtAccessibleMap;
+    bool m_isRegisteredAtAccessibleMap;
 
     void InitStates();
     //Add a member to identify the first time that document load
-    bool bBeginDocumentLoad;
+    bool m_isBeginDocumentLoad;
 
 protected:
-    void SetName( const OUString& rName ) { sName = rName; }
+    void SetName( const OUString& rName ) { m_sName = rName; }
     inline sal_Int16 GetRole() const
     {
-        return nRole;
+        return m_nRole;
     }
     //Add a member to identify if the document is Asyn load.
     bool isIfAsynLoad;
     //This flag is used to mark the object's selected state.
-    bool   bIsSeletedInDoc;
+    bool   m_isSelectedInDoc;
     void SetParent( SwAccessibleContext *pParent );
     ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> GetWeakParent() const;
 
-    bool IsDisposing() const { return bDisposing; }
+    bool IsDisposing() const { return m_isDisposing; }
 
     vcl::Window *GetWindow();
-    SwAccessibleMap *GetMap() { return pMap; }
-    const SwAccessibleMap *GetMap() const { return pMap; }
+    SwAccessibleMap *GetMap() { return m_pMap; }
+    const SwAccessibleMap *GetMap() const { return m_pMap; }
 
     /** convenience method to get the SwViewShell through accessibility map */
     inline SwViewShell* GetShell()
@@ -166,7 +166,7 @@ protected:
     virtual void _InvalidateFocus();
 
 public:
-    void SetMap(SwAccessibleMap *pM){pMap = pM;}
+    void SetMap(SwAccessibleMap *const pMap) { m_pMap = pMap; }
     void FireAccessibleEvent( ::com::sun::star::accessibility::AccessibleEventObject& rEvent );
 
 protected:
@@ -190,14 +190,14 @@ protected:
     // #i85634#
     inline void NotRegisteredAtAccessibleMap()
     {
-        bRegisteredAtAccessibleMap = false;
+        m_isRegisteredAtAccessibleMap = false;
     }
     void RemoveFrmFromAccessibleMap();
 
     virtual ~SwAccessibleContext();
 
 public:
-    SwAccessibleContext( SwAccessibleMap *pMap, sal_Int16 nRole,
+    SwAccessibleContext( SwAccessibleMap *m_pMap, sal_Int16 nRole,
                          const SwFrm *pFrm );
 
     // XAccessible
@@ -362,7 +362,7 @@ public:
     // #i88070# - get all additional accessible children
     void GetAdditionalAccessibleChildren( std::vector< vcl::Window* >* pChildren );
 
-    const OUString& GetName() const { return sName; }
+    const OUString& GetName() const { return m_sName; }
 
     virtual bool HasCursor();   // required by map to remember that object
 
@@ -378,7 +378,7 @@ public:
 
     //This method is used to updated the selected state and fire the selected state changed event.
     virtual bool SetSelectedState(bool bSeleted);
-    bool  IsSeletedInDoc(){  return bIsSeletedInDoc; }
+    bool  IsSeletedInDoc() { return m_isSelectedInDoc; }
 
     static OUString GetResource( sal_uInt16 nResId,
                                         const OUString *pArg1 = 0,
diff --git a/sw/source/core/access/accframebase.cxx b/sw/source/core/access/accframebase.cxx
index 9682e94..d5bb32a 100644
--- a/sw/source/core/access/accframebase.cxx
+++ b/sw/source/core/access/accframebase.cxx
@@ -146,7 +146,7 @@ void SwAccessibleFrameBase::_InvalidateCursorPos()
     bool bOldSelected;
 
     {
-        osl::MutexGuard aGuard( aMutex );
+        osl::MutexGuard aGuard( m_Mutex );
         bOldSelected = bIsSelected;
         bIsSelected = bNewSelected;
     }
@@ -192,7 +192,7 @@ void SwAccessibleFrameBase::_InvalidateFocus()
         bool bSelected;
 
         {
-            osl::MutexGuard aGuard( aMutex );
+            osl::MutexGuard aGuard( m_Mutex );
             bSelected = bIsSelected;
         }
         assert(bSelected && "focus object should be selected");
@@ -204,7 +204,7 @@ void SwAccessibleFrameBase::_InvalidateFocus()
 
 bool SwAccessibleFrameBase::HasCursor()
 {
-    osl::MutexGuard aGuard( aMutex );
+    osl::MutexGuard aGuard( m_Mutex );
     return bIsSelected;
 }
 
@@ -377,12 +377,12 @@ SwFlyFrm* SwAccessibleFrameBase::getFlyFrm() const
 
 bool SwAccessibleFrameBase::SetSelectedState( bool )
 {
-    bool bParaSeleted = GetSelectedState() || IsSelected();
+    bool bParaSelected = GetSelectedState() || IsSelected();
 
-    if(bIsSeletedInDoc != bParaSeleted)
+    if (m_isSelectedInDoc != bParaSelected)
     {
-        bIsSeletedInDoc = bParaSeleted;
-        FireStateChangedEvent( AccessibleStateType::SELECTED, bParaSeleted );
+        m_isSelectedInDoc = bParaSelected;
+        FireStateChangedEvent( AccessibleStateType::SELECTED, bParaSelected );
         return true;
     }
     return false;
diff --git a/sw/source/core/access/accpage.cxx b/sw/source/core/access/accpage.cxx
index 11a8bdd..46d6e0d 100644
--- a/sw/source/core/access/accpage.cxx
+++ b/sw/source/core/access/accpage.cxx
@@ -71,7 +71,7 @@ void SwAccessiblePage::_InvalidateCursorPos()
     bool bOldSelected;
 
     {
-        osl::MutexGuard aGuard( aMutex );
+        osl::MutexGuard aGuard( m_Mutex );
         bOldSelected = bIsSelected;
         bIsSelected = bNewSelected;
     }
@@ -100,7 +100,7 @@ void SwAccessiblePage::_InvalidateFocus()
         bool bSelected;
 
         {
-            osl::MutexGuard aGuard( aMutex );
+            osl::MutexGuard aGuard( m_Mutex );
             bSelected = bIsSelected;
         }
         OSL_ENSURE( bSelected, "focus object should be selected" );
@@ -132,7 +132,7 @@ SwAccessiblePage::~SwAccessiblePage()
 
 bool SwAccessiblePage::HasCursor()
 {
-    osl::MutexGuard aGuard( aMutex );
+    osl::MutexGuard aGuard( m_Mutex );
     return bIsSelected;
 }
 
diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx
index 99a77d1..8758038 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -425,7 +425,7 @@ void SwAccessibleParagraph::_InvalidateContent( bool bVisibleDataFired )
     nHeadingLevel = GetRealHeadingLevel();
     bool bOldIsHeading;
     {
-        osl::MutexGuard aGuard( aMutex );
+        osl::MutexGuard aGuard( m_Mutex );
         bOldIsHeading = bIsHeading;
         if( bIsHeading != bNewIsHeading )
             bIsHeading = bNewIsHeading;
@@ -445,7 +445,7 @@ void SwAccessibleParagraph::_InvalidateContent( bool bVisibleDataFired )
         OUString sNewDesc( GetDescription() );
         OUString sOldDesc;
         {
-            osl::MutexGuard aGuard( aMutex );
+            osl::MutexGuard aGuard( m_Mutex );
             sOldDesc = sDesc;
             if( sDesc != sNewDesc )
                 sDesc = sNewDesc;
@@ -470,7 +470,7 @@ void SwAccessibleParagraph::_InvalidateCursorPos()
     sal_Int32 nNew = GetCaretPos();
     sal_Int32 nOld;
     {
-        osl::MutexGuard aGuard( aMutex );
+        osl::MutexGuard aGuard( m_Mutex );
         nOld = nOldCaretPos;
         nOldCaretPos = nNew;
     }
@@ -520,7 +520,7 @@ void SwAccessibleParagraph::_InvalidateFocus()
     {
         sal_Int32 nPos;
         {
-            osl::MutexGuard aGuard( aMutex );
+            osl::MutexGuard aGuard( m_Mutex );
             nPos = nOldCaretPos;
         }
         OSL_ENSURE( nPos != -1, "focus object should be selected" );
@@ -568,7 +568,7 @@ SwAccessibleParagraph::~SwAccessibleParagraph()
 
 bool SwAccessibleParagraph::HasCursor()
 {
-    osl::MutexGuard aGuard( aMutex );
+    osl::MutexGuard aGuard( m_Mutex );
     return nOldCaretPos != -1;
 }
 
@@ -933,7 +933,7 @@ OUString SAL_CALL SwAccessibleParagraph::getAccessibleDescription()
 
     CHECK_FOR_DEFUNC( XAccessibleContext );
 
-    osl::MutexGuard aGuard2( aMutex );
+    osl::MutexGuard aGuard2( m_Mutex );
     if( sDesc.isEmpty() )
         sDesc = GetDescription();
 
@@ -1287,7 +1287,7 @@ sal_Int32 SwAccessibleParagraph::getCaretPosition()
 
     sal_Int32 nRet = GetCaretPos();
     {
-        osl::MutexGuard aOldCaretPosGuard( aMutex );
+        osl::MutexGuard aOldCaretPosGuard( m_Mutex );
         OSL_ENSURE( nRet == nOldCaretPos, "caret pos out of sync" );
         nOldCaretPos = nRet;
     }
commit 5ce7572ee77be4459536fa5f3153fdc8b4b5d0d3
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Apr 25 00:27:00 2015 +0200

    sw: deploy some asserts
    
    Change-Id: I7bb6820c2ad46f6822dc1f153ae25fd55a1f674b

diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
index 7ebdc99..71c4a1e 100644
--- a/sw/source/core/access/accmap.cxx
+++ b/sw/source/core/access/accmap.cxx
@@ -371,8 +371,8 @@ public:
           mnStates( AccessibleStates::NONE ),
           mpParentFrm( nullptr )
     {
-        OSL_ENSURE( SwAccessibleEvent_Impl::DISPOSE == meType,
-                "wrong event constructor, DISPOSE only" );
+        assert(SwAccessibleEvent_Impl::DISPOSE == meType &&
+                "wrong event constructor, DISPOSE only");
     }
 
     SwAccessibleEvent_Impl( EventType eT )
@@ -380,7 +380,7 @@ public:
           mnStates( AccessibleStates::NONE ),
           mpParentFrm( nullptr )
     {
-        OSL_ENSURE( SwAccessibleEvent_Impl::SHAPE_SELECTION == meType,
+        assert(SwAccessibleEvent_Impl::SHAPE_SELECTION == meType &&
                 "wrong event constructor, SHAPE_SELECTION only" );
     }
 
@@ -395,8 +395,8 @@ public:
           mnStates( AccessibleStates::NONE ),
           mpParentFrm( nullptr )
     {
-        OSL_ENSURE( SwAccessibleEvent_Impl::CHILD_POS_CHANGED == meType ||
-                SwAccessibleEvent_Impl::POS_CHANGED == meType,
+        assert((SwAccessibleEvent_Impl::CHILD_POS_CHANGED == meType ||
+                SwAccessibleEvent_Impl::POS_CHANGED == meType) &&
                 "wrong event constructor, (CHILD_)POS_CHANGED only" );
     }
 
@@ -410,7 +410,7 @@ public:
           mnStates( _nStates ),
           mpParentFrm( nullptr )
     {
-        OSL_ENSURE( SwAccessibleEvent_Impl::CARET_OR_STATES == meType,
+        assert( SwAccessibleEvent_Impl::CARET_OR_STATES == meType &&
                 "wrong event constructor, CARET_OR_STATES only" );
     }
 
@@ -422,7 +422,7 @@ public:
         mnStates( AccessibleStates::NONE ),
         mpParentFrm( pParentFrm )
     {
-        OSL_ENSURE( SwAccessibleEvent_Impl::CHILD_POS_CHANGED == meType,
+        assert( SwAccessibleEvent_Impl::CHILD_POS_CHANGED == meType &&
             "wrong event constructor, CHILD_POS_CHANGED only" );
     }
 
commit bcf426652399e81ae692a1202afb409db3a49103
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Apr 24 23:52:40 2015 +0200

    sw: simplify and remove special case in SwHTMLParser::AddParSpace()
    
    Change-Id: Ia64935bcc957cc5730f8cd67ec374c548a46b531

diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx
index 57a51f1..0c6f9e6 100644
--- a/sw/source/filter/html/swhtml.cxx
+++ b/sw/source/filter/html/swhtml.cxx
@@ -2415,29 +2415,20 @@ void SwHTMLParser::AddParSpace()
         }
         else
         {
-            if (!pTxtNode->HasHints())
-            {
-                pTxtNode->SetAttr(
-                    SvxULSpaceItem( rULSpace.GetUpper(), HTML_PARSPACE, RES_UL_SPACE )  );
-                return;
-            }
             //What I do here, is that I examine the attributes, and if
             //I find out, that it's CJK/CTL, then I set the paragraph space
             //to the value set in HTML_CJK_PARSPACE/HTML_CTL_PARSPACE.
 
             bool bIsCJK = false;
             bool bIsCTL = false;
-            SwpHints& rHints = pTxtNode->GetSwpHints();
-            sal_uInt16 nWhich;
-            SwTxtAttr *pHt;
 
             const size_t nCntAttr = (pTxtNode  && pTxtNode->GetpSwpHints())
                             ? pTxtNode->GetSwpHints().Count() : 0;
 
             for(size_t i = 0; i < nCntAttr; ++i)
             {
-                pHt = rHints.GetTextHint(i);
-                nWhich = pHt->Which();
+                SwTxtAttr *const pHt = pTxtNode->GetSwpHints().GetTextHint(i);
+                sal_uInt16 const nWhich = pHt->Which();
                 if (RES_CHRATR_CJK_FONT == nWhich ||
                     RES_CHRATR_CJK_FONTSIZE == nWhich ||
                     RES_CHRATR_CJK_LANGUAGE == nWhich ||
commit 104ed86c382b73505b477bf3024982dd27823023
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Apr 24 23:31:06 2015 +0200

    sw: fix SwAccessibleParagraph crash on delete
    
    It happens that SwAccessibleParagraph::getCharacterBounds() is called
    from ATK with a clearly invalid pPortionData member; the SwTxtNode has
    no text but there are portions.
    
    This is because after a deletion both a POS_CHANGED and a
    INVALID_CONTENT event are created for the same SwAccessibleParagraph,
    and they are merged into one POS_CHANGED event by
    SwAccessibleMap::AppendEvent(), but
    SwAccessibleContext::InvalidatePosOrSize() returns early if the
    paragraph happens to not be visible, skipping the invalidation.
    
    (regression from 76c549eb01dcb7b5bf28a271ce00e386f3d388ba, which
     removed a Dispose() call; not sure if the Dispose() is needed here)
    
    Change-Id: I985e9a439ee6c7024963eace876186f2247b9e03

diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
index 3628cd8..dd42c52 100644
--- a/sw/source/core/access/acccontext.cxx
+++ b/sw/source/core/access/acccontext.cxx
@@ -1160,12 +1160,9 @@ void SwAccessibleContext::InvalidatePosOrSize( const SwRect& )
         FireVisibleDataEvent();
     }
 
-    if( !bIsNewShowingState &&
-        SwAccessibleChild( GetParent() ).IsVisibleChildrenOnly() )
-    {
-        return;
-    }
-
+    // note: InvalidatePosOrSize must call _InvalidateContent so that
+    // SwAccessibleParagraph updates its portions, or dispose it
+    // (see accmap.cxx: INVALID_CONTENT is contained in POS_CHANGED)
     _InvalidateContent( true );
 }
 
commit deb50a2a8a958be55a3564399b1973d365e82cf3
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Apr 24 16:29:37 2015 +0200

    remove some @author tags from suspiciously unidiomatic code
    
    Change-Id: I3930420fe502978f8e14a688f2eb99c74d185f7b

diff --git a/framework/source/fwe/classes/framelistanalyzer.cxx b/framework/source/fwe/classes/framelistanalyzer.cxx
index 00599b8..708281f 100644
--- a/framework/source/fwe/classes/framelistanalyzer.cxx
+++ b/framework/source/fwe/classes/framelistanalyzer.cxx
@@ -187,7 +187,7 @@ void FrameListAnalyzer::impl_analyze()
             // b) Or is includes this task the special backing component?
             //    Return it separated from any return list.
             //    But check if the reference task itself is the backing frame.
-            //    Our user mst know it to decide right.
+            //    Our user must know it to decide right.
             if ((m_eDetectMode & E_BACKINGCOMPONENT) == E_BACKINGCOMPONENT)
             {
                 try
diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx
index 5bf18dc..b235a62 100644
--- a/framework/source/services/autorecovery.cxx
+++ b/framework/source/services/autorecovery.cxx
@@ -231,7 +231,7 @@ public:
         /** timer must be started with special short time intervall,
             to poll for an user idle period */
         E_POLL_FOR_USER_IDLE,
-        /** timer mst be started with a very(!) short time intervall,
+        /** timer must be started with a very(!) short time interval,
             to poll for the end of an user action, which does not allow saving documents in general */
         E_POLL_TILL_AUTOSAVE_IS_ALLOWED,
         /** dont start the timer - but calls the same action then before immediately again! */
diff --git a/include/sfx2/DocumentMetadataAccess.hxx b/include/sfx2/DocumentMetadataAccess.hxx
index 8178b59..3ebe5d0 100644
--- a/include/sfx2/DocumentMetadataAccess.hxx
+++ b/include/sfx2/DocumentMetadataAccess.hxx
@@ -41,8 +41,6 @@
     from the document, and i do not like defining an API for that.
     Also, the implementation does _no_ locking, so make sure access is
     protected externally.
-
-    @author mst
  */
 
 namespace com { namespace sun { namespace star { namespace embed {
diff --git a/qadevOOo/tests/java/ifc/table/_XTableCharts.java b/qadevOOo/tests/java/ifc/table/_XTableCharts.java
index be07fe9..62f939d 100644
--- a/qadevOOo/tests/java/ifc/table/_XTableCharts.java
+++ b/qadevOOo/tests/java/ifc/table/_XTableCharts.java
@@ -68,7 +68,7 @@ public class _XTableCharts extends MultiMethodTest {
      * <code>false</code>. <p>
      * The following method tests are to be completed successfully before :
      * <ul>
-     *  <li> <code> addNewByName() </code> : chart mst be added first </li>
+     *  <li> <code> addNewByName() </code> : chart must be added first </li>
      * </ul>
      */
     public void _removeByName() {
diff --git a/sfx2/source/doc/Metadatable.cxx b/sfx2/source/doc/Metadatable.cxx
index 0e19ee4..59dfb8a 100644
--- a/sfx2/source/doc/Metadatable.cxx
+++ b/sfx2/source/doc/Metadatable.cxx
@@ -100,7 +100,6 @@
     <type>MetadatableUndo<type> instance, which can be used to undo the action
     by passing it to <method>Metadatable::RestoreMetadata</method>.
 
-    @author mst
  */
 
 
diff --git a/sfx2/source/doc/SfxDocumentMetaData.cxx b/sfx2/source/doc/SfxDocumentMetaData.cxx
index 52be422..db6274f 100644
--- a/sfx2/source/doc/SfxDocumentMetaData.cxx
+++ b/sfx2/source/doc/SfxDocumentMetaData.cxx
@@ -106,7 +106,6 @@
  * and update the DOM tree only when storing the document (in
  * <method>updateUserDefinedAndAttributes</method>).
  *
- * @author mst
  */
 
 /// anonymous implementation namespace
diff --git a/unoxml/source/rdf/librdf_repository.cxx b/unoxml/source/rdf/librdf_repository.cxx
index f28b0f8..10f7241 100644
--- a/unoxml/source/rdf/librdf_repository.cxx
+++ b/unoxml/source/rdf/librdf_repository.cxx
@@ -76,7 +76,6 @@
     librdf_GraphResult:     an XEnumeration<Statement>
     librdf_QuerySelectResult:   an XEnumeration<sequence<XNode>>
 
-    @author mst
  */
 
 /// anonymous implementation namespace


More information about the Libreoffice-commits mailing list