Author: borisk
Date: Tue Jun 24 04:54:14 2008
New Revision: 671143
URL: http://svn.apache.org/viewvc?rev=671143&view=rev
Log:
Don't call deallocate with NULL pointer.
Modified:
xerces/c/branches/xerces-2/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
Modified:
xerces/c/branches/xerces-2/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/branches/xerces-2/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp?rev=671143&r1=671142&r2=671143&view=diff
==============================================================================
---
xerces/c/branches/xerces-2/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
(original)
+++
xerces/c/branches/xerces-2/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
Tue Jun 24 04:54:14 2008
@@ -5,9 +5,9 @@
* 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
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -177,7 +177,7 @@
XMLTranscoder*
IconvTransService::makeNewXMLTranscoder(const XMLCh* const
, XMLTransService::Codes&
resValue
- , const unsigned int
+ , const unsigned int
, MemoryManager* const)
{
//
@@ -227,7 +227,7 @@
for( unsigned int i = 0; i < size; ++len )
{
unsigned int retVal=::mblen( &srcText[i], MB_CUR_MAX );
- if( -1 == retVal )
+ if( -1 == retVal )
return 0;
i += retVal;
}
@@ -262,7 +262,9 @@
wideCharBuf[wLent] = 0x00;
const unsigned int retVal = ::wcstombs(NULL, wideCharBuf, 0);
- manager->deallocate(allocatedArray);//delete [] allocatedArray;
+
+ if (allocatedArray)
+ manager->deallocate(allocatedArray);//delete [] allocatedArray;
if (retVal == ~0)
return 0;
@@ -351,7 +353,8 @@
const size_t neededLen = ::wcstombs(NULL, wideCharBuf, 0);
if (neededLen == -1)
{
- manager->deallocate(allocatedArray);//delete [] allocatedArray;
+ if (allocatedArray)
+ manager->deallocate(allocatedArray);//delete [] allocatedArray;
retVal = (char*) manager->allocate(sizeof(char)); //new char[1];
retVal[0] = 0;
return retVal;
@@ -360,7 +363,8 @@
retVal = (char*) manager->allocate((neededLen + 1) *
sizeof(char));//new char[neededLen + 1];
::wcstombs(retVal, wideCharBuf, neededLen);
retVal[neededLen] = 0;
- manager->deallocate(allocatedArray);//delete [] allocatedArray;
+ if (allocatedArray)
+ manager->deallocate(allocatedArray);//delete [] allocatedArray;
}
else
{
@@ -418,13 +422,15 @@
size_t mblen = ::wcstombs(toFill, wideCharBuf, maxBytes);
if (mblen == -1)
{
- manager->deallocate(allocatedArray);//delete [] allocatedArray;
+ if (allocatedArray)
+ manager->deallocate(allocatedArray);//delete [] allocatedArray;
return false;
}
// Cap it off just in case
toFill[mblen] = 0;
- manager->deallocate(allocatedArray);//delete [] allocatedArray;
+ if (allocatedArray)
+ manager->deallocate(allocatedArray);//delete [] allocatedArray;
return true;
}
@@ -508,7 +514,8 @@
retVal[i] = (XMLCh) wideCharBuf[i];
}
retVal[len] = 0x00;
- manager->deallocate(allocatedArray);//delete [] allocatedArray;
+ if (allocatedArray)
+ manager->deallocate(allocatedArray);//delete [] allocatedArray;
}
else
{
@@ -556,7 +563,8 @@
if (::mbstowcs(wideCharBuf, toTranscode, maxChars) == -1)
{
- manager->deallocate(allocatedArray);//delete [] allocatedArray;
+ if (allocatedArray)
+ manager->deallocate(allocatedArray);//delete [] allocatedArray;
return false;
}
@@ -565,7 +573,8 @@
toFill[i] = (XMLCh) wideCharBuf[i];
}
toFill[len] = 0x00;
- manager->deallocate(allocatedArray);//delete [] allocatedArray;
+ if (allocatedArray)
+ manager->deallocate(allocatedArray);//delete [] allocatedArray;
return true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]