1- function GetNumberBuffer (buffer , offset , proto_field )
2- local field_size = {
3- [fb_bool ] = 1 ,
4- [fb_uint8 ] = 1 ,
5- [fb_int8 ] = 1 ,
6- [fb_uint16 ] = 2 ,
7- [fb_int16 ] = 2 ,
8- [fb_uint32 ] = 4 ,
9- [fb_int32 ] = 4 ,
10- [fb_float32 ] = 4 ,
11- [fb_uint64 ] = 8 ,
12- [fb_int64 ] = 8 ,
13- [fb_float64 ] = 8
14- }
15-
16- return buffer (offset , field_size [proto_field ])
17- end
18-
19- local function AddFieldToTree (buffer , offset , tree , field_type , scalar_type , proto_field , default_value )
1+ local function AddFieldToTree (buffer , offset , tree , field_type , scalar_type , field_width , default_value )
202 if offset == 0 then
213 local subtree = tree :add (field_type , default_value )
224 subtree :append_text (" [DEFAULT VALUE]" )
@@ -26,7 +8,7 @@ local function AddFieldToTree(buffer, offset, tree, field_type, scalar_type, pro
268 }
279 end
2810
29- local field_buffer = GetNumberBuffer ( buffer , offset , proto_field )
11+ local field_buffer = buffer ( offset , field_width )
3012 local field_value = field_buffer [" le_" .. scalar_type ](field_buffer )
3113 return {
3214 tree = tree :add (field_type , field_buffer , field_value ),
3618
3719function Parse_Uint8 (buffer , offset , tree , field_type , default_value )
3820 return AddFieldToTree (buffer , offset , tree , field_type , " uint" ,
39- fb_uint8 , default_value )
21+ 1 , default_value )
4022end
4123
4224function Parse_Uint16 (buffer , offset , tree , field_type , default_value )
4325 return AddFieldToTree (buffer , offset , tree , field_type , " uint" ,
44- fb_uint16 , default_value )
26+ 2 , default_value )
4527end
4628
4729function Parse_Uint32 (buffer , offset , tree , field_type , default_value )
4830 return AddFieldToTree (buffer , offset , tree , field_type , " uint" ,
49- fb_uint32 , default_value )
31+ 4 , default_value )
5032end
5133
5234function Parse_Uint64 (buffer , offset , tree , field_type , default_value )
5335 return AddFieldToTree (buffer , offset , tree , field_type , " uint64" ,
54- fb_uint64 , default_value )
36+ 8 , default_value )
5537end
5638
5739function Parse_Int8 (buffer , offset , tree , field_type , default_value )
5840 return AddFieldToTree (buffer , offset , tree , field_type ,
59- " int" , fb_int8 , default_value )
41+ " int" , 1 , default_value )
6042end
6143
6244function Parse_Int16 (buffer , offset , tree , field_type , default_value )
6345 return AddFieldToTree (buffer , offset , tree , field_type , " int" ,
64- fb_int16 , default_value )
46+ 2 , default_value )
6547end
6648
6749function Parse_Int32 (buffer , offset , tree , field_type , default_value )
6850 return AddFieldToTree (buffer , offset , tree , field_type , " int" ,
69- fb_int32 , default_value )
51+ 4 , default_value )
7052end
7153
7254function Parse_Int64 (buffer , offset , tree , field_type , default_value )
7355 return AddFieldToTree (buffer , offset , tree , field_type , " int64" ,
74- fb_int64 , default_value )
56+ 8 , default_value )
7557end
7658
7759function Parse_Float32 (buffer , offset , tree , field_type , default_value )
7860 return AddFieldToTree (buffer , offset , tree , field_type , " float" ,
79- fb_float32 , default_value )
61+ 4 , default_value )
8062end
8163
8264function Parse_Float64 (buffer , offset , tree , field_type , default_value )
8365 return AddFieldToTree (buffer , offset , tree , field_type , " double" ,
84- fb_float64 , default_value )
66+ 8 , default_value )
8567end
8668
8769function Parse_Bool (buffer , offset , tree , field_type , default_value )
@@ -94,7 +76,7 @@ function Parse_Bool(buffer, offset, tree, field_type, default_value)
9476 }
9577 end
9678
97- local bool_buffer = GetNumberBuffer ( buffer , offset , fb_bool )
79+ local bool_buffer = buffer ( offset , 1 )
9880 local bool_value = bool_buffer :le_uint ()
9981 return {
10082 tree = tree :add (field_type , bool_buffer , bool_value ),
0 commit comments