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

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

[Dotgnu-pnet-commits] CVS: pnet/engine verify.c,1.38,1.39


From: Gopal.V <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/engine verify.c,1.38,1.39
Date: Mon, 09 Dec 2002 08:19:20 -0500

Update of /cvsroot/dotgnu-pnet/pnet/engine
In directory subversions:/tmp/cvs-serv7888/engine

Modified Files:
        verify.c 
Log Message:
array type checks for AssignCompatible


Index: verify.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/verify.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -C2 -r1.38 -r1.39
*** verify.c    8 Dec 2002 22:34:35 -0000       1.38
--- verify.c    9 Dec 2002 13:19:18 -0000       1.39
***************
*** 334,337 ****
--- 334,338 ----
        ILClass *classInfo2;
        ILMethod *methodRef;
+       ILType *objType;
  
        /* Check for safe and unsafe pointer assignments */
***************
*** 433,440 ****
                        return 0;
                }
                image = ILProgramItem_Image(method);
                classInfo = ILClassResolve(ILClassFromType(image, 0, type, 0));
                classInfo2 = ILClassResolve
!                       (ILClassFromType(image, 0, item->typeInfo, 0));
                if(classInfo && classInfo2)
                {
--- 434,449 ----
                        return 0;
                }
+               /* make a copy to avoid unecessary complications */
+               objType=item->typeInfo;
+               if(ILType_IsArray(type) && ILType_IsArray(objType) &&
+                       (ILTypeGetRank(type) == ILTypeGetRank(objType)))
+               {
+                       objType=ILTypeGetElemType(objType);
+                       type=ILTypeGetElemType(type);
+               }
                image = ILProgramItem_Image(method);
                classInfo = ILClassResolve(ILClassFromType(image, 0, type, 0));
                classInfo2 = ILClassResolve
!                       (ILClassFromType(image, 0, objType, 0));
                if(classInfo && classInfo2)
                {




reply via email to

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