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 class.c,1.18,1.19


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/image class.c,1.18,1.19
Date: Fri, 14 Feb 2003 20:57:54 -0500

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

Modified Files:
        class.c 
Log Message:


Add the new helper function ILClassNextMemberMatch and use it to speed
up method/field resolution in ilasm and ilalink.


Index: class.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/image/class.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -r1.18 -r1.19
*** class.c     15 Feb 2003 01:14:42 -0000      1.18
--- class.c     15 Feb 2003 01:57:52 -0000      1.19
***************
*** 1160,1163 ****
--- 1160,1199 ----
  }
  
+ ILMember *ILClassNextMemberMatch(ILClass *info, ILMember *last, int kind,
+                                                                const char 
*name, ILType *signature)
+ {
+       if(last)
+       {
+               last = last->nextMember;
+       }
+       else if(info)
+       {
+               last = info->firstMember;
+       }
+       else
+       {
+               return 0;
+       }
+       while(last != 0)
+       {
+               if(kind && ((int)(last->kind)) != kind)
+               {
+                       last = last->nextMember;
+                       continue;
+               }
+               if(name && strcmp(last->name, name) != 0)
+               {
+                       last = last->nextMember;
+                       continue;
+               }
+               if(!signature || ILTypeIdentical(last->signature, signature))
+               {
+                       return last;
+               }
+               last = last->nextMember;
+       }
+       return 0;
+ }
+ 
  void ILClassMarkComplete(ILClass *info)
  {





reply via email to

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