JClassDescInfo ClassDescInfo() { JClassDescInfo info = new JClassDescInfo(); info.Flags = ReadUInt8(); info.Fields = new JFieldDesc[ReadUInt16()]; for (int i = 0; i < info.Fields.Length; i++) { info.Fields[i] = FieldDesc(); } info.Annotation = Annotation(); info.SuperClass = ClassDesc(); return(info); }
JClassData ClassData(JClassDescInfo info) { if ((info.Flags & SC_SERIALIZABLE) == 0) { throw new InvalidDataException("Invalid class data flags: " + info.Flags); } JClassData data = new JClassData(); data.Values = new object[info.Fields.Length]; for (int i = 0; i < data.Values.Length; i++) { data.Values[i] = Value(info.Fields[i].Type); } if ((info.Flags & SC_WRITE_METHOD) != 0) { data.Annotation = Annotation(); } return(data); }