ShellPath ShellEntry::create_absolute_pidl() const { CONTEXT("ShellEntry::create_absolute_pidl()"); if (_up) { ShellDirectory* dir = _up; if (dir->_pidl->mkid.cb) // Caching of absolute PIDLs could enhance performance. return _pidl.create_absolute_pidl(dir->create_absolute_pidl()); } return _pidl; }
ShellPath ShellEntry::create_absolute_pidl() const { CONTEXT("ShellEntry::create_absolute_pidl()"); if (_up) { if (_up->_etype == ET_SHELL) { ShellDirectory* dir = static_cast<ShellDirectory*>(_up); if (dir->_pidl->mkid.cb) // Caching of absolute PIDLs could enhance performance. return _pidl.create_absolute_pidl(dir->create_absolute_pidl()); } else return _pidl.create_absolute_pidl(_up->create_absolute_pidl()); } return _pidl; }