[PATCH] Revert "Revert "reduce some uglyness""

Thomas Arnhold (via Code Review) gerrit at gerrit.libreoffice.org
Tue Apr 2 05:22:52 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/3171

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/71/3171/1

Revert "Revert "reduce some uglyness""

The header guard seems to solve the problem.

This reverts commit df8c41cceeca27ae49e9fa6b5cd64c65c8feb218.

Change-Id: I27869be9c70e79a366a547ce061e71a3743f87da
---
M svl/inc/svl/rngitem.hxx
M svl/source/items/rngitem.cxx
D svl/source/items/rngitem_inc.cxx
3 files changed, 198 insertions(+), 255 deletions(-)



diff --git a/svl/inc/svl/rngitem.hxx b/svl/inc/svl/rngitem.hxx
index 698641d..450e958 100644
--- a/svl/inc/svl/rngitem.hxx
+++ b/svl/inc/svl/rngitem.hxx
@@ -18,20 +18,8 @@
  */
 
 #ifndef _SFXRNGITEM_HXX
-
-#ifndef NUMTYPE
-
-#define NUMTYPE sal_uInt16
-#define SfxXRangeItem SfxRangeItem
-#define SfxXRangesItem SfxUShortRangesItem
-#include <svl/rngitem.hxx>
-#undef NUMTYPE
-#undef SfxXRangeItem
-#undef SfxXRangesItem
-
 #define _SFXRNGITEM_HXX
 
-#else
 #include "svl/svldllapi.h"
 #include <svl/poolitem.hxx>
 
@@ -39,16 +27,16 @@
 
 // -----------------------------------------------------------------------
 
-class SVL_DLLPUBLIC SfxXRangeItem : public SfxPoolItem
+class SVL_DLLPUBLIC SfxRangeItem : public SfxPoolItem
 {
 private:
-    NUMTYPE                     nFrom;
-    NUMTYPE                     nTo;
+    sal_uInt16                  nFrom;
+    sal_uInt16                  nTo;
 public:
                                 TYPEINFO();
-                                SfxXRangeItem();
-                                SfxXRangeItem( sal_uInt16 nWID, NUMTYPE nFrom, NUMTYPE nTo );
-                                SfxXRangeItem( const SfxXRangeItem& rItem );
+                                SfxRangeItem();
+                                SfxRangeItem( sal_uInt16 nWID, sal_uInt16 nFrom, sal_uInt16 nTo );
+                                SfxRangeItem( const SfxRangeItem& rItem );
     virtual int                 operator==( const SfxPoolItem& ) const;
     virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
                                     SfxMapUnit eCoreMetric,
@@ -56,28 +44,28 @@
                                     OUString &rText,
                                     const IntlWrapper * = 0 ) const;
     virtual SfxPoolItem*        Clone( SfxItemPool *pPool = 0 ) const;
-    inline NUMTYPE&             From() { return nFrom; }
-    inline NUMTYPE              From() const { return nFrom; }
-    inline NUMTYPE&             To() { return nTo; }
-    inline NUMTYPE              To() const { return nTo; }
-    inline sal_Bool                 HasRange() const { return nTo>nFrom; }
+    inline sal_uInt16&          From() { return nFrom; }
+    inline sal_uInt16           From() const { return nFrom; }
+    inline sal_uInt16&          To() { return nTo; }
+    inline sal_uInt16           To() const { return nTo; }
+    inline sal_Bool             HasRange() const { return nTo>nFrom; }
     virtual SfxPoolItem*        Create( SvStream &, sal_uInt16 nVersion ) const;
     virtual SvStream&           Store( SvStream &, sal_uInt16 nItemVersion ) const;
 };
 
 // -----------------------------------------------------------------------
 
-class SVL_DLLPUBLIC SfxXRangesItem : public SfxPoolItem
+class SVL_DLLPUBLIC SfxUShortRangesItem : public SfxPoolItem
 {
 private:
-    NUMTYPE*                    _pRanges;
+    sal_uInt16*                 _pRanges;
 
 public:
                                 TYPEINFO();
-                                SfxXRangesItem();
-                                SfxXRangesItem( sal_uInt16 nWID, SvStream &rStream );
-                                SfxXRangesItem( const SfxXRangesItem& rItem );
-    virtual                     ~SfxXRangesItem();
+                                SfxUShortRangesItem();
+                                SfxUShortRangesItem( sal_uInt16 nWID, SvStream &rStream );
+                                SfxUShortRangesItem( const SfxUShortRangesItem& rItem );
+    virtual                     ~SfxUShortRangesItem();
     virtual int                 operator==( const SfxPoolItem& ) const;
     virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
                                     SfxMapUnit eCoreMetric,
@@ -85,12 +73,11 @@
                                     OUString &rText,
                                     const IntlWrapper * = 0 ) const;
     virtual SfxPoolItem*        Clone( SfxItemPool *pPool = 0 ) const;
-    inline const NUMTYPE*       GetRanges() const { return _pRanges; }
+    inline const sal_uInt16*    GetRanges() const { return _pRanges; }
     virtual SfxPoolItem*        Create( SvStream &, sal_uInt16 nVersion ) const;
     virtual SvStream&           Store( SvStream &, sal_uInt16 nItemVersion ) const;
 };
 
-#endif
 #endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svl/source/items/rngitem.cxx b/svl/source/items/rngitem.cxx
index 72f890d..645c543 100644
--- a/svl/source/items/rngitem.cxx
+++ b/svl/source/items/rngitem.cxx
@@ -18,22 +18,190 @@
  */
 
 #include <tools/stream.hxx>
-
-#ifndef NUMTYPE
-
-#define NUMTYPE sal_uInt16
-#define SfxXRangeItem SfxRangeItem
-#define SfxXRangesItem SfxUShortRangesItem
 #include <svl/rngitem.hxx>
-#include "rngitem_inc.cxx"
 
-#else
+static inline sal_uInt16 Count_Impl(const sal_uInt16 * pRanges)
+{
+    sal_uInt16 nCount = 0;
+    for (; *pRanges; pRanges += 2) nCount += 2;
+    return nCount;
+}
 
-// We leave this condition just in case NUMTYPE has been defined externally to this
-// file and we are supposed to define the SfxXRangeItem based on that.
+// -----------------------------------------------------------------------
 
-#include "rngitem_inc.cxx"
+TYPEINIT1_AUTOFACTORY(SfxRangeItem, SfxPoolItem);
+TYPEINIT1_AUTOFACTORY(SfxUShortRangesItem, SfxPoolItem);
 
