summaryrefslogtreecommitdiff
path: root/tools/source/string/strimp.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tools/source/string/strimp.cxx')
-rw-r--r--tools/source/string/strimp.cxx136
1 files changed, 0 insertions, 136 deletions
diff --git a/tools/source/string/strimp.cxx b/tools/source/string/strimp.cxx
deleted file mode 100644
index de479e450669..000000000000
--- a/tools/source/string/strimp.cxx
+++ /dev/null
@@ -1,136 +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 .
- */
-
-static sal_Int32 ImplStringCompareWithoutZero( const STRCODE* pStr1, const STRCODE* pStr2,
- sal_Int32 nCount )
-{
- sal_Int32 nRet = 0;
- while ( nCount &&
- ((nRet = ((sal_Int32)((STRCODEU)*pStr1))-((sal_Int32)((STRCODEU)*pStr2))) == 0) )
- {
- ++pStr1,
- ++pStr2,
- --nCount;
- }
-
- return nRet;
-}
-
-static STRINGDATA* ImplAllocData( sal_Int32 nLen )
-{
- STRINGDATA* pData = (STRINGDATA*)rtl_allocateMemory( sizeof(STRINGDATA)+(nLen*sizeof( STRCODE )) );
- pData->mnRefCount = 1;
- pData->mnLen = nLen;
- pData->maStr[nLen] = 0;
- return pData;
-}
-
-static STRINGDATA* _ImplCopyData( STRINGDATA* pData )
-{
- unsigned int nSize = sizeof(STRINGDATA)+(pData->mnLen*sizeof( STRCODE ));
- STRINGDATA* pNewData = (STRINGDATA*)rtl_allocateMemory( nSize );
- memcpy( pNewData, pData, nSize );
- pNewData->mnRefCount = 1;
- STRING_RELEASE((STRING_TYPE *)pData);
- return pNewData;
-}
-
-inline void STRING::ImplCopyData()
-{
- DBG_ASSERT( (mpData->mnRefCount != 0), "String::ImplCopyData() - RefCount == 0" );
-
- // Dereference data if this string is referenced
- if ( mpData->mnRefCount != 1 )
- mpData = _ImplCopyData( mpData );
-}
-
-inline STRCODE* STRING::ImplCopyStringData( STRCODE* pStr )
-{
- if ( mpData->mnRefCount != 1 ) {
- DBG_ASSERT( (pStr >= mpData->maStr) &&
- ((pStr-mpData->maStr) < mpData->mnLen),
- "ImplCopyStringData - pStr from other String-Instanz" );
- unsigned int nIndex = (unsigned int)(pStr-mpData->maStr);
- mpData = _ImplCopyData( mpData );
- pStr = mpData->maStr + nIndex;
- }
- return pStr;
-}
-
-inline sal_Int32 ImplGetCopyLen( sal_Int32 nStrLen, sal_Int32 nCopyLen )
-{
- OSL_ASSERT(nStrLen <= STRING_MAXLEN && nCopyLen <= STRING_MAXLEN);
- if ( nCopyLen > STRING_MAXLEN-nStrLen )
- nCopyLen = STRING_MAXLEN-nStrLen;
- return nCopyLen;
-}
-
-STRING::STRING()
- : mpData(NULL)
-{
- STRING_NEW((STRING_TYPE **)&mpData);
-}
-
-STRING::STRING( const STRING& rStr )
-{
- // Set pointer to argument string and increase reference counter
- STRING_ACQUIRE((STRING_TYPE *)rStr.mpData);
- mpData = rStr.mpData;
-}
-
-STRING::~STRING()
-{
- // free string data
- STRING_RELEASE((STRING_TYPE *)mpData);
-}
-
-STRING& STRING::Append( const STRING& rStr )
-{
- // Assignment is sufficient if string is empty
- sal_Int32 nLen = mpData->mnLen;
- if ( !nLen )
- {
- STRING_ACQUIRE((STRING_TYPE *)rStr.mpData);
- STRING_RELEASE((STRING_TYPE *)mpData);
- mpData = rStr.mpData;
- }
- else
- {
- // Detect overflow
- sal_Int32 nCopyLen = ImplGetCopyLen( nLen, rStr.mpData->mnLen );
-
- if ( nCopyLen )
- {
- // allocate string of new size
- STRINGDATA* pNewData = ImplAllocData( nLen+nCopyLen );
-
- // copy string
- memcpy( pNewData->maStr, mpData->maStr, nLen*sizeof( STRCODE ) );
- memcpy( pNewData->maStr+nLen, rStr.mpData->maStr, nCopyLen*sizeof( STRCODE ) );
-
- // free old string
- STRING_RELEASE((STRING_TYPE *)mpData);
- mpData = pNewData;
- }
- }
-
- return *this;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */