diff options
author | Matthias Huetsch <mhu@openoffice.org> | 2002-05-22 13:44:52 +0000 |
---|---|---|
committer | Matthias Huetsch <mhu@openoffice.org> | 2002-05-22 13:44:52 +0000 |
commit | f71ce8710426627f145c95a3f4e83a31a435f8f4 (patch) | |
tree | 168256786d5d23f3fd166e1b0807dc48e82744fb /tools/source | |
parent | 1bc0f1420b4e4474537bc42bffc45d001e82e443 (diff) |
#90353# Fixed operator new[](), operator delete() mismatch.
Diffstat (limited to 'tools/source')
-rw-r--r-- | tools/source/rc/resary.cxx | 40 | ||||
-rw-r--r-- | tools/source/rc/resmgr.cxx | 21 |
2 files changed, 22 insertions, 39 deletions
diff --git a/tools/source/rc/resary.cxx b/tools/source/rc/resary.cxx index 402861bafd50..bc0b605c2418 100644 --- a/tools/source/rc/resary.cxx +++ b/tools/source/rc/resary.cxx @@ -2,9 +2,9 @@ * * $RCSfile: resary.cxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: pl $ $Date: 2001-06-28 13:17:58 $ + * last change: $Author: mhu $ $Date: 2002-05-22 14:44:52 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,23 +70,15 @@ // ======================================================================= -typedef ImplResStringItem* PIMPLRESSTRINGITEM; - -// ======================================================================= - -ResStringArray::ResStringArray( const ResId& rResId ) : - Resource( rResId.SetRT( RSC_STRINGARRAY ) ) +ResStringArray::ResStringArray( const ResId& rResId ) + : Resource ( rResId.SetRT( RSC_STRINGARRAY ) ), + mpAry ( 0 ), + mnSize ( ReadShortRes() ) { - USHORT nNumber = ReadShortRes(); - - mnSize = nNumber; - if ( !nNumber ) - mpAry = NULL; - else + if ( mnSize ) { - mpAry = new PIMPLRESSTRINGITEM[nNumber]; - - for ( USHORT i = 0; i < nNumber; i++ ) + mpAry = new ImplResStringItem*[mnSize]; + for ( USHORT i = 0; i < mnSize; i++ ) { // String laden mpAry[i] = new ImplResStringItem( ReadStringRes() ); @@ -101,25 +93,19 @@ ResStringArray::ResStringArray( const ResId& rResId ) : ResStringArray::~ResStringArray() { - USHORT nCount = Count(); - if ( nCount ) - { - for ( USHORT i = 0; i < nCount; i++ ) - delete mpAry[i]; - delete mpAry; - } + for ( USHORT i = 0; i < mnSize; i++ ) + delete mpAry[i]; + delete[] mpAry; } // ----------------------------------------------------------------------- USHORT ResStringArray::FindIndex( long nValue ) const { - USHORT nCount = Count(); - for ( USHORT i = 0; i < nCount; i++ ) + for ( USHORT i = 0; i < mnSize; i++ ) { if ( mpAry[i]->mnValue == nValue ) return i; } - return RESARRAY_INDEX_NOTFOUND; } diff --git a/tools/source/rc/resmgr.cxx b/tools/source/rc/resmgr.cxx index 7dcdd302f5c0..4a34e25586da 100644 --- a/tools/source/rc/resmgr.cxx +++ b/tools/source/rc/resmgr.cxx @@ -2,9 +2,9 @@ * * $RCSfile: resmgr.cxx,v $ * - * $Revision: 1.15 $ + * $Revision: 1.16 $ * - * last change: $Author: nf $ $Date: 2002-04-16 12:05:21 $ + * last change: $Author: mhu $ $Date: 2002-05-22 14:44:52 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -439,8 +439,6 @@ InternalResMgr* InternalResMgr::GetInternalResMgr( const UniString& rFileName, const UniString* pAppName, const UniString* pResPath ) { - ImplSVResourceData* pSVInData = GetResData(); - // Nur InternalResMgr's mit FileNamen stehen in der Liste if ( rFileName.Len() ) { @@ -547,7 +545,7 @@ void* InternalResMgr::LoadGlobalRes( RESOURCE_TYPE nRT, USHORT nId, RSHEADER_TYPE aHeader; pStm->Seek( pFind->nOffset ); pStm->Read( &aHeader, sizeof( RSHEADER_TYPE ) ); - void * pRes = new BYTE[ aHeader.GetGlobOff() ]; + void * pRes = ::operator new( aHeader.GetGlobOff() ); memcpy( pRes, &aHeader, sizeof( RSHEADER_TYPE ) ); pStm->Read( (BYTE*)pRes + sizeof( RSHEADER_TYPE ), aHeader.GetGlobOff() - sizeof( RSHEADER_TYPE ) ); @@ -563,7 +561,7 @@ void InternalResMgr::FreeGlobalRes( void * pResHandle, void * pResource ) { if ( !pResHandle ) // REsource wurde extra allokiert - delete pResource; + ::operator delete (pResource); } // ======================================================================= @@ -573,7 +571,7 @@ void InternalResMgr::FreeGlobalRes( void * pResHandle, void * pResource ) UniString GetTypeRes_Impl( const ResId& rTypeId ) { // Funktion verlassen, falls Resourcefehler in dieser Funktion - static bInUse = FALSE; + static int bInUse = FALSE; UniString aTypStr( rTypeId.GetId() ); if ( !bInUse ) @@ -926,7 +924,6 @@ BOOL ResMgr::GetResource( const ResId& rId, const Resource* pResObj ) this, nRT, nId, aStack, nTopRes -1 ); #endif RscException_Impl(); - ImplSVResourceData * pRD = GetResData(); nTopRes--; return FALSE; } @@ -1006,7 +1003,7 @@ RSHEADER_TYPE* ResMgr::CreateBlock( const ResId& rId ) { // Der Zeiger steht am Anfang, deswegen zeigt der Klassen-Pointer // auf den Header und die restliche Groesse ist die Gesammte. - pHeader = (RSHEADER_TYPE*)new BYTE[ GetRemainSize() ]; + pHeader = (RSHEADER_TYPE*)::operator new( GetRemainSize() ); memcpy( pHeader, GetClass(), GetRemainSize() ); Increment( pHeader->GetLocalOff() ); //ans Ende setzen if ( pHeader->GetLocalOff() != pHeader->GetGlobOff() ) @@ -1348,7 +1345,7 @@ ResMgr* ResMgr::SearchCreateResMgr( LANGUAGE_KOREAN_JOHAB }; - for( int i = 0; i < sizeof( aLanguages )/sizeof( aLanguages[0] ); i++ ) + for( size_t i = 0; i < sizeof( aLanguages )/sizeof( aLanguages[0] ); i++ ) { nType = aLanguages[i]; aName = aBaseName; @@ -1467,7 +1464,7 @@ UniString SimpleResMgr::ReadString( USHORT nId ) // no such resource return sReturn; - USHORT nLen = pResHeader->GetLocalOff() - sizeof(RSHEADER_TYPE); + // USHORT nLen = pResHeader->GetLocalOff() - sizeof(RSHEADER_TYPE); ResMgr::GetString( sReturn, (const BYTE*)(pResHeader+1) ); // not neccessary with te current implementation which holds the string table permanently, but to be sure .... @@ -1509,5 +1506,5 @@ USHORT SimpleResMgr::ReadBlob( USHORT nId, void** pBuffer ) void SimpleResMgr::FreeBlob( void* pBuffer ) { void* pCompleteBuffer = (void*)(((BYTE*)pBuffer) - sizeof(RSHEADER_TYPE)); - delete pCompleteBuffer; + ::operator delete (pCompleteBuffer); } |