summaryrefslogtreecommitdiff
path: root/tools/source
diff options
context:
space:
mode:
authorMatthias Huetsch <mhu@openoffice.org>2002-05-22 13:44:52 +0000
committerMatthias Huetsch <mhu@openoffice.org>2002-05-22 13:44:52 +0000
commitf71ce8710426627f145c95a3f4e83a31a435f8f4 (patch)
tree168256786d5d23f3fd166e1b0807dc48e82744fb /tools/source
parent1bc0f1420b4e4474537bc42bffc45d001e82e443 (diff)
#90353# Fixed operator new[](), operator delete() mismatch.
Diffstat (limited to 'tools/source')
-rw-r--r--tools/source/rc/resary.cxx40
-rw-r--r--tools/source/rc/resmgr.cxx21
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);
}