dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnet/image lib_attrs.c,1.3,1.4


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/image lib_attrs.c,1.3,1.4
Date: Wed, 20 Nov 2002 21:05:51 -0500

Update of /cvsroot/dotgnu-pnet/pnet/image
In directory subversions:/tmp/cvs-serv31785/image

Modified Files:
        lib_attrs.c 
Log Message:


Recognise the "Serializable" and "NonSerialized" attributes as builtin
library attributes.


Index: lib_attrs.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/image/lib_attrs.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** lib_attrs.c 18 Sep 2002 05:06:22 -0000      1.3
--- lib_attrs.c 21 Nov 2002 02:05:49 -0000      1.4
***************
*** 27,30 ****
--- 27,72 ----
  
  /*
+  * Process a "Serializable" attribute.
+  */
+ static int SerializableAttribute(ILProgramItem *item, ILSerializeReader 
*reader)
+ {
+       ILClass *classInfo;
+ 
+       /* We must use this on a class */
+       classInfo = ILProgramItemToClass(item);
+       if(!classInfo)
+       {
+               return 0;
+       }
+ 
+       /* Mark the class as serialized */
+       ILClassSetAttrs(classInfo, IL_META_TYPEDEF_SERIALIZABLE,
+                                                          
IL_META_TYPEDEF_SERIALIZABLE);
+       return 1;
+ }
+ 
+ /*
+  * Process a "NonSerialized" attribute.
+  */
+ static int NonSerializedAttribute(ILProgramItem *item,
+                                                                 
ILSerializeReader *reader)
+ {
+       ILField *fieldInfo;
+ 
+       /* We must use this on a field */
+       fieldInfo = ILProgramItemToField(item);
+       if(!fieldInfo)
+       {
+               return 0;
+       }
+ 
+       /* Mark the field as non-serialized */
+       ILMemberSetAttrs((ILMember *)fieldInfo,
+                                        IL_META_FIELDDEF_NOT_SERIALIZED,
+                                    IL_META_FIELDDEF_NOT_SERIALIZED);
+       return 1;
+ }
+ 
+ /*
   * Match an attribute parameter name and type.
   */
***************
*** 691,694 ****
--- 733,741 ----
  
  } AttrConvertInfo;
+ static AttrConvertInfo const systemAttrs[] = {
+       {"SerializableAttribute", SerializableAttribute},
+       {"NonSerializedAttribute", NonSerializedAttribute},
+       {0, 0}
+ };
  static AttrConvertInfo const interopAttrs[] = {
        {"DllImportAttribute",  DllImportAttribute},
***************
*** 742,745 ****
--- 789,796 ----
        {
                info = compilerAttrs;
+       }
+       else if(!strcmp(namespace, "System"))
+       {
+               info = systemAttrs;
        }
        else





reply via email to

[Prev in Thread] Current Thread [Next in Thread]