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