diff options
author | Caolán McNamara <caolanm@redhat.com> | 2011-09-18 13:34:14 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2011-09-19 09:59:20 +0100 |
commit | 5d73752cc7d66edae26392f84e72e32a8cf598ca (patch) | |
tree | 310056bac7689b9343e8f2b220cc2b03550623c5 /tools/source/string | |
parent | 68c3fbf49dcdccad84a81fd191cd964e923ae072 (diff) |
rework this in terms of read_uInt8s_AsOString
Diffstat (limited to 'tools/source/string')
-rw-r--r-- | tools/source/string/strimp.cxx | 59 | ||||
-rw-r--r-- | tools/source/string/tustring.cxx | 59 |
2 files changed, 59 insertions, 59 deletions
diff --git a/tools/source/string/strimp.cxx b/tools/source/string/strimp.cxx index d8428750526b..b83b39c312f5 100644 --- a/tools/source/string/strimp.cxx +++ b/tools/source/string/strimp.cxx @@ -1452,63 +1452,4 @@ STRING STRING::GetToken( xub_StrLen nToken, STRCODE cTok, xub_StrLen& rIndex ) c } } -// ----------------------------------------------------------------------- - -STRCODE* STRING::GetBufferAccess() -{ - DBG_CHKTHIS( STRING, DBGCHECKSTRING ); - - // Daten kopieren, wenn noetig - if ( mpData->mnLen ) - ImplCopyData(); - - // Pointer auf den String zurueckgeben - return mpData->maStr; -} - -// ----------------------------------------------------------------------- - -void STRING::ReleaseBufferAccess( xub_StrLen nLen ) -{ - // Hier ohne Funktionstest, da String nicht konsistent - DBG_CHKTHIS( STRING, NULL ); - DBG_ASSERT( mpData->mnRefCount == 1, "String::ReleaseCharStr() called for String with RefCount" ); - - if ( nLen > mpData->mnLen ) - nLen = ImplStringLen( mpData->maStr ); - OSL_ASSERT(nLen <= mpData->mnLen); - if ( !nLen ) - { - STRING_NEW((STRING_TYPE **)&mpData); - } - // Bei mehr als 8 Zeichen unterschied, kuerzen wir den Buffer - else if ( mpData->mnLen - nLen > 8 ) - { - STRINGDATA* pNewData = ImplAllocData( nLen ); - memcpy( pNewData->maStr, mpData->maStr, nLen*sizeof( STRCODE ) ); - STRING_RELEASE((STRING_TYPE *)mpData); - mpData = pNewData; - } - else - mpData->mnLen = nLen; -} - -// ----------------------------------------------------------------------- - -STRCODE* STRING::AllocBuffer( xub_StrLen nLen ) -{ - DBG_CHKTHIS( STRING, DBGCHECKSTRING ); - - STRING_RELEASE((STRING_TYPE *)mpData); - if ( nLen ) - mpData = ImplAllocData( nLen ); - else - { - mpData = NULL; - STRING_NEW((STRING_TYPE **)&mpData); - } - - return mpData->maStr; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/tools/source/string/tustring.cxx b/tools/source/string/tustring.cxx index 0f9874140769..30c973ecb9c9 100644 --- a/tools/source/string/tustring.cxx +++ b/tools/source/string/tustring.cxx @@ -505,4 +505,63 @@ STRING& STRING::Expand( xub_StrLen nCount, STRCODE cExpandChar ) return *this; } +// ----------------------------------------------------------------------- + +STRCODE* STRING::GetBufferAccess() +{ + DBG_CHKTHIS( STRING, DBGCHECKSTRING ); + + // Daten kopieren, wenn noetig + if ( mpData->mnLen ) + ImplCopyData(); + + // Pointer auf den String zurueckgeben + return mpData->maStr; +} + +// ----------------------------------------------------------------------- + +void STRING::ReleaseBufferAccess( xub_StrLen nLen ) +{ + // Hier ohne Funktionstest, da String nicht konsistent + DBG_CHKTHIS( STRING, NULL ); + DBG_ASSERT( mpData->mnRefCount == 1, "String::ReleaseCharStr() called for String with RefCount" ); + + if ( nLen > mpData->mnLen ) + nLen = ImplStringLen( mpData->maStr ); + OSL_ASSERT(nLen <= mpData->mnLen); + if ( !nLen ) + { + STRING_NEW((STRING_TYPE **)&mpData); + } + // Bei mehr als 8 Zeichen unterschied, kuerzen wir den Buffer + else if ( mpData->mnLen - nLen > 8 ) + { + STRINGDATA* pNewData = ImplAllocData( nLen ); + memcpy( pNewData->maStr, mpData->maStr, nLen*sizeof( STRCODE ) ); + STRING_RELEASE((STRING_TYPE *)mpData); + mpData = pNewData; + } + else + mpData->mnLen = nLen; +} + +// ----------------------------------------------------------------------- + +STRCODE* STRING::AllocBuffer( xub_StrLen nLen ) +{ + DBG_CHKTHIS( STRING, DBGCHECKSTRING ); + + STRING_RELEASE((STRING_TYPE *)mpData); + if ( nLen ) + mpData = ImplAllocData( nLen ); + else + { + mpData = NULL; + STRING_NEW((STRING_TYPE **)&mpData); + } + + return mpData->maStr; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |