summaryrefslogtreecommitdiffstats
path: root/kio
diff options
context:
space:
mode:
Diffstat (limited to 'kio')
-rw-r--r--kio/kio/configure.in.in3
-rw-r--r--kio/kio/kdirlister.cpp12
-rw-r--r--kio/kio/kdirwatch.cpp18
3 files changed, 25 insertions, 8 deletions
diff --git a/kio/kio/configure.in.in b/kio/kio/configure.in.in
index 4d07ef964..8683dfec1 100644
--- a/kio/kio/configure.in.in
+++ b/kio/kio/configure.in.in
@@ -130,9 +130,6 @@ if test "x$kde_enable_inotify" = "xyes"; then
#ifndef IN_ALL_EVENTS
#error no inotify notification
#endif
-#ifndef __NR_inotify_init
-#error no __NR_inotify_init
-#endif
],kde_cv_have_inotify=yes,kde_cv_have_inotify=no)
diff --git a/kio/kio/kdirlister.cpp b/kio/kio/kdirlister.cpp
index 7be6da985..901f382b8 100644
--- a/kio/kio/kdirlister.cpp
+++ b/kio/kio/kdirlister.cpp
@@ -447,8 +447,11 @@ void KDirListerCache::forgetDirs( KDirLister *lister, const KURL& _url, bool not
url.adjustPath( -1 );
TQString urlStr = url.url();
TQPtrList<KDirLister> *holders = urlsCurrentlyHeld[urlStr];
- Q_ASSERT( holders );
- holders->removeRef( lister );
+ //Q_ASSERT( holders );
+ if ( holders )
+ {
+ holders->removeRef( lister );
+ }
// remove the dir from lister->d->lstDirs so that it doesn't contain things
// that itemsInUse doesn't. When emitting the canceled signals lstDirs must
@@ -457,9 +460,8 @@ void KDirListerCache::forgetDirs( KDirLister *lister, const KURL& _url, bool not
lister->d->lstDirs.remove( lister->d->lstDirs.find( url ) );
DirItem *item = itemsInUse[urlStr];
- Q_ASSERT( item );
- if ( holders->isEmpty() )
+ if ( holders && holders->isEmpty() )
{
urlsCurrentlyHeld.remove( urlStr ); // this deletes the (empty) holders list
if ( !urlsCurrentlyListed[urlStr] )
@@ -486,7 +488,7 @@ void KDirListerCache::forgetDirs( KDirLister *lister, const KURL& _url, bool not
if ( notify )
emit lister->clear( url );
- if ( item->complete )
+ if ( item && item->complete )
{
kdDebug(7004) << k_funcinfo << lister << " item moved into cache: " << url << endl;
itemsCached.insert( urlStr, item ); // TODO: may return false!!
diff --git a/kio/kio/kdirwatch.cpp b/kio/kio/kdirwatch.cpp
index 38cd8f866..bbea148fa 100644
--- a/kio/kio/kdirwatch.cpp
+++ b/kio/kio/kdirwatch.cpp
@@ -73,6 +73,24 @@
#define _S390_BITOPS_H
#include <sys/inotify.h>
+#ifndef __NR_inotify_init
+#if defined(__i386__)
+#define __NR_inotify_init 291
+#define __NR_inotify_add_watch 292
+#define __NR_inotify_rm_watch 293
+#endif
+#if defined(__PPC__)
+#define __NR_inotify_init 275
+#define __NR_inotify_add_watch 276
+#define __NR_inotify_rm_watch 277
+#endif
+#if defined(__x86_64__)
+#define __NR_inotify_init 253
+#define __NR_inotify_add_watch 254
+#define __NR_inotify_rm_watch 255
+#endif
+#endif
+
#ifndef IN_ONLYDIR
#define IN_ONLYDIR 0x01000000
#endif