[Top][All Lists]
[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);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/image meta_types.c,1.9,1.10,
Rhys Weatherley <address@hidden> <=