def f(n): o = llop.extract_ushort(llgroup.HALFWORD, goffsets[n]) p = llop.get_group_member(Ptr(S1), grpptr, o) p.x = 5 for i in range(len(goffsets)): if i != n: o = llop.extract_ushort(llgroup.HALFWORD, goffsets[i]) q = llop.get_group_member(Ptr(S1), grpptr, o) q.x = 666 return p.x
def test_simple(self): self.build() grpptr = self.grpptr S1 = self.S1 S2 = self.S2 Ptr = lltype.Ptr assert llop.get_group_member(Ptr(S1), grpptr, self.g1a) == self.p1a assert llop.get_group_member(Ptr(S1), grpptr, self.g1b) == self.p1b assert llop.get_group_member(Ptr(S2), grpptr, self.g2a) == self.p2a assert llop.get_group_member(Ptr(S2), grpptr, self.g2b) == self.p2b
def f(): p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1a) assert p == test.p1a p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1b) assert p == test.p1b p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2a) assert p == test.p2a p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2b) assert p == test.p2b # p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr, test.g1a, llmemory.sizeof(test.S1)) assert p == test.p2a p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr, test.g2a, llmemory.sizeof(test.S2)) assert p == test.p2b p = llop.get_next_group_member(lltype.Ptr(test.S1), grpptr, test.g2b, llmemory.sizeof(test.S2)) assert p == test.p1b # expected = [123, 456] for i in range(2): p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, g1x[i]) assert p.x == expected[i] # for i in range(2): s = llop.extract_ushort(HALFWORD, cslist[i]) p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, s) assert p == test.p1b assert cslist[0] & ~MASK == 0x45 << HALFSHIFT assert cslist[1] & ~MASK == 0x41 << HALFSHIFT assert cslist[0] >> HALFSHIFT == 0x45 assert cslist[1] >> (HALFSHIFT + 1) == 0x41 >> 1 # return 42
def f(): p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1a) assert p == test.p1a p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1b) assert p == test.p1b p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2a) assert p == test.p2a p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2b) assert p == test.p2b # p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr, test.g1a, llmemory.sizeof(test.S1)) assert p == test.p2a p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr, test.g2a, llmemory.sizeof(test.S2)) assert p == test.p2b p = llop.get_next_group_member(lltype.Ptr(test.S1), grpptr, test.g2b, llmemory.sizeof(test.S2)) assert p == test.p1b # expected = [123, 456] for i in range(2): p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, g1x[i]) assert p.x == expected[i] # for i in range(2): s = llop.extract_ushort(HALFWORD, cslist[i]) p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, s) assert p == test.p1b assert cslist[0] & ~MASK == 0x45 << HALFSHIFT assert cslist[1] & ~MASK == 0x41 << HALFSHIFT assert cslist[0] >> HALFSHIFT == 0x45 assert cslist[1] >> (HALFSHIFT+1) == 0x41 >> 1 # return 42
def get_varsize(self, typeid): res = llop.get_group_member(GCData.VARSIZE_TYPE_INFO_PTR, self.type_info_group_ptr, typeid) _check_valid_type_info_varsize(res) return res
def get(self, typeid): res = llop.get_group_member(GCData.TYPE_INFO_PTR, self.type_info_group_ptr, typeid) _check_valid_type_info(res) return res