[Libreoffice-commits] .: binfilter/bf_svtools binfilter/inc

Caolán McNamara caolan at kemper.freedesktop.org
Wed Apr 11 04:06:59 PDT 2012


 binfilter/bf_svtools/source/misc/tl_strimp.cxx   |  108 -----------------------
 binfilter/bf_svtools/source/misc/tl_tustring.cxx |  104 ++++++++++++++++++++++
 binfilter/inc/bf_tools/string.hxx                |    2 
 3 files changed, 104 insertions(+), 110 deletions(-)

New commits:
commit 61eb8ffd6f6e47f4c539b1cfbefba12cf5e650a9
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Apr 11 10:09:05 2012 +0100

    callcatcher: reduce ByteString

diff --git a/binfilter/bf_svtools/source/misc/tl_strimp.cxx b/binfilter/bf_svtools/source/misc/tl_strimp.cxx
index 7b82b64..36111fd 100644
--- a/binfilter/bf_svtools/source/misc/tl_strimp.cxx
+++ b/binfilter/bf_svtools/source/misc/tl_strimp.cxx
@@ -451,67 +451,6 @@ STRING& STRING::Insert( STRCODE c, xub_StrLen nIndex )
 
 // -----------------------------------------------------------------------
 
-STRING& STRING::Replace( xub_StrLen nIndex, xub_StrLen nCount, const STRING& rStr )
-{
-    DBG_CHKTHIS( STRING, DBGCHECKSTRING );
-    DBG_CHKOBJ( &rStr, STRING, DBGCHECKSTRING );
-
-    // Wenn Index groessergleich Laenge ist, dann ist es ein Append
-    if ( nIndex >= mpData->mnLen )
-    {
-        Append( rStr );
-        return *this;
-    }
-
-    // Ist es eine Zuweisung
-    if ( (nIndex == 0) && (nCount >= mpData->mnLen) )
-    {
-        Assign( rStr );
-        return *this;
-    }
-
-    // Reicht ein Erase
-    sal_Int32 nStrLen = rStr.mpData->mnLen;
-    if ( !nStrLen )
-        return Erase( nIndex, nCount );
-
-    // nCount darf nicht ueber das Stringende hinnausgehen
-    if ( nCount > mpData->mnLen - nIndex )
-        nCount = static_cast< xub_StrLen >(mpData->mnLen-nIndex);
-
-    // Reicht ein Insert
-    if ( !nCount )
-        return Insert( rStr, nIndex );
-
-    // Reicht eine zeichenweise Zuweisung
-    if ( nCount == nStrLen )
-    {
-        ImplCopyData();
-        memcpy( mpData->maStr+nIndex, rStr.mpData->maStr, nCount*sizeof( STRCODE ) );
-        return *this;
-    }
-
-    // Ueberlauf abfangen
-    nStrLen = ImplGetCopyLen( mpData->mnLen-nCount, nStrLen );
-
-    // Neue Daten anlegen
-    STRINGDATA* pNewData = ImplAllocData( mpData->mnLen-nCount+nStrLen );
-
-    // String kopieren
-    memcpy( pNewData->maStr, mpData->maStr, nIndex*sizeof( STRCODE ) );
-    memcpy( pNewData->maStr+nIndex, rStr.mpData->maStr, nStrLen*sizeof( STRCODE ) );
-    memcpy( pNewData->maStr+nIndex+nStrLen, mpData->maStr+nIndex+nCount,
-            (mpData->mnLen-nIndex-nCount+1)*sizeof( STRCODE ) );
-
-    // Alte Daten loeschen und Neue zuweisen
-    STRING_RELEASE((STRING_TYPE *)mpData);
-    mpData = pNewData;
-
-    return *this;
-}
-
-// -----------------------------------------------------------------------
-
 STRING& STRING::Erase( xub_StrLen nIndex, xub_StrLen nCount )
 {
     DBG_CHKTHIS( STRING, DBGCHECKSTRING );
@@ -614,53 +553,6 @@ xub_StrLen STRING::Search( STRCODE c, xub_StrLen nIndex ) const
 
 // -----------------------------------------------------------------------
 
-xub_StrLen STRING::Search( const STRING& rStr, xub_StrLen nIndex ) const
-{
-    DBG_CHKTHIS( STRING, DBGCHECKSTRING );
-    DBG_CHKOBJ( &rStr, STRING, DBGCHECKSTRING );
-
-    sal_Int32 nLen = mpData->mnLen;
-    sal_Int32 nStrLen = rStr.mpData->mnLen;
-
-    // Falls die Laenge des uebergebenen Strings 0 ist oder der Index
-    // hinter dem String liegt, dann wurde der String nicht gefunden
-    if ( !nStrLen || (nIndex >= nLen) )
-        return STRING_NOTFOUND;
-
-    const STRCODE* pStr1 = mpData->maStr;
-    pStr1 += nIndex;
-
-    if ( nStrLen == 1 )
-    {
-        STRCODE cSearch = rStr.mpData->maStr[0];
-        while ( nIndex < nLen )
-        {
-            if ( *pStr1 == cSearch )
-                return nIndex;
-            ++pStr1,
-            ++nIndex;
-        }
-    }
-    else
-    {
-        const STRCODE* pStr2 = rStr.mpData->maStr;
-
-        // Nur innerhalb des Strings suchen
-        while ( nLen - nIndex >= nStrLen )
-        {
-            // Stimmt der String ueberein
-            if ( ImplStringCompareWithoutZero( pStr1, pStr2, nStrLen ) == 0 )
-                return nIndex;
-            ++pStr1,
-            ++nIndex;
-        }
-    }
-
-    return STRING_NOTFOUND;
-}
-
-// -----------------------------------------------------------------------
-
 xub_StrLen STRING::Search( const STRCODE* pCharStr, xub_StrLen nIndex ) const
 {
     DBG_CHKTHIS( STRING, DBGCHECKSTRING );
diff --git a/binfilter/bf_svtools/source/misc/tl_tustring.cxx b/binfilter/bf_svtools/source/misc/tl_tustring.cxx
index eb29ea1..0e60670 100644
--- a/binfilter/bf_svtools/source/misc/tl_tustring.cxx
+++ b/binfilter/bf_svtools/source/misc/tl_tustring.cxx
@@ -1139,6 +1139,110 @@ xub_StrLen STRING::SearchAndReplace( const STRING& rStr, const STRING& rRepStr,
     return nSPos;
 }
 
+STRING& STRING::Replace( xub_StrLen nIndex, xub_StrLen nCount, const STRING& rStr )
+{
+    DBG_CHKTHIS( STRING, DBGCHECKSTRING );
+    DBG_CHKOBJ( &rStr, STRING, DBGCHECKSTRING );
+
+    // Wenn Index groessergleich Laenge ist, dann ist es ein Append
+    if ( nIndex >= mpData->mnLen )
+    {
+        Append( rStr );
+        return *this;
+    }
+
+    // Ist es eine Zuweisung
+    if ( (nIndex == 0) && (nCount >= mpData->mnLen) )
+    {
+        Assign( rStr );
+        return *this;
+    }
+
+    // Reicht ein Erase
+    sal_Int32 nStrLen = rStr.mpData->mnLen;
+    if ( !nStrLen )
+        return Erase( nIndex, nCount );
+
+    // nCount darf nicht ueber das Stringende hinnausgehen
+    if ( nCount > mpData->mnLen - nIndex )
+        nCount = static_cast< xub_StrLen >(mpData->mnLen-nIndex);
+
+    // Reicht ein Insert
+    if ( !nCount )
+        return Insert( rStr, nIndex );
+
+    // Reicht eine zeichenweise Zuweisung
+    if ( nCount == nStrLen )
+    {
+        ImplCopyData();
+        memcpy( mpData->maStr+nIndex, rStr.mpData->maStr, nCount*sizeof( STRCODE ) );
+        return *this;
+    }
+
+    // Ueberlauf abfangen
+    nStrLen = ImplGetCopyLen( mpData->mnLen-nCount, nStrLen );
+
+    // Neue Daten anlegen
+    STRINGDATA* pNewData = ImplAllocData( mpData->mnLen-nCount+nStrLen );
+
+    // String kopieren
+    memcpy( pNewData->maStr, mpData->maStr, nIndex*sizeof( STRCODE ) );
+    memcpy( pNewData->maStr+nIndex, rStr.mpData->maStr, nStrLen*sizeof( STRCODE ) );
+    memcpy( pNewData->maStr+nIndex+nStrLen, mpData->maStr+nIndex+nCount,
+            (mpData->mnLen-nIndex-nCount+1)*sizeof( STRCODE ) );
+
+    // Alte Daten loeschen und Neue zuweisen
+    STRING_RELEASE((STRING_TYPE *)mpData);
+    mpData = pNewData;
+
+    return *this;
+}
+
+xub_StrLen STRING::Search( const STRING& rStr, xub_StrLen nIndex ) const
+{
+    DBG_CHKTHIS( STRING, DBGCHECKSTRING );
+    DBG_CHKOBJ( &rStr, STRING, DBGCHECKSTRING );
+
+    sal_Int32 nLen = mpData->mnLen;
+    sal_Int32 nStrLen = rStr.mpData->mnLen;
+
+    // Falls die Laenge des uebergebenen Strings 0 ist oder der Index
+    // hinter dem String liegt, dann wurde der String nicht gefunden
+    if ( !nStrLen || (nIndex >= nLen) )
+        return STRING_NOTFOUND;
+
+    const STRCODE* pStr1 = mpData->maStr;
+    pStr1 += nIndex;
+
+    if ( nStrLen == 1 )
+    {
+        STRCODE cSearch = rStr.mpData->maStr[0];
+        while ( nIndex < nLen )
+        {
+            if ( *pStr1 == cSearch )
+                return nIndex;
+            ++pStr1,
+            ++nIndex;
+        }
+    }
+    else
+    {
+        const STRCODE* pStr2 = rStr.mpData->maStr;
+
+        // Nur innerhalb des Strings suchen
+        while ( nLen - nIndex >= nStrLen )
+        {
+            // Stimmt der String ueberein
+            if ( ImplStringCompareWithoutZero( pStr1, pStr2, nStrLen ) == 0 )
+                return nIndex;
+            ++pStr1,
+            ++nIndex;
+        }
+    }
+
+    return STRING_NOTFOUND;
+}
+
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/binfilter/inc/bf_tools/string.hxx b/binfilter/inc/bf_tools/string.hxx
index d81a51c..9237c9e 100644
--- a/binfilter/inc/bf_tools/string.hxx
+++ b/binfilter/inc/bf_tools/string.hxx
@@ -184,7 +184,6 @@ public:
     ByteString&         Insert( const ByteString& rStr, xub_StrLen nIndex = STRING_LEN );
     ByteString&         Insert( const sal_Char* pCharStr, xub_StrLen nIndex = STRING_LEN );
     ByteString&         Insert( sal_Char c, xub_StrLen nIndex = STRING_LEN );
-    ByteString&         Replace( xub_StrLen nIndex, xub_StrLen nCount, const ByteString& rStr );
     ByteString&         Erase( xub_StrLen nIndex = 0, xub_StrLen nCount = STRING_LEN );
     ByteString          Copy( xub_StrLen nIndex = 0, xub_StrLen nCount = STRING_LEN ) const;
 
@@ -202,7 +201,6 @@ public:
     sal_Bool                Equals( const sal_Char* pCharStr ) const;
 
     xub_StrLen          Search( sal_Char c, xub_StrLen nIndex = 0 ) const;
-    xub_StrLen          Search( const ByteString& rStr, xub_StrLen nIndex = 0 ) const;
     xub_StrLen          Search( const sal_Char* pCharStr, xub_StrLen nIndex = 0 ) const;
 
     xub_StrLen          GetTokenCount( sal_Char cTok = ';' ) const;


More information about the Libreoffice-commits mailing list