Beispiel #1
0
 def arraydescrof(self, A):
     assert A.OF != lltype.Void
     size = symbolic.get_size(A)
     if isinstance(A.OF, lltype.Ptr) or isinstance(A.OF, lltype.Primitive):
         token = history.getkind(A.OF)[0]
     elif isinstance(A.OF, lltype.Struct):
         token = 's'
     else:
         token = '?'
     return self.getdescr(size, token)
Beispiel #2
0
 def arraydescrof(self, A):
     assert A.OF != lltype.Void
     assert isinstance(A, lltype.GcArray) or A._hints.get('nolength', False)
     size = symbolic.get_size(A)
     if isinstance(A.OF, lltype.Ptr) or isinstance(A.OF, lltype.Primitive):
         token = history.getkind(A.OF)[0]
     elif isinstance(A.OF, lltype.Struct):
         token = 's'
     else:
         token = '?'
     return self.getdescr(size, token)
Beispiel #3
0
 def arraydescrof(self, A):
     assert A.OF != lltype.Void
     assert isinstance(A, lltype.GcArray) or A._hints.get('nolength', False)
     size = symbolic.get_size(A)
     if isinstance(A.OF, lltype.Ptr) or isinstance(A.OF, lltype.Primitive):
         token = history.getkind(A.OF)[0]
     elif isinstance(A.OF, lltype.Struct):
         token = 's'
     else:
         token = '?'
     return self.getdescr(size, token)
Beispiel #4
0
 def arraydescrof(self, A):
     assert A.OF != lltype.Void
     size = symbolic.get_size(A)
     token = history.getkind(A.OF)
     return self.getdescr(size, token[0])
Beispiel #5
0
 def sizeof(self, S):
     assert not isinstance(S, lltype.Ptr)
     count = heaptracker.count_fields_if_immutable(S)
     return self.getdescr(symbolic.get_size(S), count_fields_if_immut=count)
Beispiel #6
0
 def interiorfielddescrof(self, A, fieldname):
     S = A.OF
     width = symbolic.get_size(A)
     ofs, size = symbolic.get_field_token(S, fieldname)
     token = history.getkind(getattr(S, fieldname))
     return self.getdescr(ofs, token[0], name=fieldname, width=width)
Beispiel #7
0
 def arraydescrof(A):
     assert isinstance(A, lltype.GcArray)
     assert A.OF != lltype.Void
     size = symbolic.get_size(A)
     token = history.getkind(A.OF)
     return Descr(size, token[0])
Beispiel #8
0
 def sizeof(S):
     assert not isinstance(S, lltype.Ptr)
     return Descr(symbolic.get_size(S))
Beispiel #9
0
 def interiorfielddescrof(self, A, fieldname):
     S = A.OF
     width = symbolic.get_size(A)
     ofs, size = symbolic.get_field_token(S, fieldname)
     token = history.getkind(getattr(S, fieldname))
     return self.getdescr(ofs, token[0], name=fieldname, width=width)
Beispiel #10
0
 def sizeof(self, S):
     assert not isinstance(S, lltype.Ptr)
     count = heaptracker.count_fields_if_immutable(S)
     return self.getdescr(symbolic.get_size(S), count_fields_if_immut=count)
Beispiel #11
0
 def arraydescrof(A):
     assert isinstance(A, lltype.GcArray)
     assert A.OF != lltype.Void
     size = symbolic.get_size(A)
     token = history.getkind(A.OF)
     return Descr(size, token[0])
Beispiel #12
0
 def sizeof(S):
     assert not isinstance(S, lltype.Ptr)
     return Descr(symbolic.get_size(S))
Beispiel #13
0
 def sizeof(self, S):
     assert not isinstance(S, lltype.Ptr)
     return self.getdescr(symbolic.get_size(S))