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 meta_types.c,1.9,1.10


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/image meta_types.c,1.9,1.10
Date: Mon, 14 Apr 2003 00:42:11 -0400

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

Modified Files:
        meta_types.c 
Log Message:


Support boxing conversions in ILTypeAssignCompatible.


Index: meta_types.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/image/meta_types.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** meta_types.c        28 Feb 2003 04:57:47 -0000      1.9
--- meta_types.c        14 Apr 2003 04:42:09 -0000      1.10
***************
*** 956,960 ****
  }
  
! int ILTypeAssignCompatible(ILImage *image, ILType *src, ILType *dest)
  {
        ILClass *classInfo;
--- 956,961 ----
  }
  
! static int TypeAssignCompatible(ILImage *image, ILType *src,
!                                                               ILType *dest, 
int allowBoxing)
  {
        ILClass *classInfo;
***************
*** 967,971 ****
  
        /* Determine how to compare the types based on their kind */
!       if(ILType_IsPrimitive(src))
        {
                /* Primitive type assignments must be identical */
--- 968,972 ----
  
        /* Determine how to compare the types based on their kind */
!       if(ILType_IsPrimitive(src) && !allowBoxing)
        {
                /* Primitive type assignments must be identical */
***************
*** 990,993 ****
--- 991,995 ----
                        return 0;
                }
+       boxCheck:
                classInfo = ILClassFromType(image, 0, dest, 0);
                classInfo2 = ILClassFromType(image, 0, src, 0);
***************
*** 1027,1030 ****
--- 1029,1037 ----
                }
        }
+       else if(allowBoxing && ILTypeIsReference(dest))
+       {
+               /* Check for boxing conversions */
+               goto boxCheck;
+       }
        else
        {
***************
*** 1032,1035 ****
--- 1039,1052 ----
                return ILTypeIdentical(src, dest);
        }
+ }
+ 
+ int ILTypeAssignCompatible(ILImage *image, ILType *src, ILType *dest)
+ {
+       return TypeAssignCompatible(image, src, dest, 1);
+ }
+ 
+ int ILTypeAssignCompatibleNonBoxing(ILImage *image, ILType *src, ILType *dest)
+ {
+       return TypeAssignCompatible(image, src, dest, 0);
  }
  





reply via email to

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