Author: Philip Jenvey <[email protected]>
Branch: py3k-fix-strategies
Changeset: r70909:36af1cd6bd2c
Date: 2014-04-23 17:13 -0700
http://bitbucket.org/pypy/pypy/changeset/36af1cd6bd2c/
Log: revert back to usage of finditem/setitem_str
diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -433,6 +433,9 @@
def getconstant_w(self, index):
return self.getcode().co_consts_w[index]
+ def getname_u(self, index):
+ return self.space.identifier_w(self.getname_w(index))
+
def getname_w(self, index):
return self.getcode().co_names_w[index]
@@ -753,9 +756,9 @@
self.pushvalue(w_build_class)
def STORE_NAME(self, varindex, next_instr):
- w_varname = self.getname_w(varindex)
+ varname = self.getname_u(varindex)
w_newvalue = self.popvalue()
- self.space.setitem(self.w_locals, w_varname, w_newvalue)
+ self.space.setitem_str(self.w_locals, varname, w_newvalue)
def DELETE_NAME(self, varindex, next_instr):
w_varname = self.getname_w(varindex)
@@ -765,8 +768,8 @@
# catch KeyErrors and turn them into NameErrors
if not e.match(self.space, self.space.w_KeyError):
raise
- raise oefmt(self.space.w_NameError, "name '%s' is not defined",
- self.space.str_w(w_varname))
+ raise oefmt(self.space.w_NameError,
+ "name %R is not defined", w_varname)
def UNPACK_SEQUENCE(self, itemcount, next_instr):
w_iterable = self.popvalue()
@@ -817,7 +820,7 @@
self.space.delattr(w_obj, w_attributename)
def STORE_GLOBAL(self, nameindex, next_instr):
- varname = self.space.str_w(self.getname_w(nameindex))
+ varname = self.getname_u(nameindex)
w_newvalue = self.popvalue()
self.space.setitem_str(self.w_globals, varname, w_newvalue)
@@ -827,24 +830,24 @@
def LOAD_NAME(self, nameindex, next_instr):
w_varname = self.getname_w(nameindex)
+ varname = self.space.identifier_w(w_varname)
if self.w_locals is not self.w_globals:
- w_value = self.space.finditem(self.w_locals, w_varname)
+ w_value = self.space.finditem_str(self.w_locals, varname)
if w_value is not None:
self.pushvalue(w_value)
return
# fall-back
- w_value = self._load_global(w_varname)
+ w_value = self._load_global(varname)
if w_value is None:
raise oefmt(self.space.w_NameError,
"name %R is not defined", w_varname)
self.pushvalue(w_value)
- def _load_global(self, w_varname):
- w_value = self.space.finditem(self.w_globals, w_varname)
+ def _load_global(self, varname):
+ w_value = self.space.finditem_str(self.w_globals, varname)
if w_value is None:
# not in the globals, now look in the built-ins
- w_value = self.get_builtin().getdictvalue(
- self.space, self.space.identifier_w(w_varname))
+ w_value = self.get_builtin().getdictvalue(self.space, varname)
return w_value
_load_global._always_inline_ = True
@@ -855,7 +858,7 @@
def LOAD_GLOBAL(self, nameindex, next_instr):
w_varname = self.getname_w(nameindex)
- w_value = self._load_global(w_varname)
+ w_value = self._load_global(self.space.identifier_w(w_varname))
if w_value is None:
self._load_global_failed(w_varname)
self.pushvalue(w_value)
@@ -993,7 +996,7 @@
if not e.match(self.space, self.space.w_AttributeError):
raise
raise oefmt(self.space.w_ImportError,
- "cannot import name '%s'", self.space.str_w(w_name))
+ "cannot import name %R", w_name)
self.pushvalue(w_obj)
def YIELD_VALUE(self, oparg, next_instr):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit