[Podofo-svn] SF.net SVN: podofo:[1399] podofo/trunk/src/base
A PDF parsing, modification and creation library.
Brought to you by:
domseichter
|
From: <dom...@us...> - 2011-01-17 19:41:12
|
Revision: 1399
http://podofo.svn.sourceforge.net/podofo/?rev=1399&view=rev
Author: domseichter
Date: 2011-01-17 19:41:06 +0000 (Mon, 17 Jan 2011)
Log Message:
-----------
FIXED: A memory leak in PdfRefCountedInputDevice. See mantis issue 0000006
Modified Paths:
--------------
podofo/trunk/src/base/PdfInputStream.cpp
podofo/trunk/src/base/PdfRefCountedInputDevice.cpp
Modified: podofo/trunk/src/base/PdfInputStream.cpp
===================================================================
--- podofo/trunk/src/base/PdfInputStream.cpp 2011-01-17 19:30:11 UTC (rev 1398)
+++ podofo/trunk/src/base/PdfInputStream.cpp 2011-01-17 19:41:06 UTC (rev 1399)
@@ -44,9 +44,9 @@
m_hFile = _wfopen( pszFilename, L"rb" );
if( !m_hFile )
{
- PdfError e( ePdfError_FileNotFound, __FILE__, __LINE__ );
- e.SetErrorInformation( pszFilename );
- throw e;
+ PdfError e( ePdfError_FileNotFound, __FILE__, __LINE__ );
+ e.SetErrorInformation( pszFilename );
+ throw e;
}
}
#endif // _WIN32
Modified: podofo/trunk/src/base/PdfRefCountedInputDevice.cpp
===================================================================
--- podofo/trunk/src/base/PdfRefCountedInputDevice.cpp 2011-01-17 19:30:11 UTC (rev 1398)
+++ podofo/trunk/src/base/PdfRefCountedInputDevice.cpp 2011-01-17 19:41:06 UTC (rev 1399)
@@ -36,7 +36,13 @@
{
m_pDevice = new TRefCountedInputDevice();
m_pDevice->m_lRefCount = 1;
- m_pDevice->m_pDevice = new PdfInputDevice( pszFilename );
+
+ try {
+ m_pDevice->m_pDevice = new PdfInputDevice( pszFilename );
+ } catch( const PdfError & rError ) {
+ delete m_pDevice;
+ throw rError;
+ }
}
#ifdef _WIN32
@@ -47,7 +53,13 @@
{
m_pDevice = new TRefCountedInputDevice();
m_pDevice->m_lRefCount = 1;
- m_pDevice->m_pDevice = new PdfInputDevice( pszFilename );
+
+ try {
+ m_pDevice->m_pDevice = new PdfInputDevice( pszFilename );
+ } catch( const PdfError & rError ) {
+ delete m_pDevice;
+ throw rError;
+ }
}
#endif
#endif // _WIN32
@@ -57,7 +69,14 @@
{
m_pDevice = new TRefCountedInputDevice();
m_pDevice->m_lRefCount = 1;
- m_pDevice->m_pDevice = new PdfInputDevice( pBuffer, lLen );
+
+
+ try {
+ m_pDevice->m_pDevice = new PdfInputDevice( pBuffer, lLen );
+ } catch( const PdfError & rError ) {
+ delete m_pDevice;
+ throw rError;
+ }
}
PdfRefCountedInputDevice::PdfRefCountedInputDevice( PdfInputDevice* pDevice )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|