Changeset 7012 for trunk/src


Ignore:
Timestamp:
Oct 11, 2001, 4:13:18 AM (24 years ago)
Author:
phaller
Message:

performance improvement

Location:
trunk/src/shell32
Files:
2 edited

Legend:

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

    r6999 r7012  
    4242#endif
    4343
     44
     45/****************************************************************************
     46 * local prototypes
     47 ****************************************************************************/
     48
     49LPITEMIDLIST _Optlink ODIN_ILGetNext(LPITEMIDLIST pidl);
     50LPITEMIDLIST _Optlink ODIN_ILClone  (LPCITEMIDLIST pidl);
     51DWORD        _Optlink ODIN_ILGetSize(LPITEMIDLIST pidl);
     52
     53
    4454#if defined( __WIN32OS2__) && defined(DEBUG)
    4555void pdump (LPCITEMIDLIST pidl)
     
    8393                       pidltemp, pidltemp->mkid.cb,type,dwAttrib,szName,debugstr_a(szLongName), debugstr_a(szShortName));
    8494
    85               pidltemp = ILGetNext(pidltemp);
     95              pidltemp = ODIN_ILGetNext(pidltemp);
    8696
    8797            } while (pidltemp->mkid.cb);
     
    151161              }
    152162            }
    153             pidltemp = ILGetNext(pidltemp);
     163            pidltemp = ODIN_ILGetNext(pidltemp);
    154164          } while (pidltemp->mkid.cb);
    155165        }
     
    184194        {
    185195          pidlLast = pidl;
    186           pidl = ILGetNext(pidl);
     196          pidl = ODIN_ILGetNext(pidl);
    187197        }
    188198        return pidlLast;               
     
    219229    return NULL;
    220230   
    221   len = ILGetSize(pidl);
     231  len = ODIN_ILGetSize(pidl);
    222232  newpidl = (LPITEMIDLIST)SHAlloc(len);
    223233  if (newpidl)
     
    252262
    253263            if (len)
    254               ILGetNext(pidlNew)->mkid.cb = 0x00;
     264              ODIN_ILGetNext(pidlNew)->mkid.cb = 0x00;
    255265          }
    256266        }
     
    328338        {
    329339          wLen += sizeof(WORD) + pidl->mkid.cb;
    330           pidl = ILGetNext(pidl);
     340          pidl = ODIN_ILGetNext(pidl);
    331341        }
    332342
     
    434444          return NULL;
    435445   
    436         len = ILGetSize(pidl);
     446        len = ODIN_ILGetSize(pidl);
    437447        newpidl = (LPITEMIDLIST)pCOMCTL32_Alloc(len);
    438448        if (newpidl)
     
    478488              return FALSE;
    479489
    480             pidltemp1 = ILGetNext(pidltemp1);
    481             pidltemp2 = ILGetNext(pidltemp2);
     490            pidltemp1 = ODIN_ILGetNext(pidltemp1);
     491            pidltemp2 = ODIN_ILGetNext(pidltemp2);
    482492        }       
    483493
     
    517527            return FALSE;
    518528
    519           pParent = ILGetNext(pParent);
    520           pChild = ILGetNext(pChild);
     529          pParent = ODIN_ILGetNext(pParent);
     530          pChild = ODIN_ILGetNext(pChild);
    521531        }       
    522532       
     
    524534          return FALSE;
    525535       
    526         if ( ILGetNext(pChild)->mkid.cb && bImmediate)  /* not immediate descent */
     536        if ( ODIN_ILGetNext(pChild)->mkid.cb && bImmediate)     /* not immediate descent */
    527537          return FALSE;
    528538       
     
    577587              break;
    578588
    579             pidltemp1 = ILGetNext(pidltemp1);
    580             pidltemp2 = ILGetNext(pidltemp2);
     589            pidltemp1 = ODIN_ILGetNext(pidltemp1);
     590            pidltemp2 = ODIN_ILGetNext(pidltemp2);
    581591            ret = pidltemp2;   
    582592          }
     
    606616        LPITEMIDLIST  pidlNew;
    607617       
    608         TRACE("pidl=%p pidl=%p\n",pidl1,pidl2);
    609618
    610619        if(!pidl1 && !pidl2) return NULL;
     
    615624        if(!pidl1)
    616625        {
    617           pidlNew = ILClone(pidl2);
     626          pidlNew = ODIN_ILClone(pidl2);
    618627          return pidlNew;
    619628        }
     
    621630        if(!pidl2)
    622631        {
    623           pidlNew = ILClone(pidl1);
     632          pidlNew = ODIN_ILClone(pidl1);
    624633          return pidlNew;
    625634        }
    626635
    627         len1  = ILGetSize(pidl1)-2;
    628         len2  = ILGetSize(pidl2);
     636        len1  = ODIN_ILGetSize(pidl1)-2;
     637        len2  = ODIN_ILGetSize(pidl2);
    629638        pidlNew  = SHAlloc(len1+len2);
    630639
     
    709718
    710719/*************************************************************************
    711  * ILGetNext [SHELL32.153]
     720 * ODIN_ILGetNext [SHELL32.153]
    712721 *  gets the next simple pidl of a complex pidl
    713722 *
     
    721730              LPITEMIDLIST, pidl)
    722731{
    723         WORD len;
    724        
    725         TRACE("(pidl=%p)\n",pidl);
    726 
    727         if(pidl)
    728         {
    729           len =  pidl->mkid.cb;
    730           if (len)
    731           {
    732             pidl = (LPITEMIDLIST) (((LPBYTE)pidl)+len);
    733             return pidl;
    734           }
    735         }
    736         return NULL;
     732  WORD len;
     733
     734  if(pidl)
     735  {
     736    len =  pidl->mkid.cb;
     737    if (len)
     738      return (LPITEMIDLIST) (((LPBYTE)pidl)+len);
     739  }
     740  return NULL;
    737741}
    738742/*************************************************************************
     
    759763        if (_ILIsDesktop(pidl))
    760764        {
    761            idlRet = ILClone(item);
     765           idlRet = ODIN_ILClone(item);
    762766           if (pidl)
    763767             SHFree (pidl);
     
    788792              LPITEMIDLIST, pidl)
    789793{
    790         TRACE("(pidl=0x%08lx)\n",(DWORD)pidl);
    791 
    792         if(!pidl) return FALSE;
    793         SHFree(pidl);
    794         return TRUE;
     794  if(!pidl)
     795    return FALSE;
     796  SHFree(pidl);
     797  return TRUE;
    795798}
    796799/*************************************************************************
     
    11671170          /* we are on desktop level */
    11681171          if (ppidlLast)
    1169             *ppidlLast = ILClone(pidl);
     1172            *ppidlLast = ODIN_ILClone(pidl);
    11701173          hr = SHGetDesktopFolder((IShellFolder**)ppv);
    11711174        }
    11721175        else
    11731176        {
    1174           pidlChild =  ILClone(ILFindLastID(pidl));
    1175           pidlParent = ILClone(pidl);
     1177          pidlChild =  ODIN_ILClone(ILFindLastID(pidl));
     1178          pidlParent = ODIN_ILClone(pidl);
    11761179          ILRemoveLastID(pidlParent);
    11771180
     
    14321435        }
    14331436       
    1434         pidlTemp = ILGetNext(pidlOut);
     1437        pidlTemp = ODIN_ILGetNext(pidlOut);
    14351438        if (pidlTemp)
    14361439          pidlTemp->mkid.cb = 0x00;
     
    14521455
    14531456        if(_ILIsMyComputer(pidl))
    1454           pidl = ILGetNext(pidl);
     1457          pidl = ODIN_ILGetNext(pidl);
    14551458
    14561459        if (pidl && _ILIsDrive(pidl))
     
    19441947
    19451948        for(i = 0; i < cidl; i++)
    1946           apidldest[i] = ILClone(apidlsrc[i]);
     1949          apidldest[i] = ODIN_ILClone(apidlsrc[i]);
    19471950
    19481951        return apidldest;
     
    19621965
    19631966        if (pidl)
    1964           *pidl = ILClone((LPITEMIDLIST)(&((LPBYTE)cida)[cida->aoffset[0]]));
     1967          *pidl = ODIN_ILClone((LPITEMIDLIST)(&((LPBYTE)cida)[cida->aoffset[0]]));
    19651968
    19661969        for(i = 0; i < cida->cidl; i++)
    1967           dst[i] = ILClone((LPITEMIDLIST)(&((LPBYTE)cida)[cida->aoffset[i + 1]]));
     1970          dst[i] = ODIN_ILClone((LPITEMIDLIST)(&((LPBYTE)cida)[cida->aoffset[i + 1]]));
    19681971
    19691972        return dst;
  • trunk/src/shell32/shlfolder.c

    r6776 r7012  
    3636
    3737
     38/****************************************************************************
     39 * local prototypes
     40 ****************************************************************************/
     41
     42DWORD        _Optlink ODIN_ILFree       (LPITEMIDLIST pidl);
     43LPITEMIDLIST _Optlink ODIN_ILCombine    (LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2);
     44LPITEMIDLIST _Optlink ODIN_ILClone      (LPCITEMIDLIST pidl);
     45LPITEMIDLIST _Optlink ODIN_ILCloneFirst (LPCITEMIDLIST pidl);
     46
     47
    3848/***************************************************************************
    3949 * debughelper: print out the return adress
     
    119129          IShellFolder_Release(psfChild);
    120130
    121           pidlTemp = ILCombine(*pidlInOut, pidlOut);
     131          pidlTemp = ODIN_ILCombine(*pidlInOut, pidlOut);
    122132
    123133          if (pidlOut)
    124             ILFree(pidlOut);
    125         }
    126 
    127         ILFree(*pidlInOut);
     134            ODIN_ILFree(pidlOut);
     135        }
     136
     137        ODIN_ILFree(*pidlInOut);
    128138        *pidlInOut = pidlTemp;
    129139
     
    160170          if (SUCCEEDED(hr))
    161171          {
    162             absPidl = ILCombine (pidlRoot, pidlChild);
     172            absPidl = ODIN_ILCombine (pidlRoot, pidlChild);
    163173            hr = IPersistFolder_Initialize(pPersistFolder, absPidl);
    164174            IPersistFolder_Release(pPersistFolder);
     
    187197        pdump(pidl);
    188198       
    189         if ((pidlFirst = ILCloneFirst(pidl)))
     199        if ((pidlFirst = ODIN_ILCloneFirst(pidl)))
    190200        {
    191201          hr = IShellFolder_BindToObject(psf, pidlFirst, NULL, &IID_IShellFolder, (LPVOID*)&psfChild);
     
    202212            IShellFolder_Release(psfChild);
    203213          }
    204           ILFree(pidlFirst);
     214          ODIN_ILFree(pidlFirst);
    205215        }
    206216
     
    518528          int len;
    519529
    520           sf->absPidl = ILCombine(This->absPidl, pidl); /* build a absolute pidl */
     530          sf->absPidl = ODIN_ILCombine(This->absPidl, pidl);    /* build a absolute pidl */
    521531
    522532          if (!_ILIsSpecialFolder(pidl))                                /* only file system paths */
     
    752762             && SUCCEEDED(IShellFolder_QueryInterface(pShellFolder, &IID_IPersistFolder, (LPVOID*)&pPersistFolder)))
    753763            {
    754               absPidl = ILCombine (This->absPidl, pidl);
     764              absPidl = ODIN_ILCombine (This->absPidl, pidl);
    755765              IPersistFolder_Initialize(pPersistFolder, absPidl);
    756766              IPersistFolder_Release(pPersistFolder);
     
    764774        else if(_ILIsFolder(pidl))
    765775        {
    766           LPITEMIDLIST pidltemp = ILCloneFirst(pidl);
     776          LPITEMIDLIST pidltemp = ODIN_ILCloneFirst(pidl);
    767777          pShellFolder = IShellFolder_Constructor(iface, pidltemp);
    768           ILFree(pidltemp);
     778          ODIN_ILFree(pidltemp);
    769779        }
    770780        else
     
    888898              if (pidl1 && pidl1->mkid.cb)              /* go deeper? */       
    889899              {
    890                 pidlTemp = ILCloneFirst(pidl1);
     900                pidlTemp = ODIN_ILCloneFirst(pidl1);
    891901                pidl2 = ILGetNext(pidl2);
    892902       
     
    898908                  hr = ResultFromShort(nReturn);
    899909                }
    900                 ILFree(pidlTemp);
     910                ODIN_ILFree(pidlTemp);
    901911              }
    902912              else
     
    10541064          else if (IsEqualIID(riid, &IID_IExtractIconA) && (cidl == 1))
    10551065          {
    1056             pidl = ILCombine(This->absPidl,apidl[0]);
     1066            pidl = ODIN_ILCombine(This->absPidl,apidl[0]);
    10571067            pObj = (LPUNKNOWN)IExtractIconA_Constructor( pidl );
    10581068            SHFree(pidl);
     
    14641474          pidlitem = SHSimpleIDListFromPathA(lpstrNewDir);
    14651475
    1466           pidl = ILCombine(This->absPidl, pidlitem);
     1476          pidl = ODIN_ILCombine(This->absPidl, pidlitem);
    14671477          SHChangeNotifyA(SHCNE_MKDIR, SHCNF_IDLIST, pidl, NULL);
    14681478          SHFree(pidl);
     
    15291539              return E_FAIL;
    15301540            }
    1531             pidl = ILCombine(This->absPidl, apidl[i]);
     1541            pidl = ODIN_ILCombine(This->absPidl, apidl[i]);
    15321542            SHChangeNotifyA(SHCNE_RMDIR, SHCNF_IDLIST, pidl, NULL);
    15331543            SHFree(pidl);
     
    15431553              return E_FAIL;
    15441554            }
    1545             pidl = ILCombine(This->absPidl, apidl[i]);
     1555            pidl = ODIN_ILCombine(This->absPidl, apidl[i]);
    15461556            SHChangeNotifyA(SHCNE_DELETE, SHCNF_IDLIST, pidl, NULL);
    15471557            SHFree(pidl);
     
    17961806          /* combine pidls */
    17971807          SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, &deskpidl);
    1798           firstpidl = ILCloneFirst(pidl);
    1799           completepidl = ILCombine(deskpidl, firstpidl);
     1808          firstpidl = ODIN_ILCloneFirst(pidl);
     1809          completepidl = ODIN_ILCombine(deskpidl, firstpidl);
    18001810
    18011811          pShellFolder = IShellFolder_Constructor(NULL, NULL);
     
    18051815            IPersistFolder_Release(ppf);
    18061816          }
    1807           ILFree(completepidl);
    1808           ILFree(deskpidl);
    1809           ILFree(firstpidl);
     1817          ODIN_ILFree(completepidl);
     1818          ODIN_ILFree(deskpidl);
     1819          ODIN_ILFree(firstpidl);
    18101820        }
    18111821       
     
    22282238          if (!_ILIsDrive(pidl)) return E_INVALIDARG;
    22292239
    2230           pidltemp = ILCloneFirst(pidl);
     2240          pidltemp = ODIN_ILCloneFirst(pidl);
    22312241          pShellFolder = IShellFolder_Constructor(iface, pidltemp);
    2232           ILFree(pidltemp);
     2242          ODIN_ILFree(pidltemp);
    22332243        }
    22342244
Note: See TracChangeset for help on using the changeset viewer.