properly free the resources of a document when calling closeDocument(), not in the destructor of the generator or in loadDocument()

svn path=/trunk/KDE/kdegraphics/okular/; revision=667128
remotes/origin/KDE/4.0
Pino Toscano 19 years ago
parent 95912893f0
commit de45467966
  1. 10
      core/textdocumentgenerator.cpp
  2. 4
      generators/chm/generator_chm.cpp
  3. 13
      generators/plucker/generator_plucker.cpp
  4. 4
      generators/poppler/generator_pdf.cpp

@ -213,11 +213,6 @@ TextDocumentGenerator::~TextDocumentGenerator()
bool TextDocumentGenerator::loadDocument( const QString & fileName, QVector<Okular::Page*> & pagesVector )
{
d->mTitlePositions.clear();
d->mLinkPositions.clear();
d->mLinkInfos.clear();
d->mAnnotationInfos.clear();
d->mDocument = d->mConverter->convert( fileName );
if ( !d->mDocument )
@ -270,6 +265,11 @@ bool TextDocumentGenerator::closeDocument()
delete d->mDocument;
d->mDocument = 0;
d->mTitlePositions.clear();
d->mLinkPositions.clear();
d->mLinkInfos.clear();
d->mAnnotationInfos.clear();
return true;
}

@ -47,8 +47,6 @@ CHMGenerator::~CHMGenerator()
bool CHMGenerator::loadDocument( const QString & fileName, QVector< Okular::Page * > & pagesVector )
{
m_textpageAddedList.clear();
m_fileName=fileName;
m_file=new CHMFile (fileName);
m_file->ParseAndFillTopicsTree (&m_docSyn);
@ -79,6 +77,8 @@ bool CHMGenerator::closeDocument()
m_docInfo=0;
delete m_file;
m_file=0;
m_textpageAddedList.clear();
m_docSyn.clear();
return true;
}

@ -55,19 +55,12 @@ PluckerGenerator::PluckerGenerator()
PluckerGenerator::~PluckerGenerator()
{
qDeleteAll( mPages );
mPages.clear();
}
bool PluckerGenerator::loadDocument( const QString & fileName, QVector<Okular::Page*> & pagesVector )
{
QUnpluck unpluck;
mLinkAdded.clear();
qDeleteAll( mPages );
mPages.clear();
if ( !unpluck.open( fileName ) )
return false;
@ -103,6 +96,12 @@ bool PluckerGenerator::loadDocument( const QString & fileName, QVector<Okular::P
bool PluckerGenerator::closeDocument()
{
mLinkAdded.clear();
mLinks.clear();
qDeleteAll( mPages );
mPages.clear();
return true;
}

@ -421,9 +421,9 @@ bool PDFGenerator::closeDocument()
docLock.unlock();
docInfoDirty = true;
docSynopsisDirty = true;
docSyn = Okular::DocumentSynopsis();
docSyn.clear();
docFontsDirty = true;
docFonts = Okular::DocumentFonts();
docFonts.clear();
docEmbeddedFilesDirty = true;
qDeleteAll(docEmbeddedFiles);
docEmbeddedFiles.clear();

Loading…
Cancel
Save