* net/tramp.el (tramp-inodes, tramp-devices): Initialize with 0.
authorMichael Albinus <michael.albinus@gmx.de>
Sun, 26 Feb 2012 19:36:59 +0000 (20:36 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Sun, 26 Feb 2012 19:36:59 +0000 (20:36 +0100)
(tramp-get-inode, tramp-get-device): Use cached values.

lisp/ChangeLog
lisp/net/tramp.el

index a79b630..76a7ccf 100644 (file)
@@ -1,3 +1,8 @@
+2012-02-26  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp.el (tramp-inodes, tramp-devices): Initialize with 0.
+       (tramp-get-inode, tramp-get-device): Use cached values.
+
 2012-02-26  Alan Mackenzie  <acm@muc.de>
 
        Check there is a font-lock specification before doing initial
index cc1977d..a5e3da9 100644 (file)
@@ -1650,7 +1650,7 @@ been set up by `rfn-eshadow-setup-minibuffer'."
 ;; applied might be not so efficient (Ange-FTP uses hashes). But
 ;; performance isn't the major issue given that file transfer will
 ;; take time.
-(defvar tramp-inodes nil
+(defvar tramp-inodes 0
   "Keeps virtual inodes numbers.")
 
 ;; Devices must distinguish physical file systems.  The device numbers
@@ -1658,7 +1658,7 @@ been set up by `rfn-eshadow-setup-minibuffer'."
 ;; So we use virtual device numbers, generated by Tramp.  Both Ange-FTP and
 ;; EFS use device number "-1".  In order to be different, we use device number
 ;; (-1 . x), whereby "x" is unique for a given (method user host).
-(defvar tramp-devices nil
+(defvar tramp-devices 0
   "Keeps virtual device numbers.")
 
 (defun tramp-default-file-modes (filename)
@@ -3412,28 +3412,14 @@ the remote host use line-endings as defined in the variable
 (defun tramp-get-inode (vec)
   "Returns the virtual inode number.
 If it doesn't exist, generate a new one."
-  (let ((string (tramp-make-tramp-file-name
-                (tramp-file-name-method vec)
-                (tramp-file-name-user vec)
-                (tramp-file-name-host vec)
-                "")))
-    (unless (assoc string tramp-inodes)
-      (add-to-list 'tramp-inodes
-                  (list string (length tramp-inodes))))
-    (nth 1 (assoc string tramp-inodes))))
+  (with-file-property vec (tramp-file-name-localname vec) "inode"
+    (setq tramp-inodes (1+ tramp-inodes))))
 
 (defun tramp-get-device (vec)
   "Returns the virtual device number.
 If it doesn't exist, generate a new one."
-  (let ((string (tramp-make-tramp-file-name
-                (tramp-file-name-method vec)
-                (tramp-file-name-user vec)
-                (tramp-file-name-host vec)
-                "")))
-    (unless (assoc string tramp-devices)
-      (add-to-list 'tramp-devices
-                  (list string (length tramp-devices))))
-    (cons -1 (nth 1 (assoc string tramp-devices)))))
+  (with-connection-property (tramp-get-connection-process vec) "device"
+    (cons -1 (setq tramp-devices (1+ tramp-devices)))))
 
 (defun tramp-equal-remote (file1 file2)
   "Check, whether the remote parts of FILE1 and FILE2 are identical.