bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx |   58 ++++++++++++++--
 configure.ac                                            |    2 
 cui/source/tabpages/tparea.cxx                          |    7 -
 ridljar/com/sun/star/lib/util/NativeLibraryLoader.java  |    9 --
 sc/inc/kahan.hxx                                        |   11 +++
 svx/source/svdraw/svdpage.cxx                           |    4 -
 sw/source/core/frmedt/feshview.cxx                      |    7 +
 7 files changed, 74 insertions(+), 24 deletions(-)

New commits:
commit 979bacbb37b1ea1b42f739ea0d4a0ed22a3088f4
Author:     Andras Timar <andras.ti...@collabora.com>
AuthorDate: Mon Sep 18 10:16:20 2023 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Sep 18 10:16:20 2023 +0200

    Bump version to 23.05.4.2
    
    Change-Id: I5390995e79b184399256f4bbd167dfcd77339e3d

diff --git a/configure.ac b/configure.ac
index 500533a83f07..b0dd7b189697 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for 
the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no 
idea.
 
-AC_INIT([Collabora Office],[23.05.4.1],[],[],[https://collaboraoffice.com/])
+AC_INIT([Collabora Office],[23.05.4.2],[],[],[https://collaboraoffice.com/])
 
 dnl libnumbertext needs autoconf 2.68, but that can pick up autoconf268 just 
fine if it is installed
 dnl whereas aclocal (as run by autogen.sh) insists on using autoconf and fails 
hard
commit c8cef77b6c51c94387b321ac48321e6cc5c0a106
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Thu Sep 14 22:50:37 2023 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Sep 18 10:13:51 2023 +0200

    tdf#157174: fix crash when clicking "Print Preview"
    
    Don't call Reformat method when treating a virtual SdrObject
    
    bt:
    4  0x00007fd7ff446eb4 in SdrObject::GetBroadcaster() const (this=0x4) at 
/home/julien/lo/libreoffice/svx/source/svdraw/svdobj.cxx:698
    5  0x00007fd7ff48eaee in SdrEdgeObj::Reformat() (this=0x564e82ef22d0) at 
/home/julien/lo/libreoffice/svx/source/svdraw/svdoedge.cxx:1666
    6  0x00007fd7ff551bd9 in SdrObjList::ImplReformatAllEdgeObjects(SdrObjList 
const&) (this=0x564e82a371e0, rObjList=...) at 
/home/julien/lo/libreoffice/svx/source/svdraw/svdpage.cxx:760
    7  0x00007fd7ff551b38 in SdrObjList::ReformatAllEdgeObjects() 
(this=0x564e82a371e0) at 
/home/julien/lo/libreoffice/svx/source/svdraw/svdpage.cxx:744
    8  0x00007fd7ff3d8d1c in SdrModel::ImpReformatAllEdgeObjects() 
(this=0x564e7f79dc50) at 
/home/julien/lo/libreoffice/svx/source/svdraw/svdmodel.cxx:752
    9  0x00007fd7ff3dda3b in SdrModel::setLock(bool) (this=0x564e7f79dc50, 
bLock=false) at /home/julien/lo/libreoffice/svx/source/svdraw/svdmodel.cxx:1618
    10 0x00007fd7c58a9a76 in SwView::~SwView() (this=0x564e82e7bb00) at 
/home/julien/lo/libreoffice/sw/source/uibase/uiview/view.cxx:1163
    11 0x00007fd7c58a9f99 in SwView::~SwView() (this=0x564e82e7bb00) at 
/home/julien/lo/libreoffice/sw/source/uibase/uiview/view.cxx:1122
    12 0x00007fd801835308 in SfxViewFrame::SwitchToViewShell_Impl(unsigned 
short, bool) (this=0x564e82b17680, nViewIdOrNo=1, bIsIndex=true) at 
/home/julien/lo/libreoffice/sfx2/source/view/viewfrm.cxx:2528
    
    See complete bt here:
    https://bugs.documentfoundation.org/attachment.cgi?id=189470
    
    Change-Id: I4de5127686c01a40c1666f6089efa4fe7a114cd0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156934
    (cherry picked from commit 17cd1dacf6a4b587b524edc7384ff26990208132)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156951
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx
index bc04316941c4..8378dcfed820 100644
--- a/svx/source/svdraw/svdpage.cxx
+++ b/svx/source/svdraw/svdpage.cxx
@@ -795,7 +795,9 @@ void SdrObjList::ImplReformatAllEdgeObjects(const 
SdrObjList& rObjList)
         const bool bIsGroup(nullptr != pChildren);
         if(!bIsGroup)
         {
-            if (pSdrObject->GetObjIdentifier() == SdrObjKind::Edge)
+            // Check IsVirtualObj because sometimes we get SwDrawVirtObj here
+            if (pSdrObject->GetObjIdentifier() == SdrObjKind::Edge
+               && !pSdrObject->IsVirtualObj())
             {
                 SdrEdgeObj* pSdrEdgeObj = static_cast< SdrEdgeObj* 
>(pSdrObject);
                 pSdrEdgeObj->Reformat();
commit e8a4387848966616078bccc08bcf30c44d9af136
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Thu Sep 14 20:18:55 2023 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Sep 18 10:13:51 2023 +0200

    crashreporting: apparent null deref at 
SwFEShell::IsShapeDefaultHoriTextDirR2L
    
    https: 
//crashreport.libreoffice.org/stats/crash_details/73028951-19a0-409b-89d2-a080495df925
    Change-Id: I440465a3c7d5b98ecdd1c5f1973a2b8f64d6772e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156888
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    (cherry picked from commit 7a33e2f4c6a1a3c489b6deaeaae1489acb0aa389)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156889
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>

diff --git a/sw/source/core/frmedt/feshview.cxx 
b/sw/source/core/frmedt/feshview.cxx
index 61f2a8ae30eb..a7e1e2228c12 100644
--- a/sw/source/core/frmedt/feshview.cxx
+++ b/sw/source/core/frmedt/feshview.cxx
@@ -3359,8 +3359,11 @@ bool SwFEShell::IsShapeDefaultHoriTextDirR2L() const
             if ( dynamic_cast<const SwVirtFlyDrawObj*>( pSdrObj) ==  nullptr )
             {
                 // determine page frame of the frame the shape is anchored.
-                const SwFrame* pAnchorFrame =
-                        
static_cast<SwDrawContact*>(GetUserCall(pSdrObj))->GetAnchorFrame( pSdrObj );
+                const SwContact* pContact = GetUserCall(pSdrObj);
+                OSL_ENSURE( pContact, 
"<SwFEShell::IsShapeDefaultHoriTextDirR2L(..)> - missing contact!" );
+                if (!pContact)
+                    return false;
+                const SwFrame* pAnchorFrame = static_cast<const 
SwDrawContact*>(pContact)->GetAnchorFrame( pSdrObj );
                 OSL_ENSURE( pAnchorFrame, "inconsistent model - no anchor at 
shape!");
                 if ( pAnchorFrame )
                 {
commit f6c47cdb578eb94212eae763855c734de3ed5c76
Author:     Dan Horák <d...@danny.cz>
AuthorDate: Tue Sep 12 10:20:51 2023 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Sep 18 10:13:51 2023 +0200

    bridge/powerpc64: fix integer ABI
    
    The ABI document for PowerPC64 specifies that integer values shorter than
    a doubleword are sign or zero extended as necessary. Until now the smaller
    values were treated as unsigned values and only zero-extended. Handling of
    signed values was incorrect.
    
    Change-Id: Icbbe8fc8d4facfa6d1b3252c99ec2d8c2552d9f0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156847
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>
    (cherry picked from commit 0effeef3dc952959af50c045514bbcd135c37fb7)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156873

diff --git a/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx 
b/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
index 612495d83395..9b66f778dfd6 100644
--- a/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx
@@ -256,6 +256,14 @@ static void callVirtualMethod(void * pThis, sal_uInt32 
nVtableIndex,
                 *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); // verbatim!
 
 #define INSERT_INT64( pSV, nr, pGPR, pDS, bOverflow ) \
+        if ( nr < ppc64::MAX_GPR_REGS ) \
+                pGPR[nr++] = *reinterpret_cast<sal_Int64 *>( pSV ); \
+        else \
+        bOverflow = true; \
+    if (bOverflow) \
+                *pDS++ = *reinterpret_cast<sal_Int64 *>( pSV );
+
+#define INSERT_UINT64( pSV, nr, pGPR, pDS, bOverflow ) \
         if ( nr < ppc64::MAX_GPR_REGS ) \
                 pGPR[nr++] = *reinterpret_cast<sal_uInt64 *>( pSV ); \
         else \
@@ -264,6 +272,14 @@ static void callVirtualMethod(void * pThis, sal_uInt32 
nVtableIndex,
                 *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV );
 
 #define INSERT_INT32( pSV, nr, pGPR, pDS, bOverflow ) \
+        if ( nr < ppc64::MAX_GPR_REGS ) \
+                pGPR[nr++] = *reinterpret_cast<sal_Int32 *>( pSV ); \
+        else \
+                bOverflow = true; \
+        if (bOverflow) \
+                *pDS++ = *reinterpret_cast<sal_Int32 *>( pSV );
+
+#define INSERT_UINT32( pSV, nr, pGPR, pDS, bOverflow ) \
         if ( nr < ppc64::MAX_GPR_REGS ) \
                 pGPR[nr++] = *reinterpret_cast<sal_uInt32 *>( pSV ); \
         else \
@@ -272,6 +288,14 @@ static void callVirtualMethod(void * pThis, sal_uInt32 
nVtableIndex,
                 *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV );
 
 #define INSERT_INT16( pSV, nr, pGPR, pDS, bOverflow ) \
+        if ( nr < ppc64::MAX_GPR_REGS ) \
+                pGPR[nr++] = *reinterpret_cast<sal_Int16 *>( pSV ); \
+        else \
+                bOverflow = true; \
+        if (bOverflow) \
+                *pDS++ = *reinterpret_cast<sal_Int16 *>( pSV );
+
+#define INSERT_UINT16( pSV, nr, pGPR, pDS, bOverflow ) \
         if ( nr < ppc64::MAX_GPR_REGS ) \
                 pGPR[nr++] = *reinterpret_cast<sal_uInt16 *>( pSV ); \
         else \
@@ -280,6 +304,14 @@ static void callVirtualMethod(void * pThis, sal_uInt32 
nVtableIndex,
                 *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV );
 
 #define INSERT_INT8( pSV, nr, pGPR, pDS, bOverflow ) \
+        if ( nr < ppc64::MAX_GPR_REGS ) \
+                pGPR[nr++] = *reinterpret_cast<sal_Int8 *>( pSV ); \
+        else \
+                bOverflow = true; \
+        if (bOverflow) \
+                *pDS++ = *reinterpret_cast<sal_Int8 *>( pSV );
+
+#define INSERT_UINT8( pSV, nr, pGPR, pDS, bOverflow ) \
         if ( nr < ppc64::MAX_GPR_REGS ) \
                 pGPR[nr++] = *reinterpret_cast<sal_uInt8 *>( pSV ); \
         else \
@@ -335,7 +367,7 @@ static void cpp_call(
 #if OSL_DEBUG_LEVEL > 2
             fprintf(stderr, "pCppReturn/pUnoReturn is %lx/%lx", pCppReturn, 
pUnoReturn);
 #endif
-            INSERT_INT64( &pCppReturn, nGPR, pGPR, pStack, bOverflow );
+            INSERT_UINT64( &pCppReturn, nGPR, pGPR, pStack, bOverflow );
         }
     }
     // push "this" pointer
@@ -343,7 +375,7 @@ static void cpp_call(
 #if OSL_DEBUG_LEVEL > 2
     fprintf(stderr, "this pointer is %p\n", pAdjustedThisPtr);
 #endif
-    INSERT_INT64( &pAdjustedThisPtr, nGPR, pGPR, pStack, bOverflow );
+    INSERT_UINT64( &pAdjustedThisPtr, nGPR, pGPR, pStack, bOverflow );
 
         // Args
         void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams );
@@ -376,26 +408,40 @@ static void cpp_call(
                 switch (pParamTypeDescr->eTypeClass)
                         {
                         case typelib_TypeClass_HYPER:
-                        case typelib_TypeClass_UNSIGNED_HYPER:
 #if OSL_DEBUG_LEVEL > 2
                                 fprintf(stderr, "hyper is %lx\n", 
pCppArgs[nPos]);
 #endif
                                 INSERT_INT64( pCppArgs[nPos], nGPR, pGPR, 
pStack, bOverflow );
                                 break;
+                        case typelib_TypeClass_UNSIGNED_HYPER:
+#if OSL_DEBUG_LEVEL > 2
+                                fprintf(stderr, "uhyper is 0x%lx\n", 
*(sal_Int64 *)pCppArgs[nPos]);
+#endif
+                                INSERT_UINT64( pCppArgs[nPos], nGPR, pGPR, 
pStack, bOverflow );
+                                break;
                         case typelib_TypeClass_LONG:
-                        case typelib_TypeClass_UNSIGNED_LONG:
                         case typelib_TypeClass_ENUM:
 #if OSL_DEBUG_LEVEL > 2
                                 fprintf(stderr, "long is %x\n", 
pCppArgs[nPos]);
 #endif
                                 INSERT_INT32( pCppArgs[nPos], nGPR, pGPR, 
pStack, bOverflow );
                                 break;
+                        case typelib_TypeClass_UNSIGNED_LONG:
+#if OSL_DEBUG_LEVEL > 2
+                                fprintf(stderr, "ulong is 0x%x\n", *(sal_Int32 
*)pCppArgs[nPos]);
+#endif
+                                INSERT_UINT32( pCppArgs[nPos], nGPR, pGPR, 
pStack, bOverflow );
+                                break;
                         case typelib_TypeClass_SHORT:
+                                INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, 
pStack, bOverflow );
+                                break;
                         case typelib_TypeClass_CHAR:
                         case typelib_TypeClass_UNSIGNED_SHORT:
-                                INSERT_INT16( pCppArgs[nPos], nGPR, pGPR, 
pStack, bOverflow );
+                                INSERT_UINT16( pCppArgs[nPos], nGPR, pGPR, 
pStack, bOverflow );
                                 break;
                         case typelib_TypeClass_BOOLEAN:
+                                INSERT_UINT8( pCppArgs[nPos], nGPR, pGPR, 
pStack, bOverflow );
+                                break;
                         case typelib_TypeClass_BYTE:
                                 INSERT_INT8( pCppArgs[nPos], nGPR, pGPR, 
pStack, bOverflow );
                                 break;
@@ -454,7 +500,7 @@ static void cpp_call(
                                 // no longer needed
                                 TYPELIB_DANGER_RELEASE( pParamTypeDescr );
                         }
-                        INSERT_INT64( &(pCppArgs[nPos]), nGPR, pGPR, pStack, 
bOverflow );
+                        INSERT_UINT64( &(pCppArgs[nPos]), nGPR, pGPR, pStack, 
bOverflow );
         }
     }
 
commit 85b080acd5bfa3b52925aeb0cb7b458901a2c798
Author:     Hossein <hoss...@libreoffice.org>
AuthorDate: Thu Aug 31 11:02:09 2023 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Sep 18 10:13:50 2023 +0200

    tdf#149069 Revert "ridljar: check UnoClassLoader used for 
NativeLibraryLoader"
    
    This reverts commit 97b61ea3297e04e64aab1e1a4ec50202e9f86fff. It checked
    that the NativeLibraryLoader is an instance of the class
    com.sun.star.lib.unoloader.UnoClassLoader. If this is not the case, a
    warning was displayed. This was for java_uno bridge to work.
    
    On the other hand, as the comment in the code implies, "not a problem
    if this is using Java remote bridge or (in a) unit test". But, in the
    code there was no check for that. As a result, this warning is displayed
    in many places like the simple examples that want to connect to the
    LibreOffice process via Java API.
    
    Change-Id: I056ed372ad071573051024a63e51afd6b4425ce5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156302
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    Tested-by: Jenkins
    Reviewed-by: Hossein <hoss...@libreoffice.org>
    (cherry picked from commit 345b214c37d1f645dd0e6e084358f8ca81d9ed66)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156374
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/ridljar/com/sun/star/lib/util/NativeLibraryLoader.java 
b/ridljar/com/sun/star/lib/util/NativeLibraryLoader.java
index d255a71ea5d1..eb5c6af34e90 100644
--- a/ridljar/com/sun/star/lib/util/NativeLibraryLoader.java
+++ b/ridljar/com/sun/star/lib/util/NativeLibraryLoader.java
@@ -21,7 +21,6 @@ package com.sun.star.lib.util;
 import java.io.File;
 import java.net.URL;
 import java.net.URLClassLoader;
-import com.sun.star.lib.unoloader.UnoClassLoader;
 
 /**
  * Helper functions to locate and load native files.
@@ -36,14 +35,6 @@ import com.sun.star.lib.unoloader.UnoClassLoader;
  * algorithm.</p>
  */
 public final class NativeLibraryLoader {
-    static {
-        // if it's some other class loader, then resolving the symbol
-        // Java_com_sun_star_bridges_jni_1uno_JNI_1proxy_dispatch_1call in
-        // java_uno will not work and result in UnsatisfiedLinkError
-        if (!(NativeLibraryLoader.class.getClassLoader() instanceof 
com.sun.star.lib.unoloader.UnoClassLoader)) {
-            System.err.println("warning: 
com.sun.star.lib.util.NativeLibraryLoader must be loaded by 
com.sun.star.lib.unoloader.UnoClassLoader for java_uno bridge to work (not a 
problem if this is using Java remote bridge or unit test)");
-        }
-    }
     /**
      * Load a system library, using a given class loader to locate the library.
      *
commit e17b7d7cd480bad4630f51ebca4c3fae8e9d0d8f
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Thu Sep 7 16:34:53 2023 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Sep 18 10:13:50 2023 +0200

    tdf#157138: Can't switch from Use Background to None area fill
    
    Revert partly tdf#151260 fix
    
    Change-Id: I4c052e2cd1cb41dc8bda4b388b46e4416e351434
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156669
    (cherry picked from commit b69e14038288387b5f288a06821fb5df66dcf94e)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156733
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    (cherry picked from commit 7ccaecd33a30905e3929d43c8164b16bbb101b73)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156741
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index bbdb9733a02f..119d6d154076 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -238,11 +238,8 @@ DeactivateRC SvxAreaTabPage::DeactivatePage( SfxItemSet* 
_pSet )
             {
                 XFillStyleItem aStyleItem( drawing::FillStyle_NONE );
                 _pSet->Put( aStyleItem );
-                if (_pSet->HasItem(XATTR_FILLUSESLIDEBACKGROUND))
-                {
-                    XFillUseSlideBackgroundItem aFillBgItem( false );
-                    _pSet->Put( aFillBgItem );
-                }
+                XFillUseSlideBackgroundItem aFillBgItem( false );
+                _pSet->Put( aFillBgItem );
             }
             break;
         }
commit c5cd0b43ce84abd98df1c59ec5ce4d51c560b9c4
Author:     Eike Rathke <er...@redhat.com>
AuthorDate: Fri Sep 1 15:20:28 2023 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Sep 18 10:13:50 2023 +0200

    Resolves: tdf#156985 Treat adding two KahanSum differently
    
    When summing mixed formula cells and numeric cells, cell type runs are
    summed using KahanSum that when switching cell types are added. Using
    add() to explicitly add the rhs m_fError compensation value separately
    may had lead to effectively cancelling out the relation of sum and
    error, living on with an unrelated error value. Instead, add a "final"
    rhs sum+compensation.
    
    Change-Id: I751d3e0eeef9cd80482895c24f05b1ab667c3020
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156253
    Tested-by: Jenkins
    Reviewed-by: Eike Rathke <er...@redhat.com>
    (cherry picked from commit 1f8cc7644293e62ad6430bbeec243d3283e478d7)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156432
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sc/inc/kahan.hxx b/sc/inc/kahan.hxx
index 6c84f6eeef2e..ac97ae4394fa 100644
--- a/sc/inc/kahan.hxx
+++ b/sc/inc/kahan.hxx
@@ -71,8 +71,15 @@ public:
       */
     inline void add(const KahanSum& fSum)
     {
+#ifdef _WIN32
+        // For some odd unknown reason WIN32 fails badly with the
+        // sum+compensation value. Continue keeping the old though slightly off
+        // (see tdf#156985) explicit addition of the compensation value.
         add(fSum.m_fSum);
         add(fSum.m_fError);
+#else
+        add(fSum.m_fSum + fSum.m_fError);
+#endif
         add(fSum.m_fMem);
     }
 
@@ -82,8 +89,12 @@ public:
       */
     inline void subtract(const KahanSum& fSum)
     {
+#ifdef _WIN32
         add(-fSum.m_fSum);
         add(-fSum.m_fError);
+#else
+        add(-(fSum.m_fSum + fSum.m_fError));
+#endif
         add(-fSum.m_fMem);
     }
 

Reply via email to