aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Friedrich Bolz-Tereick <cfbolz@gmx.de>2020-02-09 16:36:25 +0100
committerCarl Friedrich Bolz-Tereick <cfbolz@gmx.de>2020-02-09 16:36:25 +0100
commita118a707d42e4f434b7a5dc691588cc1718deaad (patch)
treee7437552228d45fb6573786c668d04d7ea08386f /pypy/objspace
parent- introduce space.iterator_greenkey which returns "something" that can be used (diff)
downloadpypy-a118a707d42e4f434b7a5dc691588cc1718deaad.tar.gz
pypy-a118a707d42e4f434b7a5dc691588cc1718deaad.tar.bz2
pypy-a118a707d42e4f434b7a5dc691588cc1718deaad.zip
various fixes
Diffstat (limited to 'pypy/objspace')
-rw-r--r--pypy/objspace/descroperation.py8
-rw-r--r--pypy/objspace/std/bytearrayobject.py2
-rw-r--r--pypy/objspace/std/listobject.py6
-rw-r--r--pypy/objspace/std/typeobject.py3
4 files changed, 14 insertions, 5 deletions
diff --git a/pypy/objspace/descroperation.py b/pypy/objspace/descroperation.py
index 8aaaade754..32ec45addd 100644
--- a/pypy/objspace/descroperation.py
+++ b/pypy/objspace/descroperation.py
@@ -124,8 +124,14 @@ class Object(object):
def descr__init__(space, w_obj, __args__):
pass
+def get_printable_location(itergreenkey, w_itemtype):
+ return "DescrOperation.contains [%s, %s]" % (
+ itergreenkey.iterator_greenkey_printable(),
+ w_itemtype.getname(w_itemtype.space))
+
contains_jitdriver = jit.JitDriver(name='contains',
- greens=['itergreenkey', 'w_itemtype'], reds='auto')
+ greens=['itergreenkey', 'w_itemtype'], reds='auto',
+ get_printable_location=get_printable_location)
class DescrOperation(object):
# This is meant to be a *mixin*.
diff --git a/pypy/objspace/std/bytearrayobject.py b/pypy/objspace/std/bytearrayobject.py
index 8a3722797d..9cecb9a22f 100644
--- a/pypy/objspace/std/bytearrayobject.py
+++ b/pypy/objspace/std/bytearrayobject.py
@@ -568,7 +568,7 @@ def _get_printable_location(greenkey):
_byteseq_jitdriver = jit.JitDriver(
name='bytearray_from_byte_sequence',
greens=['greenkey'],
- reds='auto'
+ reds='auto',
get_printable_location=_get_printable_location)
def _from_byte_sequence(space, w_source):
diff --git a/pypy/objspace/std/listobject.py b/pypy/objspace/std/listobject.py
index 9e8c1990a7..ed28d92e91 100644
--- a/pypy/objspace/std/listobject.py
+++ b/pypy/objspace/std/listobject.py
@@ -131,7 +131,7 @@ def get_strategy_from_list_objects(space, list_w, sizehint):
return space.fromcache(ObjectListStrategy)
-def _get_printable_location(greenkey):
+def _get_printable_location(strategy, greenkey):
return 'list__do_extend_from_iterable [%s, %s]' % (
strategy,
greenkey.iterator_greenkey_printable())
@@ -145,11 +145,11 @@ _do_extend_jitdriver = jit.JitDriver(
def _do_extend_from_iterable(space, w_list, w_iterable):
w_iterator = space.iter(w_iterable)
- w_type = space.iterator_greenkey_printable(w_iterator)
+ greenkey = space.iterator_greenkey(w_iterator)
i = 0
while True:
_do_extend_jitdriver.jit_merge_point(
- w_type=w_type,
+ greenkey=greenkey,
strategy = w_list.strategy)
try:
w_list.append(space.next(w_iterator))
diff --git a/pypy/objspace/std/typeobject.py b/pypy/objspace/std/typeobject.py
index 039b3d5881..3d042356a4 100644
--- a/pypy/objspace/std/typeobject.py
+++ b/pypy/objspace/std/typeobject.py
@@ -711,6 +711,9 @@ class W_TypeObject(W_Root):
else:
return space.newtext("<%s '%s'>" % (kind, self.name))
+ def iterator_greenkey_printable(self):
+ return self.name
+
def descr_getattribute(self, space, w_name):
name = space.text_w(w_name)
w_descr = space.lookup(self, name)