Changeset 7098 for trunk/src


Ignore:
Timestamp:
Oct 17, 2001, 6:59:31 PM (24 years ago)
Author:
phaller
Message:

ILIsEqual slightly faster

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/shell32/pidl.c

    r7031 r7098  
    467467              LPCITEMIDLIST, pidl2)
    468468{
    469         char    szData1[MAX_PATH];
    470         char    szData2[MAX_PATH];
    471 
    472         LPITEMIDLIST pidltemp1 = pidl1;
    473         LPITEMIDLIST pidltemp2 = pidl2;
     469//      char    szData1[MAX_PATH];
     470//      char    szData2[MAX_PATH];
     471
     472//      LPITEMIDLIST pidltemp1 = pidl1;
     473//      LPITEMIDLIST pidltemp2 = pidl2;
    474474
    475475        TRACE("pidl1=%p pidl2=%p\n",pidl1, pidl2);
     
    477477        /* explorer reads from registry directly (StreamMRU),
    478478           so we can only check here */
    479         if ((!pcheck (pidl1)) || (!pcheck (pidl2))) return FALSE;
    480 
    481         pdump (pidl1);
    482         pdump (pidl2);
     479//      if ((!pcheck (pidl1)) || (!pcheck (pidl2))) return FALSE;
     480
     481//      pdump (pidl1);
     482//      pdump (pidl2);
    483483
    484484        if ( (!pidl1) || (!pidl2) ) return FALSE;
    485485       
    486         while (pidltemp1->mkid.cb && pidltemp2->mkid.cb)
    487         {
     486        while (pidl1->mkid.cb && pidl2->mkid.cb)
     487        {
     488          // compare lengths first
     489          if (pidl1->mkid.cb != pidl2->mkid.cb)
     490            return FALSE;
     491         
    488492//          _ILSimpleGetText(pidltemp1, szData1, MAX_PATH);
    489493//          _ILSimpleGetText(pidltemp2, szData2, MAX_PATH);
    490494//
    491495//          if (strcasecmp ( szData1, szData2 )!=0 )
    492             if (_ILSimpleCompareText(pidltemp1, pidltemp2) != 0)
     496            if (_ILSimpleCompareText(pidl1, pidl2) != 0)
    493497              return FALSE;
    494498
    495             pidltemp1 = ODIN_ILGetNext(pidltemp1);
    496             pidltemp2 = ODIN_ILGetNext(pidltemp2);
    497         }       
    498 
    499         if (!pidltemp1->mkid.cb && !pidltemp2->mkid.cb)
    500         {
    501           return TRUE;
    502         }
     499            pidl1 = ODIN_ILGetNext(pidl1);
     500            pidl2 = ODIN_ILGetNext(pidl2);
     501        }
     502 
     503        if (!pidl1->mkid.cb && !pidl2->mkid.cb)
     504        {
     505              return TRUE;
     506        }
    503507
    504508        return FALSE;
Note: See TracChangeset for help on using the changeset viewer.