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

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

[Dotgnu-pnet-commits] CVS: pnet/ildasm ildasm_class.c,1.13,1.14


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/ildasm ildasm_class.c,1.13,1.14
Date: Tue, 06 May 2003 05:53:23 -0400

Update of /cvsroot/dotgnu-pnet/pnet/ildasm
In directory subversions:/tmp/cvs-serv17226/ildasm

Modified Files:
        ildasm_class.c 
Log Message:


Implement PInvoke lookups for fields so that global variables
within shared objects can be accessed.


Index: ildasm_class.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ildasm/ildasm_class.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** ildasm_class.c      18 Feb 2003 05:25:08 -0000      1.13
--- ildasm_class.c      6 May 2003 09:53:21 -0000       1.14
***************
*** 26,29 ****
--- 26,56 ----
  
  /*
+  * Dump a PInvoke definition.
+  */
+ static void Dump_PInvoke(FILE *outstream, ILPInvoke *pinvoke, ILMember 
*member)
+ {
+       if(pinvoke)
+       {
+               fputs("pinvokeimpl(", outstream);
+               ILDumpString(outstream,
+                                        
ILModule_Name(ILPInvoke_Module(pinvoke)));
+               putc(' ', outstream);
+               if(strcmp(ILPInvoke_Alias(pinvoke), ILMember_Name(member)) != 0)
+               {
+                       fputs("as ", outstream);
+                       ILDumpString(outstream, ILPInvoke_Alias(pinvoke));
+                       putc(' ', outstream);
+               }
+               ILDumpFlags(outstream, ILPInvoke_Attrs(pinvoke),
+                                       ILPInvokeImplementationFlags, 0);
+               fputs(") ", outstream);
+       }
+       else
+       {
+               fputs("pinvokeimpl() ", outstream);
+       }
+ }
+ 
+ /*
   * Dump a method definition.
   */
***************
*** 32,36 ****
  {
        ILUInt32 rva;
-       ILPInvoke *pinvoke;
        ILOverride *over;
        int haveContents;
--- 59,62 ----
***************
*** 53,77 ****
        if(ILMethod_HasPInvokeImpl(method))
        {
!               pinvoke = ILPInvokeFind(method);
!               if(pinvoke)
!               {
!                       fputs("pinvokeimpl(", outstream);
!                       ILDumpString(outstream,
!                                                
ILModule_Name(ILPInvoke_Module(pinvoke)));
!                       putc(' ', outstream);
!                       if(strcmp(ILPInvoke_Alias(pinvoke), 
ILMethod_Name(method)) != 0)
!                       {
!                               fputs("as ", outstream);
!                               ILDumpString(outstream, 
ILPInvoke_Alias(pinvoke));
!                               putc(' ', outstream);
!                       }
!                       ILDumpFlags(outstream, ILPInvoke_Attrs(pinvoke),
!                                               ILPInvokeImplementationFlags, 
0);
!                       fputs(") ", outstream);
!               }
!               else
!               {
!                       fputs("pinvokeimpl() ", outstream);
!               }
        }
        ILDumpMethodType(outstream, image, ILMethod_Signature(method),
--- 79,83 ----
        if(ILMethod_HasPInvokeImpl(method))
        {
!               Dump_PInvoke(outstream, ILPInvokeFind(method), (ILMember 
*)method);
        }
        ILDumpMethodType(outstream, image, ILMethod_Signature(method),
***************
*** 170,173 ****
--- 176,183 ----
                        }
                }
+       }
+       if(ILField_HasPInvokeImpl(field))
+       {
+               Dump_PInvoke(outstream, ILPInvokeFindField(field), (ILMember 
*)field);
        }
        ILDumpType(outstream, image, ILFieldGetTypeWithPrefixes(field), flags);





reply via email to

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