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

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

[Dotgnu-pnet-commits] pnet/image meta_build.c,1.34,1.35


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] pnet/image meta_build.c,1.34,1.35
Date: Mon, 24 Nov 2003 07:46:19 +0000

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

Modified Files:
        meta_build.c 
Log Message:


"redo" processing for nested and exported types, resolve TypeRef's
that involve ModuleRef scopes.


Index: meta_build.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/image/meta_build.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -d -r1.34 -r1.35
*** meta_build.c        23 Nov 2003 02:30:07 -0000      1.34
--- meta_build.c        24 Nov 2003 07:46:17 -0000      1.35
***************
*** 543,547 ****
                                        /* The nesting parent is marked for 
redo,
                                           so mark the child for redo also */
!                                       if(!AddToRedoList(image->context, 
scope))
                                        {
                                                return IL_LOADERR_MEMORY;
--- 543,547 ----
                                        /* The nesting parent is marked for 
redo,
                                           so mark the child for redo also */
!                                       if(!AddToRedoList(image->context, 
&(info->programItem)))
                                        {
                                                return IL_LOADERR_MEMORY;
***************
*** 554,561 ****
                        case IL_META_TOKEN_MODULE_REF:
                        {
!                               /* Module reference imports are not currently
!                                  supported.  Types should be imported from
!                                  assemblies, not modules.  Module references
!                                  should only be used for PInvoke imports */
                        }
                        break;
--- 554,564 ----
                        case IL_META_TOKEN_MODULE_REF:
                        {
!                               /* Type is imported from a foreign module */
!                               importImage = ILModuleToImage((ILModule 
*)scope);
!                               if(importImage)
!                               {
!                                       goto moduleImport;
!                               }
!                               /* TODO: dynamically load the specified module 
*/
                        }
                        break;
***************
*** 567,570 ****
--- 570,574 ----
                                if(importImage)
                                {
+                               moduleImport:
                                        if(importImage == image || 
!(importImage->loading))
                                        {
***************
*** 3172,3175 ****
--- 3176,3185 ----
        }
  
+       /* Add the exported type to the "redo" list */
+       if(!AddToRedoList(image->context, &(type->classItem.programItem)))
+       {
+               return IL_LOADERR_MEMORY;
+       }
+ 
        /* Done */
        return 0;
***************
*** 3627,3630 ****
--- 3637,3641 ----
        {
                case IL_META_TOKEN_TYPE_REF:
+               case IL_META_TOKEN_EXPORTED_TYPE:
                {
                        /* Nested type within a foreign assembly */
***************
*** 3810,3813 ****
--- 3821,3825 ----
                {
                        case IL_META_TOKEN_TYPE_REF:
+                       case IL_META_TOKEN_EXPORTED_TYPE:
                        {
                                error2 = RedoTypeRef(item->image, (ILClass 
*)item);





reply via email to

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