summaryrefslogtreecommitdiffstats
path: root/qtools/qdir_unix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qtools/qdir_unix.cpp')
-rw-r--r--qtools/qdir_unix.cpp34
1 files changed, 18 insertions, 16 deletions
diff --git a/qtools/qdir_unix.cpp b/qtools/qdir_unix.cpp
index 3b12de9..46a3b69 100644
--- a/qtools/qdir_unix.cpp
+++ b/qtools/qdir_unix.cpp
@@ -243,23 +243,25 @@ bool QDir::readDirEntries( const QString &nameFilter,
}
// Sort...
- QDirSortItem* si= new QDirSortItem[fiList->count()];
- QFileInfo* itm;
- i=0;
- for (itm = fiList->first(); itm; itm = fiList->next())
- si[i++].item = itm;
- qt_cmp_si_sortSpec = sortSpec;
- qsort( si, i, sizeof(si[0]), qt_cmp_si );
- // put them back in the list
- fiList->setAutoDelete( FALSE );
- fiList->clear();
- int j;
- for ( j=0; j<i; j++ ) {
- fiList->append( si[j].item );
- fList->append( si[j].item->fileName() );
+ if(fiList->count()) {
+ QDirSortItem* si= new QDirSortItem[fiList->count()];
+ QFileInfo* itm;
+ i=0;
+ for (itm = fiList->first(); itm; itm = fiList->next())
+ si[i++].item = itm;
+ qt_cmp_si_sortSpec = sortSpec;
+ qsort( si, i, sizeof(si[0]), qt_cmp_si );
+ // put them back in the list
+ fiList->setAutoDelete( FALSE );
+ fiList->clear();
+ int j;
+ for ( j=0; j<i; j++ ) {
+ fiList->append( si[j].item );
+ fList->append( si[j].item->fileName() );
+ }
+ delete [] si;
+ fiList->setAutoDelete( TRUE );
}
- delete [] si;
- fiList->setAutoDelete( TRUE );
if ( filterSpec == (FilterSpec)filtS && sortSpec == (SortSpec)sortS &&
nameFilter == nameFilt )