summaryrefslogtreecommitdiffstats
path: root/kio
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-05-04 07:47:47 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-05-04 07:47:47 +0000
commitc1b28a61b6e1a44ac0fe2b492ee42a60f486a5d9 (patch)
treec782f93e0df531c9ff23b4b1a1bc21c9fbfe6c34 /kio
parent333cd24e78f8de4aef0530ec5ad20d523ad6f7eb (diff)
downloadtdelibs-c1b28a61b6e1a44ac0fe2b492ee42a60f486a5d9.tar.gz
tdelibs-c1b28a61b6e1a44ac0fe2b492ee42a60f486a5d9.zip
Fixed random filter bar crashes (some of bug 180, not all of it yet unfortunately...)
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1122569 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kio')
-rw-r--r--kio/kio/kfileitem.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/kio/kio/kfileitem.cpp b/kio/kio/kfileitem.cpp
index a6900d7ad..d06b9b083 100644
--- a/kio/kio/kfileitem.cpp
+++ b/kio/kio/kfileitem.cpp
@@ -191,6 +191,8 @@ void KFileItem::readUDSEntry( bool _urlIsDirectory )
// extract the mode and the filename from the KIO::UDS Entry
bool UDS_URL_seen = false;
+ if (&m_entry == NULL) return;
+
KIO::UDSEntry::ConstIterator it = m_entry.begin();
for( ; it != m_entry.end(); ++it ) {
switch ((*it).m_uds) {
@@ -295,6 +297,8 @@ void KFileItem::setName( const QString& name )
QString KFileItem::linkDest() const
{
+ if (&m_entry == NULL) return QString::null;
+
// Extract it from the KIO::UDSEntry
KIO::UDSEntry::ConstIterator it = m_entry.begin();
for( ; it != m_entry.end(); ++it )
@@ -322,6 +326,8 @@ QString KFileItem::localPath() const
}
else
{
+ if (&m_entry == NULL) return QString::null;
+
// Extract the local path from the KIO::UDSEntry
KIO::UDSEntry::ConstIterator it = m_entry.begin();
const KIO::UDSEntry::ConstIterator end = m_entry.end();
@@ -339,6 +345,8 @@ KIO::filesize_t KFileItem::size(bool &exists) const
if ( m_size != (KIO::filesize_t) -1 )
return m_size;
+ if (&m_entry == NULL) return 0L;
+
// Extract it from the KIO::UDSEntry
KIO::UDSEntry::ConstIterator it = m_entry.begin();
for( ; it != m_entry.end(); ++it )
@@ -359,6 +367,7 @@ KIO::filesize_t KFileItem::size(bool &exists) const
bool KFileItem::hasExtendedACL() const
{
+ if (&m_entry == NULL) return false;
KIO::UDSEntry::ConstIterator it = m_entry.begin();
for( ; it != m_entry.end(); it++ )
if ( (*it).m_uds == KIO::UDS_EXTENDED_ACL ) {
@@ -370,6 +379,8 @@ bool KFileItem::hasExtendedACL() const
KACL KFileItem::ACL() const
{
if ( hasExtendedACL() ) {
+ if (&m_entry == NULL) return KACL( m_permissions );
+
// Extract it from the KIO::UDSEntry
KIO::UDSEntry::ConstIterator it = m_entry.begin();
for( ; it != m_entry.end(); ++it )
@@ -382,6 +393,8 @@ KACL KFileItem::ACL() const
KACL KFileItem::defaultACL() const
{
+ if (&m_entry == NULL) return KACL();
+
// Extract it from the KIO::UDSEntry
KIO::UDSEntry::ConstIterator it = m_entry.begin();
for( ; it != m_entry.end(); ++it )
@@ -421,6 +434,8 @@ time_t KFileItem::time( unsigned int which, bool &hasTime ) const
if ( m_time[mappedWhich] != (time_t) -1 )
return m_time[mappedWhich];
+ if (&m_entry == NULL) return static_cast<time_t>(0);
+
// Extract it from the KIO::UDSEntry
KIO::UDSEntry::ConstIterator it = m_entry.begin();
for( ; it != m_entry.end(); ++it )