-#endif
+sal_uInt16 Count_Impl( const sal_uInt16 *pRanges );
+
+// -----------------------------------------------------------------------
+
+SfxRangeItem::SfxRangeItem()
+{
+    nFrom = 0;
+    nTo = 0;
+}
+
+// -----------------------------------------------------------------------
+
+SfxRangeItem::SfxRangeItem( sal_uInt16 which, sal_uInt16 from, sal_uInt16 to ):
+    SfxPoolItem( which ),
+    nFrom( from ),
+    nTo( to )
+{
+}
+
+// -----------------------------------------------------------------------
+
+SfxRangeItem::SfxRangeItem( const SfxRangeItem& rItem ) :
+    SfxPoolItem( rItem )
+{
+    nFrom = rItem.nFrom;
+    nTo = rItem.nTo;
+}
+
+// -----------------------------------------------------------------------
+
+SfxItemPresentation SfxRangeItem::GetPresentation
+(
+    SfxItemPresentation     /*ePresentation*/,
+    SfxMapUnit              /*eCoreMetric*/,
+    SfxMapUnit              /*ePresentationMetric*/,
+    OUString&               rText,
+    const IntlWrapper *
+)   const
+{
+    rText = OUString::number(nFrom) + ":" + OUString::number(nTo);
+    return SFX_ITEM_PRESENTATION_NAMELESS;
+}
+
+// -----------------------------------------------------------------------
+
+int SfxRangeItem::operator==( const SfxPoolItem& rItem ) const
+{
+    DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+    SfxRangeItem* pT = (SfxRangeItem*)&rItem;
+    if( nFrom==pT->nFrom && nTo==pT->nTo )
+        return 1;
+    return 0;
+}
+
+// -----------------------------------------------------------------------
+
+SfxPoolItem* SfxRangeItem::Clone(SfxItemPool *) const
+{
+    return new SfxRangeItem( Which(), nFrom, nTo );
+}
+
+// -----------------------------------------------------------------------
+
+SfxPoolItem* SfxRangeItem::Create(SvStream &rStream, sal_uInt16) const
+{
+    sal_uInt16 nVon(0), nBis(0);
+    rStream >> nVon;
+    rStream >> nBis;
+    return new SfxRangeItem( Which(), nVon, nBis );
+}
+
+// -----------------------------------------------------------------------
+
+SvStream& SfxRangeItem::Store(SvStream &rStream, sal_uInt16) const
+{
+    rStream << nFrom;
+    rStream << nTo;
+    return rStream;
+}
+
+//=========================================================================
+
+SfxUShortRangesItem::SfxUShortRangesItem()
+:   _pRanges(0)
+{
+}
+
+//-------------------------------------------------------------------------
+
+SfxUShortRangesItem::SfxUShortRangesItem( sal_uInt16 nWID, SvStream &rStream )
+:   SfxPoolItem( nWID )
+{
+    sal_uInt16 nCount(0);
+    rStream >> nCount;
+    _pRanges = new sal_uInt16[nCount + 1];
+    for ( sal_uInt16 n = 0; n < nCount; ++n )
+        rStream >> _pRanges[n];
+    _pRanges[nCount] = 0;
+}
+
+//-------------------------------------------------------------------------
+
+SfxUShortRangesItem::SfxUShortRangesItem( const SfxUShortRangesItem& rItem )
+:   SfxPoolItem( rItem )
+{
+    sal_uInt16 nCount = Count_Impl(rItem._pRanges) + 1;
+    _pRanges = new sal_uInt16[nCount];
+    memcpy( _pRanges, rItem._pRanges, sizeof(sal_uInt16) * nCount );
+}
+
+//-------------------------------------------------------------------------
+
+SfxUShortRangesItem::~SfxUShortRangesItem()
+{
+    delete _pRanges;
+}
+
+//-------------------------------------------------------------------------
+
+int SfxUShortRangesItem::operator==( const SfxPoolItem &rItem ) const
+{
+    const SfxUShortRangesItem &rOther = (const SfxUShortRangesItem&) rItem;
+    if ( !_pRanges && !rOther._pRanges )
+        return sal_True;
+    if ( _pRanges || rOther._pRanges )
+        return sal_False;
+
+    sal_uInt16 n;
+    for ( n = 0; _pRanges[n] && rOther._pRanges[n]; ++n )
+        if ( *_pRanges != rOther._pRanges[n] )
+            return 0;
+
+    return !_pRanges[n] && !rOther._pRanges[n];
+}
+
+//-------------------------------------------------------------------------
+
+SfxItemPresentation SfxUShortRangesItem::GetPresentation( SfxItemPresentation /*ePres*/,
+                                    SfxMapUnit /*eCoreMetric*/,
+                                    SfxMapUnit /*ePresMetric*/,
+                                    OUString & /*rText*/,
+                                    const IntlWrapper * ) const
+{
+    // not implemented
+    return SFX_ITEM_PRESENTATION_NONE;
+}
+
+//-------------------------------------------------------------------------
+
+SfxPoolItem* SfxUShortRangesItem::Clone( SfxItemPool * ) const
+{
+    return new SfxUShortRangesItem( *this );
+}
+
+//-------------------------------------------------------------------------
+
+SfxPoolItem* SfxUShortRangesItem::Create( SvStream &rStream, sal_uInt16 ) const
+{
+    return new SfxUShortRangesItem( Which(), rStream );
+}
+
+//-------------------------------------------------------------------------
+
+SvStream& SfxUShortRangesItem::Store( SvStream &rStream, sal_uInt16 ) const
+{
+    sal_uInt16 nCount = Count_Impl( _pRanges );
+    rStream >> nCount;
+    for ( sal_uInt16 n = 0; _pRanges[n]; ++n )
+        rStream >> _pRanges[n];
+    return rStream;
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svl/source/items/rngitem_inc.cxx b/svl/source/items/rngitem_inc.cxx
deleted file mode 100644
index 572c89e..0000000
--- a/svl/source/items/rngitem_inc.cxx
+++ /dev/null
@@ -1,212 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-// This snippet of code is included by rngitem.cxx but not compiled directly.
-// Ugly hack, probably due to lack of templates in the 20th century.
-
-static inline NUMTYPE Count_Impl(const NUMTYPE * pRanges)
-{
-    NUMTYPE nCount = 0;
-    for (; *pRanges; pRanges += 2) nCount += 2;
-    return nCount;
-}
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_AUTOFACTORY(SfxXRangeItem, SfxPoolItem);
-TYPEINIT1_AUTOFACTORY(SfxXRangesItem, SfxPoolItem);
-
-NUMTYPE Count_Impl( const NUMTYPE *pRanges );
-
-// -----------------------------------------------------------------------
-
-SfxXRangeItem::SfxXRangeItem()
-{
-    nFrom = 0;
-    nTo = 0;
-}
-
-// -----------------------------------------------------------------------
-
-SfxXRangeItem::SfxXRangeItem( sal_uInt16 which, NUMTYPE from, NUMTYPE to ):
-    SfxPoolItem( which ),
-    nFrom( from ),
-    nTo( to )
-{
-}
-
-// -----------------------------------------------------------------------
-
-SfxXRangeItem::SfxXRangeItem( const SfxXRangeItem& rItem ) :
-    SfxPoolItem( rItem )
-{
-    nFrom = rItem.nFrom;
-    nTo = rItem.nTo;
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxXRangeItem::GetPresentation
-(
-    SfxItemPresentation     /*ePresentation*/,
-    SfxMapUnit              /*eCoreMetric*/,
-    SfxMapUnit              /*ePresentationMetric*/,
-    OUString&               rText,
-    const IntlWrapper *
-)   const
-{
-    rText = OUString::number(nFrom) + ":" + OUString::number(nTo);
-    return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxXRangeItem::operator==( const SfxPoolItem& rItem ) const
-{
-    DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-    SfxXRangeItem* pT = (SfxXRangeItem*)&rItem;
-    if( nFrom==pT->nFrom && nTo==pT->nTo )
-        return 1;
-    return 0;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangeItem::Clone(SfxItemPool *) const
-{
-    return new SfxXRangeItem( Which(), nFrom, nTo );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangeItem::Create(SvStream &rStream, sal_uInt16) const
-{
-    NUMTYPE nVon(0), nBis(0);
-    rStream >> nVon;
-    rStream >> nBis;
-    return new SfxXRangeItem( Which(), nVon, nBis );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxXRangeItem::Store(SvStream &rStream, sal_uInt16) const
-{
-    rStream << nFrom;
-    rStream << nTo;
-    return rStream;
-}
-
-//=========================================================================
-
-SfxXRangesItem::SfxXRangesItem()
-:   _pRanges(0)
-{
-}
-
-//-------------------------------------------------------------------------
-
-SfxXRangesItem::SfxXRangesItem( sal_uInt16 nWID, SvStream &rStream )
-:   SfxPoolItem( nWID )
-{
-    NUMTYPE nCount(0);
-    rStream >> nCount;
-    _pRanges = new NUMTYPE[nCount + 1];
-    for ( NUMTYPE n = 0; n < nCount; ++n )
-        rStream >> _pRanges[n];
-    _pRanges[nCount] = 0;
-}
-
-//-------------------------------------------------------------------------
-
-SfxXRangesItem::SfxXRangesItem( const SfxXRangesItem& rItem )
-:   SfxPoolItem( rItem )
-{
-    NUMTYPE nCount = Count_Impl(rItem._pRanges) + 1;
-    _pRanges = new NUMTYPE[nCount];
-    memcpy( _pRanges, rItem._pRanges, sizeof(NUMTYPE) * nCount );
-}
-
-//-------------------------------------------------------------------------
-
-SfxXRangesItem::~SfxXRangesItem()
-{
-    delete _pRanges;
-}
-
-//-------------------------------------------------------------------------
-
-int SfxXRangesItem::operator==( const SfxPoolItem &rItem ) const
-{
-    const SfxXRangesItem &rOther = (const SfxXRangesItem&) rItem;
-    if ( !_pRanges && !rOther._pRanges )
-        return sal_True;
-    if ( _pRanges || rOther._pRanges )
-        return sal_False;
-
-    NUMTYPE n;
-    for ( n = 0; _pRanges[n] && rOther._pRanges[n]; ++n )
-        if ( *_pRanges != rOther._pRanges[n] )
-            return 0;
-
-    return !_pRanges[n] && !rOther._pRanges[n];
-}
-
-//-------------------------------------------------------------------------
-
-SfxItemPresentation SfxXRangesItem::GetPresentation( SfxItemPresentation /*ePres*/,
-                                    SfxMapUnit /*eCoreMetric*/,
-                                    SfxMapUnit /*ePresMetric*/,
-                                    OUString & /*rText*/,
-                                    const IntlWrapper * ) const
-{
-    // not implemented
-    return SFX_ITEM_PRESENTATION_NONE;
-}
-
-//-------------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangesItem::Clone( SfxItemPool * ) const
-{
-    return new SfxXRangesItem( *this );
-}
-
-//-------------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangesItem::Create( SvStream &rStream, sal_uInt16 ) const
-{
-    return new SfxXRangesItem( Which(), rStream );
-}
-
-//-------------------------------------------------------------------------
-
-SvStream& SfxXRangesItem::Store( SvStream &rStream, sal_uInt16 ) const
-{
-    NUMTYPE nCount = Count_Impl( _pRanges );
-    rStream >> nCount;
-    for ( NUMTYPE n = 0; _pRanges[n]; ++n )
-        rStream >> _pRanges[n];
-    return rStream;
-}
-
-
-#undef NUMTYPE
-#undef SfxXRangeItem
-#undef SfxXRangesItem
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

-- 
To view, visit https://gerrit.libreoffice.org/3171
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I27869be9c70e79a366a547ce061e71a3743f87da
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Thomas Arnhold <thomas at arnhold.org>



More information about the LibreOffice mailing list