예제 #1
0
파일: ObjModel.cs 프로젝트: ebassi/niecza
        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);
        }
예제 #2
0
 void IFreeze.Freeze(FreezeBuffer fb)
 {
     fb.Byte((byte)SerializationCode.STable);
     fb.ObjRef(mo);
     fb.ObjRef(how);
     fb.ObjRef(who);
     fb.ObjRef(typeObject);
     fb.ObjRef(initObject);
     fb.ObjRef(typeVar);
     fb.ObjRef(initVar);
     fb.String(name);
     fb.Byte((byte)(isSubset ? 1 : 0));
     fb.String(box_type == null ? null : box_type.AssemblyQualifiedName);
     fb.Strings(all_slot);
 }
예제 #3
0
파일: Cursor.cs 프로젝트: nbrown/niecza
 void IFreeze.Freeze(FreezeBuffer fb)
 {
     fb.Byte((byte) SerializationCode.AltInfo);
     fb.Ints(labels);
     fb.Refs(prefixes);
     fb.String(dba);
 }
예제 #4
0
 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);
     }
 }
예제 #5
0
파일: Cursor.cs 프로젝트: nbrown/niecza
 public override void Freeze(FreezeBuffer fb)
 {
     fb.Byte((byte) SerializationCode.LADMethod);
     fb.String(name);
 }
예제 #6
0
파일: Cursor.cs 프로젝트: nbrown/niecza
 public override void Freeze(FreezeBuffer fb)
 {
     fb.Byte((byte) SerializationCode.LADStrNoCase);
     fb.String(text);
 }