[SVN-Commit] r676 - in branches/experimental/www/firefox-beta: . files

Jan Beich jbeich at tormail.net
Tue Nov 22 01:28:49 UTC 2011


svn-freebsd-gecko at chruetertee.ch writes:

> Log:
> update to 9.0b2
[...]
> +--- ipc/chromium/src/base/dir_reader_linux.h.orig	2011-11-21 23:40:06.000000000 +0100
> ++++ ipc/chromium/src/base/dir_reader_linux.h	2011-11-21 23:40:26.000000000 +0100
> +@@ -57,7 +57,7 @@
> +     if (offset_ != size_)
> +       return true;
> + 
> +-    const int r = syscall(__NR_getdents64, fd_, buf_, sizeof(buf_));
> ++    const int r = syscall(SYS_getdents, fd_, buf_, sizeof(buf_));
> +     if (r == 0)
> +       return false;
> +     if (r == -1) {

Does it work with plugins (e.g. flash)? Field offsets are different

   // offsetof()
  .d_reclen (linux_dirent) = 16
  .d_name (linux_dirent) = 19
  .d_reclen (dirent) = 4
  .d_name (dirent) = 8

--- ipc/chromium/src/base/dir_reader_linux.h~
+++ ipc/chromium/src/base/dir_reader_linux.h
@@ -9,6 +9,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <stdint.h>
+#include <sys/dirent.h>
 #include <sys/syscall.h>
 #include <unistd.h>
 
@@ -19,6 +20,8 @@
 
 namespace base {
 
+#define linux_dirent struct dirent
+#if 0
 struct linux_dirent {
   uint64_t        d_ino;
   int64_t         d_off;
@@ -26,6 +29,7 @@ struct linux_dirent {
   unsigned char   d_type;
   char            d_name[0];
 };
+#endif
 
 class DirReaderLinux {
  public:
@@ -57,7 +61,7 @@ class DirReaderLinux {
     if (offset_ != size_)
       return true;
 
-    const int r = syscall(__NR_getdents64, fd_, buf_, sizeof(buf_));
+    const int r = syscall(SYS_getdents, fd_, buf_, sizeof(buf_));
     if (r == 0)
       return false;
     if (r == -1) {


More information about the freebsd-gecko mailing list