[pypy-commit] pypy py3k: prefer find/setitem_str shortcuts
pjenvey
noreply at buildbot.pypy.org
Wed Jun 18 00:51:40 CEST 2014
Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3k
Changeset: r72091:0ceafd01a9ce
Date: 2014-06-17 14:57 -0700
http://bitbucket.org/pypy/pypy/changeset/0ceafd01a9ce/
Log: prefer find/setitem_str shortcuts (grafted from
f48daf83db6a568e814467d1e2132ee8d046b1d3)
diff --git a/pypy/interpreter/pyframe.py b/pypy/interpreter/pyframe.py
--- a/pypy/interpreter/pyframe.py
+++ b/pypy/interpreter/pyframe.py
@@ -514,10 +514,10 @@
for i in range(min(len(varnames), self.getcode().co_nlocals)):
name = varnames[i]
w_value = self.locals_stack_w[i]
- w_name = self.space.wrap(name.decode('utf-8'))
if w_value is not None:
- self.space.setitem(self.w_locals, w_name, w_value)
+ self.space.setitem_str(self.w_locals, name, w_value)
else:
+ w_name = self.space.wrap(name.decode('utf-8'))
try:
self.space.delitem(self.w_locals, w_name)
except OperationError as e:
@@ -537,8 +537,7 @@
except ValueError:
pass
else:
- w_name = self.space.wrap(name)
- self.space.setitem(self.w_locals, w_name, w_value)
+ self.space.setitem_str(self.w_locals, name, w_value)
@jit.unroll_safe
@@ -551,13 +550,9 @@
new_fastlocals_w = [None] * numlocals
for i in range(min(len(varnames), numlocals)):
- w_name = self.space.wrap(varnames[i].decode('utf-8'))
- try:
- w_value = self.space.getitem(self.w_locals, w_name)
- except OperationError, e:
- if not e.match(self.space, self.space.w_KeyError):
- raise
- else:
+ name = varnames[i]
+ w_value = self.space.finditem_str(self.w_locals, name)
+ if w_value is not None:
new_fastlocals_w[i] = w_value
self.setfastscope(new_fastlocals_w)
@@ -566,13 +561,8 @@
for i in range(len(freevarnames)):
name = freevarnames[i]
cell = self.cells[i]
- w_name = self.space.wrap(name)
- try:
- w_value = self.space.getitem(self.w_locals, w_name)
- except OperationError, e:
- if not e.match(self.space, self.space.w_KeyError):
- raise
- else:
+ w_value = self.space.finditem_str(self.w_locals, name)
+ if w_value is not None:
cell.set(w_value)
@jit.unroll_safe
More information about the pypy-commit
mailing list