[Libreoffice-commits] core.git: 13 commits - basctl/source connectivity/source dbaccess/source editeng/source forms/source framework/source include/vbahelper lotuswordpro/source oovbaapi/ooo reportdesign/source sc/source sd/source sfx2/source starmath/source svx/source sw/source toolkit/source vcl/generic xmloff/source

Caolán McNamara caolanm at redhat.com
Thu Jul 3 04:50:40 PDT 2014


 basctl/source/basicide/macrodlg.cxx                         |    2 
 connectivity/source/drivers/dbase/DTable.cxx                |    2 
 connectivity/source/drivers/jdbc/PreparedStatement.cxx      |    3 
 dbaccess/source/ui/querydesign/QTableWindow.cxx             |    2 
 editeng/source/editeng/impedit2.cxx                         |    5 
 editeng/source/uno/unoedprx.cxx                             |   92 ++++--------
 forms/source/xforms/computedexpression.cxx                  |    2 
 framework/source/services/tabwindowservice.cxx              |    4 
 include/vbahelper/vbacollectionimpl.hxx                     |    5 
 lotuswordpro/source/filter/tocread.cxx                      |   10 +
 oovbaapi/ooo/vba/XCollection.idl                            |    4 
 reportdesign/source/ui/dlg/dlgpage.cxx                      |    2 
 sc/source/core/data/documen3.cxx                            |    8 -
 sc/source/filter/excel/xiroot.cxx                           |   18 +-
 sc/source/ui/Accessibility/AccessibleCsvControl.cxx         |    2 
 sc/source/ui/drawfunc/drtxtob1.cxx                          |    4 
 sc/source/ui/view/cellsh1.cxx                               |    4 
 sc/source/ui/view/editsh.cxx                                |    4 
 sc/source/ui/xmlsource/xmlsourcedlg.cxx                     |    2 
 sd/source/ui/view/outlview.cxx                              |    2 
 sfx2/source/control/bindings.cxx                            |    7 
 starmath/source/document.cxx                                |    2 
 starmath/source/view.cxx                                    |    4 
 svx/source/form/tbxform.cxx                                 |    2 
 svx/source/unodraw/unobrushitemhelper.cxx                   |   30 ++-
 sw/source/core/layout/calcmove.cxx                          |    2 
 sw/source/core/layout/findfrm.cxx                           |    2 
 sw/source/core/layout/ftnfrm.cxx                            |    2 
 sw/source/core/layout/paintfrm.cxx                          |   57 ++++++-
 sw/source/core/layout/softpagebreak.cxx                     |    2 
 sw/source/core/objectpositioning/anchoredobjectposition.cxx |   12 -
 sw/source/core/text/txtfly.cxx                              |    2 
 sw/source/filter/ww1/w1filter.cxx                           |    3 
 sw/source/filter/ww8/wrtww8.cxx                             |    3 
 sw/source/filter/xml/xmlimp.cxx                             |    4 
 sw/source/uibase/index/idxmrk.cxx                           |    4 
 sw/source/uibase/shells/tabsh.cxx                           |    5 
 sw/source/uibase/uiview/viewdlg2.cxx                        |    8 -
 toolkit/source/helper/property.cxx                          |    2 
 vcl/generic/print/text_gfx.cxx                              |    3 
 xmloff/source/script/XMLEventsImportContext.cxx             |    8 -
 41 files changed, 198 insertions(+), 143 deletions(-)

New commits:
commit 50a402b3c2a6e64b1f7197580332e0e4e4c68d0d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 11:55:27 2014 +0100

    coverity#708816 Unused pointer value
    
    Change-Id: I2ea7d4a8b142d67afa43ce165b51d81f65d251de

diff --git a/sfx2/source/control/bindings.cxx b/sfx2/source/control/bindings.cxx
index 8b11753..afa3d1c 100644
--- a/sfx2/source/control/bindings.cxx
+++ b/sfx2/source/control/bindings.cxx
@@ -1318,13 +1318,6 @@ SfxItemSet* SfxBindings::CreateSet_Impl
         pRealSlot->GetSlotId(), pRealSlot->GetWhich(rPool), pRealSlot, pCache );
     rFound.push_back( pFound );
 
-    sal_uInt16 nSlot = pRealSlot->GetSlotId();
-    if ( !(nSlot >= SID_VERB_START && nSlot <= SID_VERB_END) )
-    {
-        pInterface = pInterface->GetRealInterfaceForSlot( pRealSlot );
-        DBG_ASSERT (pInterface,"Slot in the given shell is not found");
-    }
-
     // Search through the bindings for slots served by the same function. This ,    // will only affect slots which are present in the found interface.
 
     // The position of the  Statecaches in StateCache-Array
commit 9e67e4b8d615563ea02fe6b0520d48879ba272e6
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 11:49:36 2014 +0100

    coverity#708870 Unused pointer value
    
    Change-Id: If8dc3b3751a42bdafeed30005c7ac3eb32f28c01

diff --git a/sw/source/filter/ww1/w1filter.cxx b/sw/source/filter/ww1/w1filter.cxx
index 2ad1844..9bdbe7f 100644
--- a/sw/source/filter/ww1/w1filter.cxx
+++ b/sw/source/filter/ww1/w1filter.cxx
@@ -588,9 +588,8 @@ void Ww1Fields::Out(Ww1Shell& rOut, Ww1Manager& rMan, sal_uInt16 nDepth)
             if (!Ww1PlainText::IsChar(c))
                 sResult += OUString(c); //~ mdt: handle special chars
             ++(*this);
-            pData = GetData();
         }
-        OSL_ENSURE(pData->chGet()==21, "Ww1PlainText");
+        OSL_ENSURE(GetData()->chGet()==21, "Ww1PlainText");
         bool bKnown = true;
         OSL_ENSURE(pField==0, "Ww1PlainText");
         if (pField != 0)
commit 4ce12cf8516e521ad8568a1a141d0505d5861947
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 11:47:21 2014 +0100

    coverity#738958 Unused pointer value
    
    Change-Id: Ic0c7f1c3ccb17f11135facda9197f8dc82436549

diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index 91c6d1d..f72f991 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -3303,12 +3303,11 @@ void ImpEditEngine::UpdateSelections()
                 // taken into account!
                 sal_Int32 nPara = rInf.GetPosition();
                 ParaPortion* pPPortion = GetParaPortions().SafeGetObject( nPara );
-                if ( !pPPortion ) // Last paragraph
+                if (!GetParaPortions().SafeGetObject(nPara)) // Last paragraph
                 {
                     nPara = GetParaPortions().Count()-1;
-                    pPPortion = GetParaPortions()[nPara];
                 }
-                OSL_ENSURE( pPPortion, "Empty Document in UpdateSelections ?" );
+                assert(GetParaPortions()[nPara] && "Empty Document in UpdateSelections ?");
                 // Do not end up from a hidden paragraph:
                 sal_Int32 nCurPara = nPara;
                 sal_Int32 nLastPara = GetParaPortions().Count()-1;
commit aa356e6076aa3bedb7f7c5681270462edd1fb2dd
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 11:33:11 2014 +0100

    coverity#736024 help coverity out here
    
    Change-Id: Ia89ed6792bbe84eb20a4b560b0dab4557ad6e8f9

diff --git a/xmloff/source/script/XMLEventsImportContext.cxx b/xmloff/source/script/XMLEventsImportContext.cxx
index e6edda8..916e8b5 100644
--- a/xmloff/source/script/XMLEventsImportContext.cxx
+++ b/xmloff/source/script/XMLEventsImportContext.cxx
@@ -174,11 +174,13 @@ bool XMLEventsImportContext::GetEventSequence(
     }
 
     // if we're not at the end, set the sequence
-    bool bRet = (aIter != aCollectEvents.end());
-    if (bRet)
+    if (aIter != aCollectEvents.end())
+    {
         rSequence = aIter->second;
+        return true;
+    }
 
-    return bRet;
+    return false;
 }
 
 void XMLEventsImportContext::AddEventValues(
commit 5e043613266113a873c55ad45ab0fb1ae14286e8
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 11:17:37 2014 +0100

    coverity#1222240 Untrusted value as argument
    
    and
    
    coverity#1222239 Untrusted value as argument
    
    Change-Id: I48bacfd988a34d67ffa542edba7cba1bb9b0b3cc

diff --git a/lotuswordpro/source/filter/tocread.cxx b/lotuswordpro/source/filter/tocread.cxx
index 90544df..87b6bee 100644
--- a/lotuswordpro/source/filter/tocread.cxx
+++ b/lotuswordpro/source/filter/tocread.cxx
@@ -67,6 +67,16 @@ CBenTOCReader::ReadLabelAndTOC()
     if ((Err = ReadLabel(&TOCOffset, &cTOCSize)) != BenErr_OK)
         return Err;
 
+    unsigned long nLength;
+    if ((Err = cpContainer->GetSize(nLength)) != BenErr_OK)
+        return Err;
+
+    if (TOCOffset > nLength)
+        return BenErr_ReadPastEndOfTOC;
+
+    if (cTOCSize > nLength - TOCOffset)
+        return BenErr_ReadPastEndOfTOC;
+
     if ((Err = cpContainer->SeekToPosition(TOCOffset)) != BenErr_OK)
         return Err;
 
commit 6fb1f934d79fd04bc3ca36b446adad0b126e6b1c
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 10:16:04 2014 +0100

    coverity#707193 Uncaught exception
    
    Change-Id: Ie3e6bc593365311bfe80972b26d1189acbb6afcb

diff --git a/include/vbahelper/vbacollectionimpl.hxx b/include/vbahelper/vbacollectionimpl.hxx
index 90d876b..a0b9041 100644
--- a/include/vbahelper/vbacollectionimpl.hxx
+++ b/include/vbahelper/vbacollectionimpl.hxx
@@ -279,13 +279,15 @@ protected:
 
 public:
     ScVbaCollectionBase( const css::uno::Reference< ov::XHelperInterface >& xParent,   const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess, bool bIgnoreCase = false ) : BaseColBase( xParent, xContext ), m_xIndexAccess( xIndexAccess ), mbIgnoreCase( bIgnoreCase ) { m_xNameAccess.set(m_xIndexAccess, css::uno::UNO_QUERY); }
+
     //XCollection
     virtual ::sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException)
     {
         return m_xIndexAccess->getCount();
     }
 
-    virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index1, const css::uno::Any& /*not processed in this base class*/ ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
+    virtual css::uno::Any SAL_CALL Item(const css::uno::Any& Index1, const css::uno::Any& /*not processed in this base class*/)
+         throw (css::lang::IndexOutOfBoundsException, css::script::BasicErrorException, css::uno::RuntimeException)
     {
         if ( Index1.getValueTypeClass() != css::uno::TypeClass_STRING )
         {
@@ -302,6 +304,7 @@ public:
         Index1 >>= aStringSheet;
         return getItemByStringIndex( aStringSheet );
     }
+
     // XDefaultMethod
     OUString SAL_CALL getDefaultMethodName(  ) throw (css::uno::RuntimeException)
     {
diff --git a/oovbaapi/ooo/vba/XCollection.idl b/oovbaapi/ooo/vba/XCollection.idl
index a2d3ad2..6c9aa30 100644
--- a/oovbaapi/ooo/vba/XCollection.idl
+++ b/oovbaapi/ooo/vba/XCollection.idl
@@ -36,7 +36,9 @@ interface XCollection
 
     [attribute, readonly] long Count;
 
-    any  Item( [in] any Index1, [in] any Index2 ) raises(com::sun::star::script::BasicErrorException);
+    any  Item( [in] any Index1, [in] any Index2 )
+        raises (com::sun::star::lang::IndexOutOfBoundsException,
+                com::sun::star::script::BasicErrorException);
 };
 
 }; };
commit f9ac8942478221569740c32f35e1e0509f8fb95f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 09:22:41 2014 +0100

    clang scan-build: Called C++ object pointer is null, a good catch
    
    Change-Id: I4fbb37560f7b20fd6854ba9bb8d017352be679b6

diff --git a/framework/source/services/tabwindowservice.cxx b/framework/source/services/tabwindowservice.cxx
index 9646de9..f445406 100644
--- a/framework/source/services/tabwindowservice.cxx
+++ b/framework/source/services/tabwindowservice.cxx
@@ -421,11 +421,9 @@ css::uno::Any SAL_CALL TabWindowService::impl_getPropertyValue(const OUString& /
 }
 
 //  TabWindowService
