Author: Armin Rigo <[email protected]>
Branch: py3.5
Changeset: r86379:7c5ace65de0a
Date: 2016-08-21 20:22 +0200
http://bitbucket.org/pypy/pypy/changeset/7c5ace65de0a/

Log:    No point in making 'name' lazy, and it's better if the EncodingError
        we might get is thrown at the same place as in CPython

diff --git a/pypy/module/posix/interp_scandir.py 
b/pypy/module/posix/interp_scandir.py
--- a/pypy/module/posix/interp_scandir.py
+++ b/pypy/module/posix/interp_scandir.py
@@ -84,7 +84,11 @@
             if name != '.' and name != '..':
                 break
         #
-        direntry = W_DirEntry(name, self.w_path_prefix, self.result_is_bytes)
+        w_name = space.newbytes(name)
+        result_is_bytes = self.result_is_bytes
+        if not result_is_bytes:
+            w_name = space.fsdecode(w_name)
+        direntry = W_DirEntry(w_name, self.w_path_prefix, result_is_bytes)
         return space.wrap(direntry)
 
 
@@ -97,28 +101,20 @@
 
 
 class W_DirEntry(W_Root):
-    w_name = None
     w_path = None
 
-    def __init__(self, name_bytes, w_path_prefix, result_is_bytes):
-        self.name_bytes = name_bytes
+    def __init__(self, w_name, w_path_prefix, result_is_bytes):
+        self.w_name = w_name
         self.w_path_prefix = w_path_prefix
         self.result_is_bytes = result_is_bytes
 
     def fget_name(self, space):
-        w_name = self.w_name
-        if w_name is None:
-            w_name = space.newbytes(self.name_bytes)
-            if not self.result_is_bytes:
-                w_name = space.fsdecode(w_name)
-            self.w_name = w_name
-        return w_name
+        return self.w_name
 
     def fget_path(self, space):
         w_path = self.w_path
         if w_path is None:
-            w_name = self.fget_name(space)
-            w_path = space.add(self.w_path_prefix, w_name)
+            w_path = space.add(self.w_path_prefix, self.w_name)
             self.w_path = w_path
         return w_path
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to