コード例 #1
0
 def ll_build(ll_builder):
     final_size = ll_builder.used
     assert final_size >= 0
     if final_size < ll_builder.allocated:
         ll_builder.allocated = final_size
         ll_builder.buf = rgc.ll_shrink_array(ll_builder.buf, final_size)
     return ll_builder.buf
コード例 #2
0
ファイル: rbuilder.py プロジェクト: abhinavthomas/pypy
def ll_shrink_final(ll_builder):
    final_size = ll_builder.current_pos
    ll_assert(final_size <= ll_builder.total_size,
              "final_size > ll_builder.total_size?")
    buf = rgc.ll_shrink_array(ll_builder.current_buf, final_size)
    ll_builder.current_buf = buf
    ll_builder.current_end = final_size
    ll_builder.total_size = final_size
コード例 #3
0
ファイル: rbuilder.py プロジェクト: zielmicha/pypy
def ll_shrink_final(ll_builder):
    final_size = ll_builder.current_pos
    ll_assert(final_size <= ll_builder.total_size,
              "final_size > ll_builder.total_size?")
    buf = rgc.ll_shrink_array(ll_builder.current_buf, final_size)
    ll_builder.current_buf = buf
    ll_builder.current_end = final_size
    ll_builder.total_size = final_size
コード例 #4
0
 def f():
     ptr = lltype.malloc(STR, 3)
     ptr.hash = 0x62
     ptr.chars[0] = '0'
     ptr.chars[1] = 'B'
     ptr.chars[2] = 'C'
     ptr2 = rgc.ll_shrink_array(ptr, 2)
     return ((ptr == ptr2) + ord(ptr2.chars[0]) +
             (ord(ptr2.chars[1]) << 8) + (len(ptr2.chars) << 16) +
             (ptr2.hash << 24))
コード例 #5
0
ファイル: gc_test_base.py プロジェクト: zielmicha/pypy
 def f(n, m, gc_can_shrink_array):
     ptr = lltype.malloc(STR, n)
     ptr.hash = 0x62
     ptr.chars[0] = 'A'
     ptr.chars[1] = 'B'
     ptr.chars[2] = 'C'
     ptr2 = rgc.ll_shrink_array(ptr, 2)
     assert (ptr == ptr2) == gc_can_shrink_array
     rgc.collect()
     return (ord(ptr2.chars[0]) + (ord(ptr2.chars[1]) << 8) +
             (len(ptr2.chars) << 16) + (ptr2.hash << 24))
コード例 #6
0
ファイル: test_boehm.py プロジェクト: abhinavthomas/pypy
 def f():
     ptr = lltype.malloc(STR, 3)
     ptr.hash = 0x62
     ptr.chars[0] = '0'
     ptr.chars[1] = 'B'
     ptr.chars[2] = 'C'
     ptr2 = rgc.ll_shrink_array(ptr, 2)
     return ((ptr == ptr2)             +
              ord(ptr2.chars[0])       +
             (ord(ptr2.chars[1]) << 8) +
             (len(ptr2.chars)   << 16) +
             (ptr2.hash         << 24))
コード例 #7
0
ファイル: test_rgc.py プロジェクト: sota/pypy-old
def test_ll_shrink_array_2():
    S = lltype.GcStruct('S', ('x', lltype.Signed),
                        ('vars', lltype.Array(lltype.Signed)))
    s1 = lltype.malloc(S, 5)
    s1.x = 1234
    for i in range(5):
        s1.vars[i] = 50 + i
    s2 = rgc.ll_shrink_array(s1, 3)
    assert lltype.typeOf(s2) == lltype.Ptr(S)
    assert s2.x == 1234
    assert len(s2.vars) == 3
    for i in range(3):
        assert s2.vars[i] == 50 + i
コード例 #8
0
ファイル: test_rgc.py プロジェクト: mozillazg/pypy
def test_ll_shrink_array_2():
    S = lltype.GcStruct('S', ('x', lltype.Signed),
                             ('vars', lltype.Array(lltype.Signed)))
    s1 = lltype.malloc(S, 5)
    s1.x = 1234
    for i in range(5):
        s1.vars[i] = 50 + i
    s2 = rgc.ll_shrink_array(s1, 3)
    assert lltype.typeOf(s2) == lltype.Ptr(S)
    assert s2.x == 1234
    assert len(s2.vars) == 3
    for i in range(3):
        assert s2.vars[i] == 50 + i
コード例 #9
0
ファイル: gc_test_base.py プロジェクト: charred/pypy
 def f(n, m, gc_can_shrink_array):
     ptr = lltype.malloc(STR, n)
     ptr.hash = 0x62
     ptr.chars[0] = 'A'
     ptr.chars[1] = 'B'
     ptr.chars[2] = 'C'
     ptr2 = rgc.ll_shrink_array(ptr, 2)
     assert (ptr == ptr2) == gc_can_shrink_array
     rgc.collect()
     return ( ord(ptr2.chars[0])       +
             (ord(ptr2.chars[1]) << 8) +
             (len(ptr2.chars)   << 16) +
             (ptr2.hash         << 24))