Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r88505:1bff6ff8dfeb
Date: 2016-11-21 09:04 +0100
http://bitbucket.org/pypy/pypy/changeset/1bff6ff8dfeb/

Log:    Issue #2425: don't pass interp-level Nones as arguments to
        call_method()

diff --git a/pypy/module/_file/interp_file.py b/pypy/module/_file/interp_file.py
--- a/pypy/module/_file/interp_file.py
+++ b/pypy/module/_file/interp_file.py
@@ -8,6 +8,7 @@
 from rpython.rlib.rstring import StringBuilder
 from pypy.module._file.interp_stream import W_AbstractStream, StreamErrors
 from pypy.module.posix.interp_posix import dispatch_filename
+from pypy.module.sys.interp_encoding import getdefaultencoding
 from pypy.interpreter.error import OperationError, oefmt, wrap_oserror
 from pypy.interpreter.typedef import (TypeDef, GetSetProperty,
     interp_attrproperty, make_weakref_descr, interp_attrproperty_w)
@@ -309,11 +310,14 @@
             data = space.getarg_w('s*', w_data).as_str()
         else:
             if space.isinstance_w(w_data, space.w_unicode):
-                w_errors = w_encoding = None
                 if self.encoding:
                     w_encoding = space.wrap(self.encoding)
+                else:
+                    w_encoding = getdefaultencoding(space)
                 if self.errors:
                     w_errors = space.wrap(self.errors)
+                else:
+                    w_errors = space.wrap("strict")
                 w_data = space.call_method(w_data, "encode",
                                            w_encoding, w_errors)
             data = space.charbuf_w(w_data)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to