@@ -98,19 +98,19 @@ def da(self):
9898 base = 0
9999 nelem = 0
100100 while True :
101- typ = self .db ()
101+ typ = self .peek_u8 ()
102102 if typ & 0x80 == 0 :
103103 break
104104 self .seek (1 )
105105 da = (da << 7 ) | typ & 0x7F
106106 b += 1
107107 if b >= 4 :
108- z = self .db ()
108+ z = self .peek_u8 ()
109109 if z != 0 :
110110 base = 0x10 * da | z & 0xF
111- nelem = (self .db () >> 4 ) & 7
111+ nelem = (self .u8 () >> 4 ) & 7
112112 while True :
113- y = self .db ()
113+ y = self .peek_u8 ()
114114 if (y & 0x80 ) == 0 :
115115 break
116116 self .seek (1 )
@@ -853,10 +853,7 @@ def deserialize(self, til, ts, fields, fieldcmts):
853853 self .base = 0
854854 self .n_elems = ts .dt ()
855855 else :
856- ok , self .n_elems , self .base = ts .da ()
857- if not ok :
858- raise ValueError ()
859- return self
856+ _ , self .n_elems , self .base = ts .da ()
860857 ts .tah_attr ()
861858 self .elem_type = create_tinfo (til , ts .ref (), fields , fieldcmts )
862859 return self
@@ -1137,17 +1134,16 @@ def deserialize(self, til, ts, fields, fieldcmts):
11371134 field_i = 0
11381135 for i in range (member_cnt ):
11391136 member = UdtMember ()
1137+ member .type = create_tinfo (til , ts .ref (), fields , fieldcmts )
1138+ attr = ts .sdacl_attr () if not self .is_union else 0
1139+ member .tafld_bits = attr
1140+ member .fda = attr
11401141 if not member .is_baseclass ():
11411142 if len (fields ) > field_i :
11421143 member .name = fields [field_i ]
11431144 if n < len (fieldcmts ):
11441145 member .cmt = fieldcmts [field_i ]
11451146 field_i += 1
1146-
1147- member .type = create_tinfo (til , ts .ref (), fields , fieldcmts )
1148- attr = ts .sdacl_attr () if not self .is_union else 0
1149- member .tafld_bits = attr
1150- member .fda = attr
11511147 self .members .append (member )
11521148 return self
11531149
0 commit comments