From 7be7990fc5770d2cbcd937772e8239167b5900c6 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 14 May 2013 19:38:10 -0500 Subject: Properly initialize worker thread This relates to Bug 1404 --- ark/tarlistingthread.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'ark/tarlistingthread.cpp') diff --git a/ark/tarlistingthread.cpp b/ark/tarlistingthread.cpp index 83154c4..9d903c3 100644 --- a/ark/tarlistingthread.cpp +++ b/ark/tarlistingthread.cpp @@ -79,29 +79,33 @@ static char *makeAccessString(mode_t mode) } TarListingThread::TarListingThread( TQObject *parent, const TQString& filename ) - : TQThread(), m_parent( parent ) + : TQThread(), m_parent( parent ), m_archive(NULL) { Q_ASSERT( m_parent ); - m_archive = new KTar( filename ); + m_archiveFileName = filename; } TarListingThread::~TarListingThread() { - delete m_archive; - m_archive = 0; + if (m_archive) { + delete m_archive; + m_archive = 0; + } } void TarListingThread::run() { + m_archive = new KTar( m_archiveFileName ); + if (!m_archive->open( IO_ReadOnly )) { ListingEvent *ev = new ListingEvent( TQStringList(), ListingEvent::Error ); tqApp->postEvent( m_parent, ev ); return; } - + processDir( m_archive->directory(), TQString() ); - + // Send an empty TQStringList in an Event to signal the listing end. ListingEvent *ev = new ListingEvent( TQStringList(), ListingEvent::ListingFinished ); tqApp->postEvent( m_parent, ev ); -- cgit v1.2.1