Ejemplo n.º 1
0
 def read_boxes(cpu, virtualizable):
     boxes = []
     for _, fieldname in unroll_static_fields:
         x = getattr(virtualizable, fieldname)
         boxes.append(wrap(cpu, x))
     for _, fieldname in unroll_array_fields:
         lst = getattr(virtualizable, fieldname)
         for i in range(getlength(lst)):
             boxes.append(wrap(cpu, getarrayitem(lst, i)))
     return boxes
Ejemplo n.º 2
0
 def read_boxes(cpu, virtualizable):
     boxes = []
     for _, fieldname in unroll_static_fields:
         x = getattr(virtualizable, fieldname)
         boxes.append(wrap(cpu, x))
     for _, fieldname in unroll_array_fields:
         lst = getattr(virtualizable, fieldname)
         for i in range(getlength(lst)):
             boxes.append(wrap(cpu, getarrayitem(lst, i)))
     return boxes
Ejemplo n.º 3
0
 def read_boxes(cpu, virtualizable):
     assert lltype.typeOf(virtualizable) == llmemory.GCREF
     virtualizable = cast_gcref_to_vtype(virtualizable)
     boxes = []
     for _, fieldname in unroll_static_fields:
         x = getattr(virtualizable, fieldname)
         boxes.append(wrap(cpu, x))
     for _, fieldname in unroll_array_fields:
         lst = getattr(virtualizable, fieldname)
         for i in range(getlength(lst)):
             boxes.append(wrap(cpu, getarrayitem(lst, i)))
     return boxes
Ejemplo n.º 4
0
 def read_boxes(cpu, virtualizable):
     assert lltype.typeOf(virtualizable) == llmemory.GCREF
     virtualizable = cast_gcref_to_vtype(virtualizable)
     boxes = []
     for _, fieldname in unroll_static_fields:
         x = getattr(virtualizable, fieldname)
         boxes.append(wrap(cpu, x))
     for _, fieldname in unroll_array_fields:
         lst = getattr(virtualizable, fieldname)
         for i in range(getlength(lst)):
             boxes.append(wrap(cpu, getarrayitem(lst, i)))
     return boxes
Ejemplo n.º 5
0
def test_wrap():
    def _is(box1, box2):
        return (box1.__class__ == box2.__class__ and
                box1.value == box2.value)
    p = lltype.malloc(lltype.GcStruct('S'))
    po = lltype.cast_opaque_ptr(llmemory.GCREF, p)
    assert _is(wrap(None, 42), BoxInt(42))
    assert _is(wrap(None, 42.5), BoxFloat(42.5))
    assert _is(wrap(None, p), BoxPtr(po))
    assert _is(wrap(None, 42, in_const_box=True), ConstInt(42))
    assert _is(wrap(None, 42.5, in_const_box=True), ConstFloat(42.5))
    assert _is(wrap(None, p, in_const_box=True), ConstPtr(po))
Ejemplo n.º 6
0
def test_wrap():
    def _is(box1, box2):
        return (box1.__class__ == box2.__class__ and box1.value == box2.value)

    p = lltype.malloc(lltype.GcStruct('S'))
    po = lltype.cast_opaque_ptr(llmemory.GCREF, p)
    assert _is(wrap(None, 42), BoxInt(42))
    assert _is(wrap(None, 42.5), BoxFloat(42.5))
    assert _is(wrap(None, p), BoxPtr(po))
    assert _is(wrap(None, 42, in_const_box=True), ConstInt(42))
    assert _is(wrap(None, 42.5, in_const_box=True), ConstFloat(42.5))
    assert _is(wrap(None, p, in_const_box=True), ConstPtr(po))
Ejemplo n.º 7
0
def test_wrap():
    def _is(box1, box2):
        return (box1.__class__ == box2.__class__ and box1.value == box2.value)

    p = lltype.malloc(lltype.GcStruct('S'))
    po = lltype.cast_opaque_ptr(llmemory.GCREF, p)
    assert _is(wrap(None, 42), BoxInt(42))
    assert _is(wrap(None, 42.5), boxfloat(42.5))
    assert _is(wrap(None, p), BoxPtr(po))
    assert _is(wrap(None, 42, in_const_box=True), ConstInt(42))
    assert _is(wrap(None, 42.5, in_const_box=True), constfloat(42.5))
    assert _is(wrap(None, p, in_const_box=True), ConstPtr(po))
    if longlong.supports_longlong:
        import sys
        from pypy.rlib.rarithmetic import r_longlong, r_ulonglong
        value = r_longlong(-sys.maxint * 17)
        assert _is(wrap(None, value), BoxFloat(value))
        assert _is(wrap(None, value, in_const_box=True), ConstFloat(value))
        value_unsigned = r_ulonglong(-sys.maxint * 17)
        assert _is(wrap(None, value_unsigned), BoxFloat(value))
    sfval = r_singlefloat(42.5)
    ival = longlong.singlefloat2int(sfval)
    assert _is(wrap(None, sfval), BoxInt(ival))
    assert _is(wrap(None, sfval, in_const_box=True), ConstInt(ival))
Ejemplo n.º 8
0
def test_wrap():
    def _is(box1, box2):
        return box1.__class__ == box2.__class__ and box1.value == box2.value

    p = lltype.malloc(lltype.GcStruct("S"))
    po = lltype.cast_opaque_ptr(llmemory.GCREF, p)
    assert _is(wrap(None, 42), BoxInt(42))
    assert _is(wrap(None, 42.5), boxfloat(42.5))
    assert _is(wrap(None, p), BoxPtr(po))
    assert _is(wrap(None, 42, in_const_box=True), ConstInt(42))
    assert _is(wrap(None, 42.5, in_const_box=True), constfloat(42.5))
    assert _is(wrap(None, p, in_const_box=True), ConstPtr(po))
    if longlong.supports_longlong:
        import sys
        from pypy.rlib.rarithmetic import r_longlong, r_ulonglong

        value = r_longlong(-sys.maxint * 17)
        assert _is(wrap(None, value), BoxFloat(value))
        assert _is(wrap(None, value, in_const_box=True), ConstFloat(value))
        value_unsigned = r_ulonglong(-sys.maxint * 17)
        assert _is(wrap(None, value_unsigned), BoxFloat(value))
    sfval = r_singlefloat(42.5)
    ival = longlong.singlefloat2int(sfval)
    assert _is(wrap(None, sfval), BoxInt(ival))
    assert _is(wrap(None, sfval, in_const_box=True), ConstInt(ival))