-
 IMPL_LINK( TabWindowService, EventListener, VclSimpleEvent*, pEvent )
 {
-
-    if ( !pEvent && !pEvent->ISA(VclWindowEvent))
+    if (!pEvent || !pEvent->ISA(VclWindowEvent))
         return 0;
 
     sal_uLong           nEventId = pEvent->GetId();
commit 06053398c3160391c7c2ef33a005db9662dbfc69
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 09:55:31 2014 +0100

    clang scan-build: Dead initialization
    
    Change-Id: I74cd9086f949a0a964347d4e96911ceaaf812245

diff --git a/sw/source/uibase/shells/tabsh.cxx b/sw/source/uibase/shells/tabsh.cxx
index 338238d..237e747 100644
--- a/sw/source/uibase/shells/tabsh.cxx
+++ b/sw/source/uibase/shells/tabsh.cxx
@@ -271,11 +271,10 @@ void ItemSetToTableParam( const SfxItemSet& rSet,
     rSh.StartUndo( UNDO_TABLE_ATTR );
     const SfxPoolItem* pItem = 0;
 
-    SwViewOption aUsrPref( *rSh.GetViewOptions() );
-    sal_uInt16 nBackgroundDestination = aUsrPref.GetTblDest();
     if(SFX_ITEM_SET == rSet.GetItemState(SID_BACKGRND_DESTINATION, false, &pItem))
     {
-        nBackgroundDestination = ((SfxUInt16Item*)pItem)->GetValue();
+        SwViewOption aUsrPref( *rSh.GetViewOptions() );
+        sal_uInt16 nBackgroundDestination = ((SfxUInt16Item*)pItem)->GetValue();
         aUsrPref.SetTblDest((sal_uInt8)nBackgroundDestination);
         SW_MOD()->ApplyUsrPref(aUsrPref, &rSh.GetView());
     }
commit 4228f08d6084d8563b70a26a6398fb0caf017f99
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 08:51:19 2014 +0100

    use assert when followed by deref
    
    Change-Id: I8405e4d8f9fa1de3ef6ee474321b4ac2b4ce1624

diff --git a/basctl/source/basicide/macrodlg.cxx b/basctl/source/basicide/macrodlg.cxx
index 55f4f80..8fd1b94 100644
--- a/basctl/source/basicide/macrodlg.cxx
+++ b/basctl/source/basicide/macrodlg.cxx
@@ -287,7 +287,7 @@ void MacroChooser::DeleteMacro()
 
         // mark current doc as modified:
         StarBASIC* pBasic = FindBasic(pMethod);
-        DBG_ASSERT( pBasic, "Basic?!" );
+        assert(pBasic && "Basic?!");
         BasicManager* pBasMgr = FindBasicManager( pBasic );
         DBG_ASSERT( pBasMgr, "BasMgr?" );
         ScriptDocument aDocument( ScriptDocument::getDocumentForBasicManager( pBasMgr ) );
diff --git a/connectivity/source/drivers/jdbc/PreparedStatement.cxx b/connectivity/source/drivers/jdbc/PreparedStatement.cxx
index 8a3c311..04d9f62 100644
--- a/connectivity/source/drivers/jdbc/PreparedStatement.cxx
+++ b/connectivity/source/drivers/jdbc/PreparedStatement.cxx
@@ -446,7 +446,8 @@ void SAL_CALL java_sql_PreparedStatement::setCharacterStream( sal_Int32 paramete
     ::osl::MutexGuard aGuard( m_aMutex );
     checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed);
 
-    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+    SDBThreadAttach t;
+    assert(t.pEnv && "Java Enviroment geloescht worden!");
     {
         createStatement(t.pEnv);
 
diff --git a/dbaccess/source/ui/querydesign/QTableWindow.cxx b/dbaccess/source/ui/querydesign/QTableWindow.cxx
index be5a91d..77cb023 100644
--- a/dbaccess/source/ui/querydesign/QTableWindow.cxx
+++ b/dbaccess/source/ui/querydesign/QTableWindow.cxx
@@ -165,7 +165,7 @@ bool OQueryTableWindow::ExistsField(const OUString& strFieldName, OTableFieldDes
                 if (bCase(strFieldName,OUString(m_pListBox->GetEntryText(pEntry))))
                 {
                     OTableFieldInfo* pInf = static_cast<OTableFieldInfo*>(pEntry->GetUserData());
-                    OSL_ENSURE(pInf != NULL, "OQueryTableWindow::ExistsField : field doesn't have FieldInfo !");
+                    assert(pInf && "OQueryTableWindow::ExistsField : field doesn't have FieldInfo !");
 
                     rInfo->SetTabWindow(this);
                     rInfo->SetField(strFieldName);
diff --git a/editeng/source/uno/unoedprx.cxx b/editeng/source/uno/unoedprx.cxx
index 961898e..874c6b1 100644
--- a/editeng/source/uno/unoedprx.cxx
+++ b/editeng/source/uno/unoedprx.cxx
@@ -422,11 +422,8 @@ void SvxEditSourceAdapter::SetEditSource( ::std::auto_ptr< SvxEditSource > pAdap
 }
 SAL_WNODEPRECATED_DECLARATIONS_POP
 
-
-
-
-
-SvxAccessibleTextAdapter::SvxAccessibleTextAdapter() : mpTextForwarder( NULL )
+SvxAccessibleTextAdapter::SvxAccessibleTextAdapter()
+    : mpTextForwarder(NULL)
 {
 }
 
@@ -436,15 +433,13 @@ SvxAccessibleTextAdapter::~SvxAccessibleTextAdapter()
 
 sal_Int32 SvxAccessibleTextAdapter::GetParagraphCount() const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetParagraphCount();
 }
 
 sal_Int32 SvxAccessibleTextAdapter::GetTextLen( sal_Int32 nParagraph ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
-
     SvxAccessibleTextIndex aIndex;
     aIndex.SetEEIndex( nParagraph, mpTextForwarder->GetTextLen( nParagraph ), *this );
 
@@ -453,7 +448,7 @@ sal_Int32 SvxAccessibleTextAdapter::GetTextLen( sal_Int32 nParagraph ) const
 
 OUString SvxAccessibleTextAdapter::GetText( const ESelection& rSel ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
@@ -522,7 +517,7 @@ OUString SvxAccessibleTextAdapter::GetText( const ESelection& rSel ) const
 
 SfxItemSet SvxAccessibleTextAdapter::GetAttribs( const ESelection& rSel, EditEngineAttribs nOnlyHardAttrib ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
@@ -535,33 +530,32 @@ SfxItemSet SvxAccessibleTextAdapter::GetAttribs( const ESelection& rSel, EditEng
 
 SfxItemSet SvxAccessibleTextAdapter::GetParaAttribs( sal_Int32 nPara ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetParaAttribs( nPara );
 }
 
 void SvxAccessibleTextAdapter::SetParaAttribs( sal_Int32 nPara, const SfxItemSet& rSet )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     mpTextForwarder->SetParaAttribs( nPara, rSet );
 }
 
 void SvxAccessibleTextAdapter::RemoveAttribs( const ESelection& , bool , sal_uInt16 )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
 }
 
 void SvxAccessibleTextAdapter::GetPortions( sal_Int32 nPara, std::vector<sal_Int32>& rList ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     mpTextForwarder->GetPortions( nPara, rList );
 }
 
 sal_uInt16 SvxAccessibleTextAdapter::GetItemState( const ESelection& rSel, sal_uInt16 nWhich ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
@@ -575,14 +569,14 @@ sal_uInt16 SvxAccessibleTextAdapter::GetItemState( const ESelection& rSel, sal_u
 
 sal_uInt16 SvxAccessibleTextAdapter::GetItemState( sal_Int32 nPara, sal_uInt16 nWhich ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetItemState( nPara, nWhich );
 }
 
 void SvxAccessibleTextAdapter::QuickInsertText( const OUString& rText, const ESelection& rSel )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
@@ -596,7 +590,7 @@ void SvxAccessibleTextAdapter::QuickInsertText( const OUString& rText, const ESe
 
 void SvxAccessibleTextAdapter::QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
@@ -610,7 +604,7 @@ void SvxAccessibleTextAdapter::QuickInsertField( const SvxFieldItem& rFld, const
 
 void SvxAccessibleTextAdapter::QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
@@ -624,7 +618,7 @@ void SvxAccessibleTextAdapter::QuickSetAttribs( const SfxItemSet& rSet, const ES
 
 void SvxAccessibleTextAdapter::QuickInsertLineBreak( const ESelection& rSel )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
@@ -637,39 +631,37 @@ void SvxAccessibleTextAdapter::QuickInsertLineBreak( const ESelection& rSel )
 
 SfxItemPool* SvxAccessibleTextAdapter::GetPool() const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetPool();
 }
 
 OUString SvxAccessibleTextAdapter::CalcFieldValue( const SvxFieldItem& rField, sal_Int32 nPara, sal_Int32 nPos, Color*& rpTxtColor, Color*& rpFldColor )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->CalcFieldValue( rField, nPara, nPos, rpTxtColor, rpFldColor );
 }
 
 void SvxAccessibleTextAdapter::FieldClicked( const SvxFieldItem& rField, sal_Int32 nPara, sal_Int32 nPos )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     mpTextForwarder->FieldClicked( rField, nPara, nPos );
 }
 
 sal_uInt16 SvxAccessibleTextAdapter::CalcEditEngineIndex( sal_Int32 nPara, sal_Int32 nLogicalIndex )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aIndex;
     aIndex.SetIndex(nPara, nLogicalIndex, *mpTextForwarder);
     return aIndex.GetEEIndex();
 }
 
-
-
 bool SvxAccessibleTextAdapter::IsValid() const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     if( mpTextForwarder )
         return mpTextForwarder->IsValid();
@@ -679,7 +671,7 @@ bool SvxAccessibleTextAdapter::IsValid() const
 
 LanguageType SvxAccessibleTextAdapter::GetLanguage( sal_Int32 nPara, sal_Int32 nPos ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aIndex;
 
@@ -690,21 +682,21 @@ LanguageType SvxAccessibleTextAdapter::GetLanguage( sal_Int32 nPara, sal_Int32 n
 
 sal_Int32 SvxAccessibleTextAdapter::GetFieldCount( sal_Int32 nPara ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetFieldCount( nPara );
 }
 
 EFieldInfo SvxAccessibleTextAdapter::GetFieldInfo( sal_Int32 nPara, sal_uInt16 nField ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetFieldInfo( nPara, nField );
 }
 
 EBulletInfo SvxAccessibleTextAdapter::GetBulletInfo( sal_Int32 nPara ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetBulletInfo( nPara );
 }
@@ -721,7 +713,7 @@ bool SvxAccessibleTextAdapter::GetUpdateModeForAcc( ) const
 
 Rectangle SvxAccessibleTextAdapter::GetCharBounds( sal_Int32 nPara, sal_Int32 nIndex ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aIndex;
     aIndex.SetIndex( nPara, nIndex, *this );
@@ -779,7 +771,7 @@ Rectangle SvxAccessibleTextAdapter::GetCharBounds( sal_Int32 nPara, sal_Int32 nI
 
 Rectangle SvxAccessibleTextAdapter::GetParaBounds( sal_Int32 nPara ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     EBulletInfo aBulletInfo = GetBulletInfo( nPara );
 
@@ -800,21 +792,21 @@ Rectangle SvxAccessibleTextAdapter::GetParaBounds( sal_Int32 nPara ) const
 
 MapMode SvxAccessibleTextAdapter::GetMapMode() const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetMapMode();
 }
 
 OutputDevice* SvxAccessibleTextAdapter::GetRefDevice() const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetRefDevice();
 }
 
 bool SvxAccessibleTextAdapter::GetIndexAtPoint( const Point& rPoint, sal_Int32& nPara, sal_Int32& nIndex ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     if( !mpTextForwarder->GetIndexAtPoint( rPoint, nPara, nIndex ) )
         return false;
@@ -889,7 +881,7 @@ bool SvxAccessibleTextAdapter::GetIndexAtPoint( const Point& rPoint, sal_Int32&
 
 bool SvxAccessibleTextAdapter::GetWordIndices( sal_Int32 nPara, sal_Int32 nIndex, sal_Int32& nStart, sal_Int32& nEnd ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aIndex;
     aIndex.SetIndex(nPara, nIndex, *this);
@@ -944,7 +936,7 @@ bool SvxAccessibleTextAdapter::GetWordIndices( sal_Int32 nPara, sal_Int32 nIndex
 
 bool SvxAccessibleTextAdapter::GetAttributeRun( sal_Int32& nStartIndex, sal_Int32& nEndIndex, sal_Int32 nPara, sal_Int32 nIndex, bool /* bInCell */ ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aIndex;
     aIndex.SetIndex(nPara, nIndex, *this);
@@ -996,14 +988,14 @@ bool SvxAccessibleTextAdapter::GetAttributeRun( sal_Int32& nStartIndex, sal_Int3
 
 sal_Int32 SvxAccessibleTextAdapter::GetLineCount( sal_Int32 nPara ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetLineCount( nPara );
 }
 
 sal_Int32 SvxAccessibleTextAdapter::GetLineLen( sal_Int32 nPara, sal_Int32 nLine ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
@@ -1039,7 +1031,7 @@ sal_Int32 SvxAccessibleTextAdapter::GetLineNumberAtIndex( sal_Int32 nPara, sal_I
 
 bool SvxAccessibleTextAdapter::Delete( const ESelection& rSel )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
@@ -1052,7 +1044,7 @@ bool SvxAccessibleTextAdapter::Delete( const ESelection& rSel )
 
 bool SvxAccessibleTextAdapter::InsertText( const OUString& rStr, const ESelection& rSel )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
@@ -1065,21 +1057,21 @@ bool SvxAccessibleTextAdapter::InsertText( const OUString& rStr, const ESelectio
 
 bool SvxAccessibleTextAdapter::QuickFormatDoc( bool bFull )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->QuickFormatDoc( bFull );
 }
 
 sal_Int16 SvxAccessibleTextAdapter::GetDepth( sal_Int32 nPara ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->GetDepth( nPara );
 }
 
 bool SvxAccessibleTextAdapter::SetDepth( sal_Int32 nPara, sal_Int16 nNewDepth )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
+    assert(mpTextForwarder && "SvxAccessibleTextAdapter: no forwarder");
 
     return mpTextForwarder->SetDepth( nPara, nNewDepth );
 }
@@ -1091,8 +1083,6 @@ void SvxAccessibleTextAdapter::SetForwarder( SvxTextForwarder& rForwarder )
 
 bool SvxAccessibleTextAdapter::HaveImageBullet( sal_Int32 nPara ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
-
     EBulletInfo aBulletInfo = GetBulletInfo( nPara );
 
     return ( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND &&
@@ -1102,8 +1092,6 @@ bool SvxAccessibleTextAdapter::HaveImageBullet( sal_Int32 nPara ) const
 
 bool SvxAccessibleTextAdapter::HaveTextBullet( sal_Int32 nPara ) const
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
-
     EBulletInfo aBulletInfo = GetBulletInfo( nPara );
 
     return ( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND &&
@@ -1113,8 +1101,6 @@ bool SvxAccessibleTextAdapter::HaveTextBullet( sal_Int32 nPara ) const
 
 bool SvxAccessibleTextAdapter::IsEditable( const ESelection& rSel )
 {
-    DBG_ASSERT(mpTextForwarder, "SvxAccessibleTextAdapter: no forwarder");
-
     SvxAccessibleTextIndex aStartIndex;
     SvxAccessibleTextIndex aEndIndex;
 
@@ -1152,10 +1138,6 @@ void        SvxAccessibleTextAdapter::CopyText(const SvxTextForwarder&)
     OSL_FAIL( "not implemented" );
 }
 
-
-
-
-
 SvxAccessibleTextEditViewAdapter::SvxAccessibleTextEditViewAdapter()
     : mpViewForwarder(NULL)
     , mpTextForwarder(NULL)
diff --git a/forms/source/xforms/computedexpression.cxx b/forms/source/xforms/computedexpression.cxx
index 600a795..4dd5e59 100644
--- a/forms/source/xforms/computedexpression.cxx
+++ b/forms/source/xforms/computedexpression.cxx
@@ -83,7 +83,7 @@ void ComputedExpression::setExpression( const OUString& rExpression )
 
 bool ComputedExpression::_checkExpression( const sal_Char* pExpression ) const
 {
-    OSL_ENSURE( pExpression != NULL, "no expression?" );
+    assert(pExpression && "no expression?");
 
     // call RegExp engine
     SearchOptions aSearchOptions;
diff --git a/reportdesign/source/ui/dlg/dlgpage.cxx b/reportdesign/source/ui/dlg/dlgpage.cxx
index eac3bc1..96d8645 100644
--- a/reportdesign/source/ui/dlg/dlgpage.cxx
+++ b/reportdesign/source/ui/dlg/dlgpage.cxx
@@ -44,7 +44,7 @@ ORptPageDialog::ORptPageDialog( Window* pParent, const SfxItemSet* pAttr, const
     , rOutAttrs(*pAttr)
 {
     SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
-    OSL_ENSURE(pFact, "Dialogdiet fail!");
+    assert(pFact && "Dialogdiet fail!");
 
     if (rDialog == "BackgroundDialog")
     {
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index 766125c..e8719fc 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -1818,13 +1818,13 @@ void ScDocument::CopyTabProtection(SCTAB nTabSrc, SCTAB nTabDest)
 
 const ScDocOptions& ScDocument::GetDocOptions() const
 {
-    OSL_ENSURE( pDocOptions, "No DocOptions! :-(" );
+    assert(pDocOptions && "No DocOptions! :-(");
     return *pDocOptions;
 }
 
 void ScDocument::SetDocOptions( const ScDocOptions& rOpt )
 {
-    OSL_ENSURE( pDocOptions, "No DocOptions! :-(" );
+    assert(pDocOptions && "No DocOptions! :-(");
 
     *pDocOptions = rOpt;
     xPoolHelper->SetFormTableOpt(rOpt);
@@ -1832,13 +1832,13 @@ void ScDocument::SetDocOptions( const ScDocOptions& rOpt )
 
 const ScViewOptions& ScDocument::GetViewOptions() const
 {
-    OSL_ENSURE( pViewOptions, "No ViewOptions! :-(" );
+    assert(pViewOptions && "No ViewOptions! :-(");
     return *pViewOptions;
 }
 
 void ScDocument::SetViewOptions( const ScViewOptions& rOpt )
 {
-    OSL_ENSURE( pViewOptions, "No ViewOptions! :-(" );
+    assert(pViewOptions && "No ViewOptions! :-(");
     *pViewOptions = rOpt;
 }
 
diff --git a/sc/source/filter/excel/xiroot.cxx b/sc/source/filter/excel/xiroot.cxx
index 77db4fb..f6507e4 100644
--- a/sc/source/filter/excel/xiroot.cxx
+++ b/sc/source/filter/excel/xiroot.cxx
@@ -140,7 +140,7 @@ ExcelToSc& XclImpRoot::GetOldFmlaConverter() const
 
 XclImpSst& XclImpRoot::GetSst() const
 {
-    OSL_ENSURE( mrImpData.mxSst, "XclImpRoot::GetSst - invalid call, wrong BIFF" );
+    assert(mrImpData.mxSst && "XclImpRoot::GetSst - invalid call, wrong BIFF");
     return *mrImpData.mxSst;
 }
 
@@ -193,7 +193,7 @@ XclImpNameManager& XclImpRoot::GetNameManager() const
 
 XclImpLinkManager& XclImpRoot::GetLinkManager() const
 {
-    OSL_ENSURE( mrImpData.mxLinkMgr, "XclImpRoot::GetLinkManager - invalid call, wrong BIFF" );
+    assert(mrImpData.mxLinkMgr && "XclImpRoot::GetLinkManager - invalid call, wrong BIFF");
     return *mrImpData.mxLinkMgr;
 }
 
@@ -210,44 +210,44 @@ XclImpSheetDrawing& XclImpRoot::GetCurrSheetDrawing() const
 
 XclImpCondFormatManager& XclImpRoot::GetCondFormatManager() const
 {
-    OSL_ENSURE( mrImpData.mxCondFmtMgr, "XclImpRoot::GetCondFormatManager - invalid call, wrong BIFF" );
+    assert(mrImpData.mxCondFmtMgr && "XclImpRoot::GetCondFormatManager - invalid call, wrong BIFF");
     return *mrImpData.mxCondFmtMgr;
 }
 
 XclImpValidationManager& XclImpRoot::GetValidationManager() const
 {
-    OSL_ENSURE( mrImpData.mxValidMgr, "XclImpRoot::GetValidationManager - invalid call, wrong BIFF" );
+    assert(mrImpData.mxValidMgr && "XclImpRoot::GetValidationManager - invalid call, wrong BIFF");
     return *mrImpData.mxValidMgr;
 }
 
 XclImpAutoFilterBuffer& XclImpRoot::GetFilterManager() const
 {
     // TODO still in old RootData
-    OSL_ENSURE( GetOldRoot().pAutoFilterBuffer, "XclImpRoot::GetFilterManager - invalid call, wrong BIFF" );
+    assert(GetOldRoot().pAutoFilterBuffer && "XclImpRoot::GetFilterManager - invalid call, wrong BIFF");
     return *GetOldRoot().pAutoFilterBuffer;
 }
 
 XclImpWebQueryBuffer& XclImpRoot::GetWebQueryBuffer() const
 {
-    OSL_ENSURE( mrImpData.mxWebQueryBfr, "XclImpRoot::GetWebQueryBuffer - invalid call, wrong BIFF" );
+    assert(mrImpData.mxWebQueryBfr && "XclImpRoot::GetWebQueryBuffer - invalid call, wrong BIFF");
     return *mrImpData.mxWebQueryBfr;
 }
 
 XclImpPivotTableManager& XclImpRoot::GetPivotTableManager() const
 {
-    OSL_ENSURE( mrImpData.mxPTableMgr, "XclImpRoot::GetPivotTableManager - invalid call, wrong BIFF" );
+    assert(mrImpData.mxPTableMgr && "XclImpRoot::GetPivotTableManager - invalid call, wrong BIFF");
     return *mrImpData.mxPTableMgr;
 }
 
 XclImpSheetProtectBuffer& XclImpRoot::GetSheetProtectBuffer() const
 {
-    OSL_ENSURE( mrImpData.mxTabProtect, "XclImpRoot::GetSheetProtectBuffer - invalid call, wrong BIFF" );
+    assert(mrImpData.mxTabProtect && "XclImpRoot::GetSheetProtectBuffer - invalid call, wrong BIFF");
     return *mrImpData.mxTabProtect;
 }
 
 XclImpDocProtectBuffer& XclImpRoot::GetDocProtectBuffer() const
 {
-    OSL_ENSURE( mrImpData.mxDocProtect, "XclImpRoot::GetDocProtectBuffer - invalid call, wrong BIFF" );
+    assert(mrImpData.mxDocProtect && "XclImpRoot::GetDocProtectBuffer - invalid call, wrong BIFF");
     return *mrImpData.mxDocProtect;
 }
 
diff --git a/sc/source/ui/Accessibility/AccessibleCsvControl.cxx b/sc/source/ui/Accessibility/AccessibleCsvControl.cxx
index 3aa3fbb..f860224 100644
--- a/sc/source/ui/Accessibility/AccessibleCsvControl.cxx
+++ b/sc/source/ui/Accessibility/AccessibleCsvControl.cxx
@@ -190,7 +190,7 @@ void ScAccessibleCsvControl::ensureAlive() const throw( DisposedException )
 
 ScCsvControl& ScAccessibleCsvControl::implGetControl() const
 {
-    OSL_ENSURE( mpControl, "ScAccessibleCsvControl::implGetControl - missing control" );
+    assert(mpControl && "ScAccessibleCsvControl::implGetControl - missing control");
     return *mpControl;
 }
 
diff --git a/sc/source/ui/drawfunc/drtxtob1.cxx b/sc/source/ui/drawfunc/drtxtob1.cxx
index b88b982..d364ef2 100644
--- a/sc/source/ui/drawfunc/drtxtob1.cxx
+++ b/sc/source/ui/drawfunc/drtxtob1.cxx
@@ -45,12 +45,12 @@ bool ScDrawTextObjectBar::ExecuteCharDlg( const SfxItemSet& rArgs,
                                                 SfxItemSet& rOutSet , sal_uInt16 nSlot)
 {
     ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
-    OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
+    assert(pFact && "ScAbstractFactory create fail!");
 
     boost::scoped_ptr<SfxAbstractTabDialog> pDlg(pFact->CreateScCharDlg(
         pViewData->GetDialogParent(), &rArgs,
         pViewData->GetSfxDocShell()));
-    OSL_ENSURE(pDlg, "Dialog create fail!");
+    assert(pDlg && "Dialog create fail!");
     if (nSlot == SID_CHAR_DLG_EFFECT)
     {
         pDlg->SetCurPageId(RID_SVXPAGE_CHAR_EFFECTS);
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index 233a46f..2797222 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -2795,8 +2795,8 @@ void ScCellShell::ExecuteFillSingleEdit()
 
 IMPL_LINK_NOARG(ScCellShell, DialogClosed)
 {
-    OSL_ENSURE( pImpl->m_pLinkedDlg, "ScCellShell::DialogClosed(): invalid request" );
-    OSL_ENSURE( pImpl->m_pRequest, "ScCellShell::DialogClosed(): invalid request" );
+    assert(pImpl->m_pLinkedDlg && "ScCellShell::DialogClosed(): invalid request");
+    assert(pImpl->m_pRequest && "ScCellShell::DialogClosed(): invalid request");
     OUString sFile, sFilter, sOptions, sSource;
     sal_uLong nRefresh = 0;
 
diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx
index d79de14..f0ffb70 100644
--- a/sc/source/ui/view/editsh.cxx
+++ b/sc/source/ui/view/editsh.cxx
@@ -1245,11 +1245,11 @@ void ScEditShell::ExecuteTrans( SfxRequest& rReq )
     if ( nType )
     {
         ScInputHandler* pHdl = GetMyInputHdl();
-        OSL_ENSURE( pHdl, "no ScInputHandler" );
+        assert(pHdl && "no ScInputHandler");
 
         EditView* pTopView   = pHdl->GetTopView();
         EditView* pTableView = pHdl->GetTableView();
-        OSL_ENSURE( pTableView, "no EditView" );
+        assert(pTableView && "no EditView");
 
         pHdl->DataChanging();
 
diff --git a/sc/source/ui/xmlsource/xmlsourcedlg.cxx b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
index 95d00d8..1d2d1b0 100644
--- a/sc/source/ui/xmlsource/xmlsourcedlg.cxx
+++ b/sc/source/ui/xmlsource/xmlsourcedlg.cxx
@@ -456,7 +456,7 @@ bool ScXMLSourceDlg::IsParentDirty(SvTreeListEntry* pEntry) const
     while (pParent)
     {
         pUserData = ScOrcusXMLTreeParam::getUserData(*pParent);
-        OSL_ASSERT(pUserData);
+        assert(pUserData);
         if (pUserData->maLinkedPos.IsValid())
         {
             // This parent is already linked.
diff --git a/sd/source/ui/view/outlview.cxx b/sd/source/ui/view/outlview.cxx
index e6fe17e..d029210 100644
--- a/sd/source/ui/view/outlview.cxx
+++ b/sd/source/ui/view/outlview.cxx
@@ -1083,7 +1083,7 @@ bool OutlineView::GetAttributes( SfxItemSet& rTargetSet, bool ) const
 {
     OutlinerView* pOlView = GetViewByWindow(
                                 mrOutlineViewShell.GetActiveWindow());
-    DBG_ASSERT(pOlView, "keine OutlinerView gefunden");
+    assert(pOlView && "keine OutlinerView gefunden");
 
     rTargetSet.Put( pOlView->GetAttribs(), false );
     return true;
diff --git a/starmath/source/document.cxx b/starmath/source/document.cxx
index 4009d6a..738aac2 100644
--- a/starmath/source/document.cxx
+++ b/starmath/source/document.cxx
@@ -403,7 +403,7 @@ SfxItemPool& SmDocShell::GetEditEngineItemPool()
 {
     if (!pEditEngineItemPool)
         GetEditEngine();
-    OSL_ENSURE( pEditEngineItemPool, "EditEngineItemPool missing" );
+    assert(pEditEngineItemPool && "EditEngineItemPool missing");
     return *pEditEngineItemPool;
 }
 
diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx
index e60f22d..95a6a65 100644
--- a/starmath/source/view.cxx
+++ b/starmath/source/view.cxx
@@ -2007,8 +2007,8 @@ void SmViewShell::Activate( bool bIsMDIActivate )
 
 IMPL_LINK( SmViewShell, DialogClosedHdl, sfx2::FileDialogHelper*, _pFileDlg )
 {
-    SAL_WARN_IF( !_pFileDlg, "starmath", "SmViewShell::DialogClosedHdl(): no file dialog" );
-    SAL_WARN_IF( !pImpl->pDocInserter, "starmath", "ScDocShell::DialogClosedHdl(): no document inserter" );
+    assert(_pFileDlg && "SmViewShell::DialogClosedHdl(): no file dialog");
+    assert(pImpl->pDocInserter && "ScDocShell::DialogClosedHdl(): no document inserter");
 
     if ( ERRCODE_NONE == _pFileDlg->GetError() )
     {
diff --git a/svx/source/form/tbxform.cxx b/svx/source/form/tbxform.cxx
index fdcfef7..dd014a1 100644
--- a/svx/source/form/tbxform.cxx
+++ b/svx/source/form/tbxform.cxx
@@ -267,7 +267,7 @@ void SvxFmTbxCtlAbsRec::StateChanged( sal_uInt16 nSID, SfxItemState eState, cons
     ToolBox*            pToolBox = &GetToolBox();
     SvxFmAbsRecWin*     pWin = (SvxFmAbsRecWin*)( pToolBox->GetItemWindow(nId) );
 
-    DBG_ASSERT( pWin, "Control not found!" );
+    assert(pWin && "Control not found!");
 
     if (pState)
     {
diff --git a/sw/source/core/layout/calcmove.cxx b/sw/source/core/layout/calcmove.cxx
index 7910135..db3ae50 100644
--- a/sw/source/core/layout/calcmove.cxx
+++ b/sw/source/core/layout/calcmove.cxx
@@ -1735,7 +1735,7 @@ void MakeNxt( SwFrm *pFrm, SwFrm *pNxt )
 /// between the pFrm's FtnBoss and the pNxt's FtnBoss.
 static bool lcl_IsNextFtnBoss( const SwFrm *pFrm, const SwFrm* pNxt )
 {
-    OSL_ENSURE( pFrm && pNxt, "lcl_IsNextFtnBoss: No Frames?" );
+    assert(pFrm && pNxt && "lcl_IsNextFtnBoss: No Frames?");
     pFrm = pFrm->FindFtnBossFrm();
     pNxt = pNxt->FindFtnBossFrm();
     // If pFrm is a last column, we use the page instead.
diff --git a/sw/source/core/layout/findfrm.cxx b/sw/source/core/layout/findfrm.cxx
index d8ff957..f712fd0 100644
--- a/sw/source/core/layout/findfrm.cxx
+++ b/sw/source/core/layout/findfrm.cxx
@@ -1584,7 +1584,7 @@ const SwCellFrm& SwCellFrm::FindStartEndOfRowSpanCell( bool bStart, bool bCurren
         }
     }
 
-    OSL_ENSURE( pRet, "SwCellFrm::FindStartRowSpanCell: No result" );
+    assert(pRet && "SwCellFrm::FindStartRowSpanCell: No result");
 
     return *pRet;
 }
diff --git a/sw/source/core/layout/ftnfrm.cxx b/sw/source/core/layout/ftnfrm.cxx
index 70d79fc..88157cc 100644
--- a/sw/source/core/layout/ftnfrm.cxx
+++ b/sw/source/core/layout/ftnfrm.cxx
@@ -2823,7 +2823,7 @@ const SwCntntFrm* SwFtnFrm::GetRefFromAttr()  const
 
 SwCntntFrm* SwFtnFrm::GetRefFromAttr()
 {
-    OSL_ENSURE( pAttr, "invalid Attribute" );
+    assert(pAttr && "invalid Attribute");
     SwTxtNode& rTNd = (SwTxtNode&)pAttr->GetTxtNode();
     SwPosition aPos( rTNd, SwIndex( &rTNd, pAttr->GetStart() ));
     SwCntntFrm* pCFrm = rTNd.getLayoutFrm( getRootFrm(), 0, &aPos, false );
diff --git a/sw/source/core/objectpositioning/anchoredobjectposition.cxx b/sw/source/core/objectpositioning/anchoredobjectposition.cxx
index a1c29b5..79db538 100644
--- a/sw/source/core/objectpositioning/anchoredobjectposition.cxx
+++ b/sw/source/core/objectpositioning/anchoredobjectposition.cxx
@@ -78,16 +78,16 @@ void SwAnchoredObjectPosition::_GetInfoAboutObj()
     // determine contact object
     {
         mpContact = static_cast<SwContact*>(GetUserCall( &mrDrawObj ));
-        OSL_ENSURE( mpContact,
-                "SwAnchoredObjectPosition::_GetInfoAboutObj() - missing SwContact-object." );
+        assert(mpContact &&
+                "SwAnchoredObjectPosition::_GetInfoAboutObj() - missing SwContact-object.");
     }
 
     // determine anchored object, the object belongs to
     {
         // #i26791#
         mpAnchoredObj = mpContact->GetAnchoredObj( &mrDrawObj );
-        OSL_ENSURE( mpAnchoredObj,
-                "SwAnchoredObjectPosition::_GetInfoAboutObj() - missing anchored object." );
+        assert(mpAnchoredObj &&
+                "SwAnchoredObjectPosition::_GetInfoAboutObj() - missing anchored object.");
     }
 
     // determine frame, the object is anchored at
@@ -102,8 +102,8 @@ void SwAnchoredObjectPosition::_GetInfoAboutObj()
     {
         // #i28701#
         mpFrmFmt = &mpAnchoredObj->GetFrmFmt();
-        OSL_ENSURE( mpFrmFmt,
-                "<SwAnchoredObjectPosition::_GetInfoAboutObj() - missing frame format." );
+        assert(mpFrmFmt &&
+                "<SwAnchoredObjectPosition::_GetInfoAboutObj() - missing frame format.");
     }
 
     // #i62875# - determine attribute value of <Follow-Text-Flow>
diff --git a/sw/source/core/text/txtfly.cxx b/sw/source/core/text/txtfly.cxx
index 856729f..fd40d78 100644
--- a/sw/source/core/text/txtfly.cxx
+++ b/sw/source/core/text/txtfly.cxx
@@ -136,7 +136,7 @@ SwContourCache::~SwContourCache()
 
 void SwContourCache::ClrObject( MSHORT nPos )
 {
-    OSL_ENSURE( pTextRanger[ nPos ], "ClrObject: Already cleared. Good Bye!" );
+    assert(pTextRanger[nPos] && "ClrObject: Already cleared. Good Bye!");
     nPntCnt -= pTextRanger[ nPos ]->GetPointCount();
     delete pTextRanger[ nPos ];
     --nObjCnt;
diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx
index b1c1f82..1f7d39d 100644
--- a/sw/source/filter/ww8/wrtww8.cxx
+++ b/sw/source/filter/ww8/wrtww8.cxx
@@ -1047,7 +1047,8 @@ sal_uInt8 *WW8_WrFkp::CopyLastSprms(sal_uInt8 &rLen, bool bVer8)
 
 bool WW8_WrFkp::Append( WW8_FC nEndFc, sal_uInt16 nVarLen, const sal_uInt8* pSprms )
 {
-    OSL_ENSURE( !nVarLen || pSprms, "Item pointer missing" );
+    assert((!nVarLen || pSprms) && "Item pointer missing");
+
     OSL_ENSURE( nVarLen < ( ( ePlc == PAP ) ? 497U : 502U ), "Sprms too long !" );
 
     if( bCombined )
diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx
index af3ce14..2fc0e6b 100644
--- a/sw/source/filter/xml/xmlimp.cxx
+++ b/sw/source/filter/xml/xmlimp.cxx
@@ -722,10 +722,10 @@ void SwXMLImport::endDocument( void )
     {
         Reference<XUnoTunnel> xCrsrTunnel( GetTextImport()->GetCursor(),
                                               UNO_QUERY);
-        OSL_ENSURE( xCrsrTunnel.is(), "missing XUnoTunnel for Cursor" );
+        assert(xCrsrTunnel.is() && "missing XUnoTunnel for Cursor");
         OTextCursorHelper *pTxtCrsr = reinterpret_cast< OTextCursorHelper *>(
                 sal::static_int_cast< sal_IntPtr >( xCrsrTunnel->getSomething( OTextCursorHelper::getUnoTunnelId() )));
-        OSL_ENSURE( pTxtCrsr, "SwXTextCursor missing" );
+        assert(pTxtCrsr && "SwXTextCursor missing");
         SwPaM *pPaM = pTxtCrsr->GetPaM();
         if( IsInsertMode() && pSttNdIdx->GetIndex() )
         {
diff --git a/sw/source/uibase/index/idxmrk.cxx b/sw/source/uibase/index/idxmrk.cxx
index f81f63b..306f554 100644
--- a/sw/source/uibase/index/idxmrk.cxx
+++ b/sw/source/uibase/index/idxmrk.cxx
@@ -61,9 +61,9 @@ SwInsertIdxMarkWrapper::SwInsertIdxMarkWrapper( Window *pParentWindow,
         SfxChildWindow(pParentWindow, nId)
 {
     SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
-    OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
+    assert(pFact && "SwAbstractDialogFactory fail!");
     pAbstDlg = pFact->CreateIndexMarkFloatDlg(pBindings, this, pParentWindow, pInfo);
-    OSL_ENSURE(pAbstDlg, "Dialogdiet fail!");
+    assert(pAbstDlg && "Dialogdiet fail!");
     pWindow = pAbstDlg->GetWindow();
     pWindow->Show();    // at this point,because before pSh has to be initialized in ReInitDlg()
                         // -> Show() will invoke StateChanged() and save pos
diff --git a/sw/source/uibase/uiview/viewdlg2.cxx b/sw/source/uibase/uiview/viewdlg2.cxx
index 416f944..3852fc1 100644
--- a/sw/source/uibase/uiview/viewdlg2.cxx
+++ b/sw/source/uibase/uiview/viewdlg2.cxx
@@ -54,10 +54,10 @@ void SwView::ExecDlgExt(SfxRequest &rReq)
         case FN_INSERT_CAPTION:
         {
             SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
-            OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
+            assert(pFact && "SwAbstractDialogFactory fail!");
 
             boost::scoped_ptr<VclAbstractDialog> pDialog(pFact->CreateSwCaptionDialog( pMDI, *this, DLG_CAPTION ));
-            OSL_ENSURE(pDialog, "Dialogdiet fail!");
+            assert(pDialog && "Dialogdiet fail!");
             if ( pDialog )
             {
                 pDialog->Execute();
@@ -67,10 +67,10 @@ void SwView::ExecDlgExt(SfxRequest &rReq)
         case  FN_EDIT_FOOTNOTE:
         {
             SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
-            OSL_ENSURE(pFact, "Dialogdiet fail!");
+            assert(pFact && "Dialogdiet fail!");
             boost::scoped_ptr<AbstractInsFootNoteDlg> pDlg(pFact->CreateInsFootNoteDlg(
                 pMDI, *m_pWrtShell, true));
-            OSL_ENSURE(pDlg, "Dialogdiet fail!");
+            assert(pDlg && "Dialogdiet fail!");
 
             pDlg->SetHelpId(GetStaticInterface()->GetSlot(FN_EDIT_FOOTNOTE)->GetCommand());
             pDlg->SetText( SW_RESSTR(STR_EDIT_FOOTNOTE) );
diff --git a/toolkit/source/helper/property.cxx b/toolkit/source/helper/property.cxx
index 5ace0a7..f1d7155 100644
--- a/toolkit/source/helper/property.cxx
+++ b/toolkit/source/helper/property.cxx
@@ -363,7 +363,7 @@ sal_uInt16 GetPropertyOrderNr( sal_uInt16 nPropertyId )
 const OUString& GetPropertyName( sal_uInt16 nPropertyId )
 {
     const ImplPropertyInfo* pImplPropertyInfo = ImplGetImplPropertyInfo( nPropertyId );
-    DBG_ASSERT( pImplPropertyInfo, "Invalid PropertyId!" );
+    assert(pImplPropertyInfo && "Invalid PropertyId!");
     return pImplPropertyInfo->aName;
 }
 
commit 6fe1e3af0e812d99e63677d9ead056357b37ecf7
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 09:16:53 2014 +0100

    clang scan-build: Called C++ object pointer is null
    
    Change-Id: I6c87e04060ab2adae19ae7e894d6313a3e671531

diff --git a/sw/source/core/layout/softpagebreak.cxx b/sw/source/core/layout/softpagebreak.cxx
index 5f20641..8aa2d78 100644
--- a/sw/source/core/layout/softpagebreak.cxx
+++ b/sw/source/core/layout/softpagebreak.cxx
@@ -119,7 +119,7 @@ bool SwTableLine::hasSoftPageBreak() const
             // No soft page break at the first page of the document
             if( pPage && !pPage->GetPrev() )
                 return false;
-            const SwCntntFrm* pFirst = pPage->FindFirstBodyCntnt();
+            const SwCntntFrm* pFirst = pPage ? pPage->FindFirstBodyCntnt() : NULL;
             // No soft page break for
             //   tables which does not contain the first body content of the page
             if( !pFirst || !pTab->IsAnLower( pFirst->FindTabFrm() ) )
commit f18e0e2f2c75a2d18c8086654dde2a25be6a4cd9
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 09:05:41 2014 +0100

    clang scan-build: Assigned value is garbage or undefined
    
    Change-Id: I461bb3d513fdbfffb3b79b549beded82c8d2a3d9

diff --git a/vcl/generic/print/text_gfx.cxx b/vcl/generic/print/text_gfx.cxx
index 2513843..769323b 100644
--- a/vcl/generic/print/text_gfx.cxx
+++ b/vcl/generic/print/text_gfx.cxx
@@ -303,6 +303,9 @@ PrinterGfx::DrawText (
                       const sal_Int32* pDeltaArray
                       )
 {
+    if (!nLen)
+        return;
+
     fontID nRestoreFont = mnFontID;
 
     // setup font[substitutes] and map the string into the symbol area in case of
commit a215499bf3e30bcb5ec152823c227ab0ce256cc6
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 3 08:50:03 2014 +0100

    clang scan-build: Argument with 'nonnull' attribute passed null
    
    Change-Id: I7e8700936cf98a672a2513232cf4247f1783c41b

diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx
index 7294970..b408f39 100644
--- a/connectivity/source/drivers/dbase/DTable.cxx
+++ b/connectivity/source/drivers/dbase/DTable.cxx
@@ -1470,6 +1470,8 @@ bool ODbaseTable::InsertRow(OValueRefVector& rRow, bool bFlush, const Reference<
 {
     // fill buffer with blanks
     AllocBuffer();
+    if (!m_pBuffer)
+        return false;
     memset(m_pBuffer, 0, m_aHeader.db_slng);
     m_pBuffer[0] = ' ';
 
commit 82e41a0cd250fa720ba4b545172517ce74dd6814
Author: Armin Le Grand <alg at apache.org>
Date:   Wed Jul 2 16:06:42 2014 +0000

    Resolves: #i125189# corrected used transparency and handling...
    
    to values used in the fallback SvxBrushItem
    
    (cherry picked from commit 63f53dbd6cac4fcd7fe568af62f29ae19768085f)
    
    Conflicts:
    	sw/source/core/layout/paintfrm.cxx
    
    Change-Id: Ifa339c76e8f55a2b4550f1252e6ab3e4dee57080

diff --git a/svx/source/unodraw/unobrushitemhelper.cxx b/svx/source/unodraw/unobrushitemhelper.cxx
index f6fe915..cad5ee2 100644
--- a/svx/source/unodraw/unobrushitemhelper.cxx
+++ b/svx/source/unodraw/unobrushitemhelper.cxx
@@ -57,8 +57,9 @@ void setSvxBrushItemAsFillAttributesToTargetSet(const SvxBrushItem& rBrush, SfxI
         rToSet.Put(XFillStyleItem(XFILL_SOLID));
         rToSet.Put(XFillColorItem(OUString(), aColor));
 
-        // nTransparency is in range [0..255], convert to [0..100] which is used in XFillTransparenceItem
-        rToSet.Put(XFillTransparenceItem((((sal_Int32)nTransparency * 100) + 127) / 255));
+        // #125189# nTransparency is in range [0..254], convert to [0..100] which is used in
+        // XFillTransparenceItem (caution with the range which is in an *item-specific* range)
+        rToSet.Put(XFillTransparenceItem((((sal_Int32)nTransparency * 100) + 127) / 254));
     }
     else if(GPOS_NONE != rBrush.GetGraphicPos())
     {
@@ -177,8 +178,12 @@ SvxBrushItem getSvxBrushItemForSolid(const SfxItemSet& rSourceSet, bool bSearchI
 
     if(0 != nFillTransparence)
     {
-        // nFillTransparence is in range [0..100] and needs to be in [0..255] unsigned
-        aFillColor.SetTransparency(static_cast< sal_uInt8 >((nFillTransparence * 255) / 100));
+        // #i125189# nFillTransparence is in range [0..100] and needs to be in [0..254] unsigned
+        // It is necessary to use the maximum of 0xfe for transparence for the SvxBrushItem
+        // since the oxff value is used for special purposes (like no fill and derive from parent)
+        const sal_uInt8 aTargetTrans(std::min(sal_uInt8(0xfe), static_cast< sal_uInt8 >((nFillTransparence * 254) / 100)));
+
+        aFillColor.SetTransparency(aTargetTrans);
     }
 
     return SvxBrushItem(aFillColor, nBackgroundID);
@@ -233,8 +238,12 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt
 
             if(0 != nFillTransparence)
             {
-                // nFillTransparence is in range [0..100] and needs to be in [0..255] unsigned
-                aMixedColor.SetTransparency(static_cast< sal_uInt8 >((nFillTransparence * 255) / 100));
+                // #i125189# nFillTransparence is in range [0..100] and needs to be in [0..254] unsigned
+                // It is necessary to use the maximum of 0xfe for transparence for the SvxBrushItem
+                // since the oxff value is used for special purposes (like no fill and derive from parent)
+                const sal_uInt8 aTargetTrans(std::min(sal_uInt8(0xfe), static_cast< sal_uInt8 >((nFillTransparence * 254) / 100)));
+
+                aMixedColor.SetTransparency(aTargetTrans);
             }
 
             aRetval = SvxBrushItem(aMixedColor, nBackgroundID);
@@ -263,9 +272,12 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt
                 // take half orig transparence, add half transparent, clamp result
                 nFillTransparence = basegfx::clamp((sal_uInt16)((nFillTransparence / 2) + 50), (sal_uInt16)0, (sal_uInt16)255);
 
-                // nFillTransparence is in range [0..100] and needs to be in [0..255] unsigned
-                aHatchColor.SetTransparency(static_cast< sal_uInt8 >((nFillTransparence * 255) / 100));
+                // #i125189# nFillTransparence is in range [0..100] and needs to be in [0..254] unsigned
+                // It is necessary to use the maximum of 0xfe for transparence for the SvxBrushItem
+                // since the oxff value is used for special purposes (like no fill and derive from parent)
+                const sal_uInt8 aTargetTrans(std::min(sal_uInt8(0xfe), static_cast< sal_uInt8 >((nFillTransparence * 254) / 100)));
 
+                aHatchColor.SetTransparency(aTargetTrans);
                 aRetval = SvxBrushItem(aHatchColor, nBackgroundID);
             }
 
@@ -316,7 +328,7 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt
 
             if(0 != nFillTransparence)
             {
-                // nFillTransparence is in range [0..100] and needs to be in [0..100] signed
+                // #i125189# nFillTransparence is in range [0..100] and needs to be in [0..100] signed
                 aRetval.setGraphicTransparency(static_cast< sal_Int8 >(nFillTransparence));
             }
 
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 2dde87b..8858b4c 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -6528,9 +6528,29 @@ void SwFrm::PaintBackground( const SwRect &rRect, const SwPageFrm *pPage,
                 const bool bConsiderBackgroundTransparency = IsFlyFrm();
                 bool bDone(false);
 
-                if(pOut && aFillAttributes.get() && aFillAttributes->isUsed())
+                // #i125189# We are also done when the new DrawingLayer FillAttributes are used
+                // or the FillStyle is set (different from XFILL_NONE)
+                if(pOut && aFillAttributes.get())
                 {
-                    bDone = DrawFillAttributes(aFillAttributes, aOrigBackRect, aRect, *pOut);
+                    if(aFillAttributes->isUsed())
+                    {
+                        // check if really something is painted
+                        bDone = DrawFillAttributes(aFillAttributes, aOrigBackRect, aRect, *pOut);
+                    }
+
+                    if(!bDone)
+                    {
+                        // if not, still a FillStyle could be set but the transparency is at 100%,
+                        // thus need to check the model data itself for FillStyle (do not rely on
+                        // SdrAllFillAttributesHelper since it already contains optimized information,
+                        // e.g. transparency leads to no fill)
+                        const XFillStyle eFillStyle(static_cast< const XFillStyleItem& >(GetAttrSet()->Get(XATTR_FILLSTYLE)).GetValue());
+
+                        if(XFILL_NONE != eFillStyle)
+                        {
+                            bDone = true;
+                        }
+                    }
                 }
 
                 if(!bDone)
@@ -7423,13 +7443,42 @@ bool SwFrm::GetBackgroundBrush(
         //     --> Status Quo: background transparency have to be
         //                     considered for fly frames
         const bool bConsiderBackgroundTransparency = pFrm->IsFlyFrm();
+
+        // #i125189# Do not base the decision for using the parent's fill style for this
+        // frame when the new DrawingLayer FillAttributes are used on the SdrAllFillAttributesHelper
+        // information. There the data is already optimized to no fill in the case that the
+        // transparence is at 100% while no fill is the criteria for derivation
+        bool bNewDrawingLayerFillStyleIsUsedAndNotNoFill(false);
+
+        if(rFillAttributes.get())
+        {
+            // the new DrawingLayer FillStyle is used
+            if(rFillAttributes->isUsed())
+            {
+                // it's not XFILL_NONE
+                bNewDrawingLayerFillStyleIsUsedAndNotNoFill = true;
+            }
+            else
+            {
+                // maybe optimized already when 100% transparency is used somewhere, need to test
+                // XFillStyleItem directly from the model data
+                const XFillStyle eFillStyle(static_cast< const XFillStyleItem& >(pFrm->GetAttrSet()->Get(XATTR_FILLSTYLE)).GetValue());
+
+                if(XFILL_NONE != eFillStyle)
+                {
+                    bNewDrawingLayerFillStyleIsUsedAndNotNoFill = true;
+                }
+            }
+        }
+
         // OD 20.08.2002 #99657#
         //     add condition:
         //     If <bConsiderBackgroundTransparency> is set - see above -,
         //     return brush of frame <pFrm>, if its color is *not* "no fill"/"auto fill"
         if (
-            // done when FillAttributesare set
-            (rFillAttributes.get() && rFillAttributes->isUsed()) ||
+            // #i125189# Done when the new DrawingLayer FillAttributes are used and
+            // not XFILL_NONE (see above)
+            bNewDrawingLayerFillStyleIsUsedAndNotNoFill ||
 
             // done when SvxBrushItem is used
             !rBack.GetColor().GetTransparency() || rBack.GetGraphicPos() != GPOS_NONE ||


More information about the Libreoffice-commits mailing list