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

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

[Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_attrs.c,1.14,1.15 cs_gat


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_attrs.c,1.14,1.15 cs_gather.c,1.35,1.36 cs_lookup.c,1.18,1.19
Date: Fri, 14 Feb 2003 21:14:55 -0500

Update of /cvsroot/dotgnu-pnet/pnet/cscc/csharp
In directory subversions:/tmp/cvs-serv22461/cscc/csharp

Modified Files:
        cs_attrs.c cs_gather.c cs_lookup.c 
Log Message:


Use ILClassNextMemberMatch to speed up member resolution in the C# compiler.


Index: cs_attrs.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_attrs.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** cs_attrs.c  12 Jan 2003 05:43:36 -0000      1.14
--- cs_attrs.c  15 Feb 2003 02:14:53 -0000      1.15
***************
*** 144,157 ****
        {
                member = 0;
!               while((member = ILClassNextMember(classInfo, member)) != 0)
                {
                        /* Skip members that aren't accessible to the module */
                        if(!ILMemberAccessible(member, scope))
-                       {
-                               continue;
-                       }
- 
-                       /* Check the member name */
-                       if(strcmp(ILMember_Name(member), name) != 0)
                        {
                                continue;
--- 144,152 ----
        {
                member = 0;
!               while((member = ILClassNextMemberMatch
!                               (classInfo, member, 0, name, 0)) != 0)
                {
                        /* Skip members that aren't accessible to the module */
                        if(!ILMemberAccessible(member, scope))
                        {
                                continue;

Index: cs_gather.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_gather.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -C2 -r1.35 -r1.36
*** cs_gather.c 12 Jan 2003 21:15:51 -0000      1.35
--- cs_gather.c 15 Feb 2003 02:14:53 -0000      1.36
***************
*** 401,408 ****
                /* Scan the members of this class */
                member = 0;
!               while((member = ILClassNextMember(classInfo, member)) != 0)
                {
!                       if(!strcmp(ILMember_Name(member), name) &&
!                          ILMemberAccessible(member, scope))
                        {
                                return member;
--- 401,408 ----
                /* Scan the members of this class */
                member = 0;
!               while((member = ILClassNextMemberMatch
!                               (classInfo, member, 0, name, 0)) != 0)
                {
!                       if(ILMemberAccessible(member, scope))
                        {
                                return member;
***************
*** 447,454 ****
                /* Scan the members of this class */
                member = 0;
!               while((member = ILClassNextMember(classInfo, member)) != 0)
                {
                        if(member != notThis &&
-                          !strcmp(ILMember_Name(member), name) &&
                           ILMemberAccessible(member, scope) &&
                           (!interfaceOverride || classInfo == scope))
--- 447,454 ----
                /* Scan the members of this class */
                member = 0;
!               while((member = ILClassNextMemberMatch
!                               (classInfo, member, 0, name, 0)) != 0)
                {
                        if(member != notThis &&
                           ILMemberAccessible(member, scope) &&
                           (!interfaceOverride || classInfo == scope))
***************
*** 625,634 ****
  {
        ILMember *member = 0;
!       while((member = ILClassNextMemberByKind(interface, member, kind)) != 0)
        {
-               if(strcmp(ILMember_Name(member), name) != 0)
-               {
-                       continue;
-               }
                if(kind == IL_META_MEMBERKIND_METHOD ||
                   kind == IL_META_MEMBERKIND_PROPERTY)
--- 625,631 ----
  {
        ILMember *member = 0;
!       while((member = ILClassNextMemberMatch
!                       (interface, member, kind, name, 0)) != 0)
        {
                if(kind == IL_META_MEMBERKIND_METHOD ||
                   kind == IL_META_MEMBERKIND_PROPERTY)
***************
*** 904,913 ****
        {
                methodInfo = 0;
!               while((methodInfo = (ILMethod *)ILClassNextMemberByKind
                                        (classInfo, (ILMember *)methodInfo,
!                                        IL_META_MEMBERKIND_METHOD)) != 0)
                {
!                       if(!strcmp(ILMethod_Name(methodInfo), ".ctor") &&
!                          (ILMethod_Token(methodInfo) & IL_META_TOKEN_MASK) ==
                                        IL_META_TOKEN_MEMBER_REF)
                        {
--- 901,909 ----
        {
                methodInfo = 0;
!               while((methodInfo = (ILMethod *)ILClassNextMemberMatch
                                        (classInfo, (ILMember *)methodInfo,
!                                        IL_META_MEMBERKIND_METHOD, ".ctor", 
0)) != 0)
                {
!                       if((ILMethod_Token(methodInfo) & IL_META_TOKEN_MASK) ==
                                        IL_META_TOKEN_MEMBER_REF)
                        {

Index: cs_lookup.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_lookup.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -r1.18 -r1.19
*** cs_lookup.c 28 Dec 2002 18:11:19 -0000      1.18
--- cs_lookup.c 15 Feb 2003 02:14:53 -0000      1.19
***************
*** 317,324 ****
                {
                        member = 0;
!                       while((member = ILClassNextMember(info, member)) != 0)
                        {
!                               if(!strcmp(ILMember_Name(member), name) &&
!                                  ILMemberAccessible(member, accessedFrom))
                                {
                                        kind = ILMemberGetKind(member);
--- 317,324 ----
                {
                        member = 0;
!                       while((member = ILClassNextMemberMatch
!                                               (info, member, 0, name, 0)) != 
0)
                        {
!                               if(ILMemberAccessible(member, accessedFrom))
                                {
                                        kind = ILMemberGetKind(member);





reply via email to

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