[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnet/codegen cg_decls.tc,1.48,1.49
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/codegen cg_decls.tc,1.48,1.49 |
Date: |
Tue, 06 May 2003 05:53:23 -0400 |
Update of /cvsroot/dotgnu-pnet/pnet/codegen
In directory subversions:/tmp/cvs-serv17226/codegen
Modified Files:
cg_decls.tc
Log Message:
Implement PInvoke lookups for fields so that global variables
within shared objects can be accessed.
Index: cg_decls.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/codegen/cg_decls.tc,v
retrieving revision 1.48
retrieving revision 1.49
diff -C2 -r1.48 -r1.49
*** cg_decls.tc 27 Feb 2003 06:19:22 -0000 1.48
--- cg_decls.tc 6 May 2003 09:53:20 -0000 1.49
***************
*** 335,338 ****
--- 335,359 ----
/*
+ * Dump PInvoke information for a method or field.
+ */
+ static void DumpPInvoke(ILGenInfo *info, FILE *outstream,
+ ILPInvoke *pinvoke, ILMember
*member)
+ {
+ 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);
+ }
+
+ /*
* Dump information about a field to the output stream.
*/
***************
*** 340,343 ****
--- 361,375 ----
{
ILFieldLayout *layout;
+ ILPInvoke *pinvoke;
+
+ /* Does the field have PInvoke information associated with it? */
+ if(ILField_HasPInvokeImpl(field))
+ {
+ pinvoke = ILPInvokeFindField(field);
+ }
+ else
+ {
+ pinvoke = 0;
+ }
/* Dump the field signature and name */
***************
*** 351,354 ****
--- 383,390 ----
ILDumpFlags(info->asmOutput, ILField_Attrs(field),
ILFieldDefinitionFlags, 0);
+ if(pinvoke)
+ {
+ DumpPInvoke(info, info->asmOutput, pinvoke, (ILMember *)field);
+ }
ILDumpType(info->asmOutput, info->image,
ILFieldGetTypeWithPrefixes(field),
IL_DUMP_QUOTE_NAMES);
***************
*** 713,729 ****
{
/* Dump PInvoke information for the method */
! fputs("pinvokeimpl(", info->asmOutput);
! 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);
}
ILDumpMethodType(outstream, info->image,
--- 749,753 ----
{
/* Dump PInvoke information for the method */
! DumpPInvoke(info, outstream, pinvoke, (ILMember *)method);
}
ILDumpMethodType(outstream, info->image,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/codegen cg_decls.tc,1.48,1.49,
Rhys Weatherley <address@hidden> <=