void IFreeze.Freeze(FreezeBuffer fb) { fb.Byte((byte)SerializationCode.P6how); fb.ObjRef(stable); fb.Byte((byte)(isComposed ? 2 : isComposing ? 1 : 0)); fb.String(rtype); fb.ObjRef(roleFactory); fb.ObjRef(subsetWhereThunk); fb.ObjRef(subsetFilter); // local_does not yet used fb.Int(lmethods.Count); // we do NOT save source position info here, it's only used // intra-unit foreach (MethodInfo mi in lmethods) { fb.String(mi.short_name); fb.String(mi.long_name); fb.ObjRef(mi.impl); fb.Byte(checked ((byte)mi.flags)); } fb.Int(local_attr.Count); foreach (AttrInfo ai in local_attr) { fb.String(ai.name); fb.ObjRef(ai.init); fb.Byte(checked ((byte)ai.flags)); fb.ObjRef(ai.type); } fb.Refs <STable>(superclasses); fb.Refs <STable>(mro); }
void IFreeze.Freeze(FreezeBuffer fb) { fb.Byte((byte)SerializationCode.VarHash); fb.Int(count); foreach (KeyValuePair <string, Variable> kv in this) { fb.String(kv.Key); fb.ObjRef(kv.Value); } }
void IFreeze.Freeze(FreezeBuffer fb) { fb.Byte((byte)SerializationCode.VarDeque); fb.Int(count); int index = head; for (int i = 0; i < count; i++) { fb.ObjRef(data[index]); index++; if (index == data.Length) { index = 0; } } }
protected void FreezeSelf(FreezeBuffer fb, Type t) { fb.Byte((byte)SerializationCode.P6opaque); int i; for (i = 0; i < FreezeBuffer.boxTypes.Length && FreezeBuffer.boxTypes[i] != t; i++) { } if (i == FreezeBuffer.boxTypes.Length) { throw new NotImplementedException(t.FullName); } fb.Byte((byte)i); fb.ObjRef(mo); int l = slots == null ? 0 : slots.Length; fb.Int(l); for (i = 0; i < l; i++) { fb.ObjRef(slots[i]); } }