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)
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)
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])
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)
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)
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])
def sizeof(S): assert not isinstance(S, lltype.Ptr) return Descr(symbolic.get_size(S))
def sizeof(self, S): assert not isinstance(S, lltype.Ptr) return self.getdescr(symbolic.get_size(S))