[pypy-svn] r57804 - in pypy/branch/oo-jit/pypy/translator/oosupport: . test_template
antocuni at codespeak.net
antocuni at codespeak.net
Thu Sep 4 10:17:00 CEST 2008
Author: antocuni
Date: Thu Sep 4 10:16:55 2008
New Revision: 57804
Modified:
pypy/branch/oo-jit/pypy/translator/oosupport/constant.py
pypy/branch/oo-jit/pypy/translator/oosupport/test_template/constant.py
Log:
add support for pbc of type ootype.Object which contains a string
Modified: pypy/branch/oo-jit/pypy/translator/oosupport/constant.py
==============================================================================
--- pypy/branch/oo-jit/pypy/translator/oosupport/constant.py (original)
+++ pypy/branch/oo-jit/pypy/translator/oosupport/constant.py Thu Sep 4 10:16:55 2008
@@ -54,6 +54,12 @@
if is_primitive(TYPE):
return constgen.push_primitive_constant(gen, TYPE, value)
+ if TYPE is ootype.Object:
+ obj = value.obj
+ T2 = ootype.typeOf(obj)
+ if is_primitive(T2):
+ return constgen.push_primitive_constant(gen, T2, obj)
+
const = constgen.record_const(value)
if const.is_inline():
const.push_inline(gen, TYPE)
Modified: pypy/branch/oo-jit/pypy/translator/oosupport/test_template/constant.py
==============================================================================
--- pypy/branch/oo-jit/pypy/translator/oosupport/test_template/constant.py (original)
+++ pypy/branch/oo-jit/pypy/translator/oosupport/test_template/constant.py Thu Sep 4 10:16:55 2008
@@ -1,3 +1,5 @@
+from pypy.rpython.ootypesystem import ootype
+
# used in tests below
class A:
pass
@@ -143,3 +145,12 @@
return mylist[x]
res = self.interpret(fn, [0])
assert self.class_name(res) == 'A'
+
+ def test_convert_string_to_object(self):
+ s = self.string_to_ll("hello world")
+ obj = ootype.cast_to_object(s)
+ def fn():
+ s1 = ootype.cast_from_object(ootype.String, obj)
+ return s1
+ res = self.interpret(fn, [], backendopt=False)
+ assert res == 'hello world'
More information about the Pypy-commit
mailing list