[pypy-commit] pypy default: shortcut through setitem_str when possible
pjenvey
noreply at buildbot.pypy.org
Wed Apr 30 00:19:41 CEST 2014
Author: Philip Jenvey <pjenvey at underboss.org>
Branch:
Changeset: r71068:de6c6c698d53
Date: 2014-04-29 15:14 -0700
http://bitbucket.org/pypy/pypy/changeset/de6c6c698d53/
Log: shortcut through setitem_str when possible
diff --git a/pypy/interpreter/argument.py b/pypy/interpreter/argument.py
--- a/pypy/interpreter/argument.py
+++ b/pypy/interpreter/argument.py
@@ -321,10 +321,11 @@
limit -= len(self.keyword_names_w)
for i in range(len(self.keywords)):
if i < limit:
- w_key = space.wrap(self.keywords[i])
+ key = self.keywords[i]
+ space.setitem_str(w_kwds, key, self.keywords_w[i])
else:
w_key = self.keyword_names_w[i - limit]
- space.setitem(w_kwds, w_key, self.keywords_w[i])
+ space.setitem(w_kwds, w_key, self.keywords_w[i])
return w_args, w_kwds
# JIT helper functions
@@ -416,10 +417,10 @@
break
else:
if i < limit:
- w_key = space.wrap(keywords[i])
+ space.setitem_str(w_kwds, keywords[i], keywords_w[i])
else:
w_key = keyword_names_w[i - limit]
- space.setitem(w_kwds, w_key, keywords_w[i])
+ space.setitem(w_kwds, w_key, keywords_w[i])
#
# ArgErr family of exceptions raised in case of argument mismatch.
diff --git a/pypy/interpreter/test/test_argument.py b/pypy/interpreter/test/test_argument.py
--- a/pypy/interpreter/test/test_argument.py
+++ b/pypy/interpreter/test/test_argument.py
@@ -93,6 +93,7 @@
def setitem(self, obj, key, value):
obj[key] = value
+ setitem_str = setitem
def getitem(self, obj, key):
return obj[key]
More information about the pypy-commit
mailing list