From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2155) id 15F6E385C6F7; Wed, 27 Mar 2024 20:58:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 15F6E385C6F7 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1711573103; bh=5nUPjUwLtxPjCKCBZd0Mq70hsXQ6RUrKoegbyvBYmGQ=; h=From:To:Subject:Date:From; b=Tb7yg/lng4mI7a/tpEwEBaMsypzQTD9fnZKF08csacC7LapljeL7x7vY9+wZKtZiy mBNYQCWZvaC3jZ87IrU4KD46v9wAJG4gsKLuL/hprkkGXq1fjLEXfj2H4JBm5w98ON bprgOJYVgeQa/+whZr8KAcbLCwFBwUAsMxZPkRVQ= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin/main] Cygwin: //: fetch only one item per loop X-Act-Checkin: newlib-cygwin X-Git-Author: Corinna Vinschen X-Git-Refname: refs/heads/main X-Git-Oldrev: 7dd4eb1db9e1b1b9f14ef5b743705156e5f370e1 X-Git-Newrev: b7f5a33200a91ee76f5364280ad40bafedfab142 Message-Id: <20240327205823.15F6E385C6F7@sourceware.org> Date: Wed, 27 Mar 2024 20:58:23 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3Db7f5a33200a= 91ee76f5364280ad40bafedfab142 commit b7f5a33200a91ee76f5364280ad40bafedfab142 Author: Corinna Vinschen AuthorDate: Wed Mar 27 21:57:32 2024 +0100 Commit: Corinna Vinschen CommitDate: Wed Mar 27 21:57:32 2024 +0100 Cygwin: //: fetch only one item per loop =20 Simplify code in that it only fetches a single entry per IEnumShellItems::Next call. For some reason this appears to be quicker most of the time. =20 Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/fhandler/netdrive.cc | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/winsup/cygwin/fhandler/netdrive.cc b/winsup/cygwin/fhandler/ne= tdrive.cc index 799ae9cb8e0b..90e5a22175d8 100644 --- a/winsup/cygwin/fhandler/netdrive.cc +++ b/winsup/cygwin/fhandler/netdrive.cc @@ -234,24 +234,20 @@ thread_netdrive_wsd (void *arg) =20 do { - IShellItem *netitem[10] =3D { 0 }; + IShellItem *netitem =3D NULL; LPWSTR item_name =3D NULL; - ULONG count; =20 - wres =3D netitem_enum->Next (10, netitem, &count); - if (SUCCEEDED (wres) && count > 0) + wres =3D netitem_enum->Next (1, &netitem, NULL); + if (wres =3D=3D S_OK) { - for (ULONG idx =3D 0; idx < count; ++idx) + if (netitem->GetDisplayName (SIGDN_PARENTRELATIVEPARSING, + &item_name) =3D=3D S_OK) { - if (netitem[idx]->GetDisplayName (SIGDN_PARENTRELATIVEPARSING, - &item_name) =3D=3D S_OK) - { - /* Skip "\\" on server names and downcase */ - DIR_cache.add (item_name + 2, true); - CoTaskMemFree (item_name); - } - netitem[idx]->Release (); + /* Skip "\\" on server names and downcase */ + DIR_cache.add (item_name + 2, true); + CoTaskMemFree (item_name); } + netitem->Release (); } } while (wres =3D=3D S_OK);