From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS22989 209.51.188.0/24 X-Spam-Status: No, score=-3.8 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 9A29D1F5AE for ; Sat, 12 Jun 2021 00:27:02 +0000 (UTC) Received: from localhost ([::1]:59528 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lrrUL-00015F-ML for normalperson@yhbt.net; Fri, 11 Jun 2021 20:27:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54306) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lrrTs-0000XI-Rh for bug-gnulib@gnu.org; Fri, 11 Jun 2021 20:26:32 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:39222) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lrrTq-0003w2-KH for bug-gnulib@gnu.org; Fri, 11 Jun 2021 20:26:32 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id AC35D16011A for ; Fri, 11 Jun 2021 17:26:18 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id UnxYvSufSRki; Fri, 11 Jun 2021 17:26:12 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 6232716012F; Fri, 11 Jun 2021 17:26:12 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id ufOlBzoNFCRC; Fri, 11 Jun 2021 17:26:12 -0700 (PDT) Received: from day.example.com (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 30226160095; Fri, 11 Jun 2021 17:26:11 -0700 (PDT) From: Paul Eggert To: bug-gnulib@gnu.org Subject: [PATCH 10/13] savedir: prefer idx_t for indexes Date: Fri, 11 Jun 2021 17:25:50 -0700 Message-Id: <20210612002553.1105537-10-eggert@cs.ucla.edu> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210612002553.1105537-1-eggert@cs.ucla.edu> References: <20210612002553.1105537-1-eggert@cs.ucla.edu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=131.179.128.68; envelope-from=eggert@cs.ucla.edu; helo=zimbra.cs.ucla.edu X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paul Eggert Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: "bug-gnulib" * lib/savedir.c (streamsavedir): Prefer idx_t to size_t for indexes, using idx_t-related allocators. --- ChangeLog | 1 + lib/savedir.c | 14 ++++++-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index be79b866c..93039a69a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,7 @@ * lib/linebuffer.h (struct linebuffer): * lib/readtokens.c (readtoken, readtokens): * lib/readutmp.c (read_utmp): + * lib/savedir.c (streamsavedir): Prefer idx_t to size_t for indexes, and use idx_t-related allocators. * lib/basename.c: Do not include xstrndup.h. (basename): Simplify by always using memcpy. diff --git a/lib/savedir.c b/lib/savedir.c index 1c23d75b6..55e0acd87 100644 --- a/lib/savedir.c +++ b/lib/savedir.c @@ -93,7 +93,7 @@ streamsavedir (DIR *dirp, enum savedir_option option) char *name_space =3D NULL; idx_t allocated =3D 0; direntry_t *entries =3D NULL; - size_t entries_allocated =3D 0; + idx_t entries_allocated =3D 0; idx_t entries_used =3D 0; idx_t used =3D 0; comparison_function cmp =3D comparison_function_table[option]; @@ -120,8 +120,8 @@ streamsavedir (DIR *dirp, enum savedir_option option) if (cmp) { if (entries_allocated =3D=3D entries_used) - entries =3D x2nrealloc (entries, &entries_allocated, - sizeof *entries); + entries =3D xpalloc (entries, &entries_allocated, 1, -1, + sizeof *entries); entries[entries_used].name =3D xstrdup (entry); #if D_INO_IN_DIRENT entries[entries_used].ino =3D dp->d_ino; @@ -149,13 +149,11 @@ streamsavedir (DIR *dirp, enum savedir_option optio= n) =20 if (cmp) { - size_t i; - if (entries_used) qsort (entries, entries_used, sizeof *entries, cmp); - name_space =3D xmalloc (used + 1); + name_space =3D ximalloc (used + 1); used =3D 0; - for (i =3D 0; i < entries_used; i++) + for (idx_t i =3D 0; i < entries_used; i++) { char *dest =3D name_space + used; used +=3D stpcpy (dest, entries[i].name) - dest + 1; @@ -164,7 +162,7 @@ streamsavedir (DIR *dirp, enum savedir_option option) free (entries); } else if (used =3D=3D allocated) - name_space =3D xrealloc (name_space, used + 1); + name_space =3D xirealloc (name_space, used + 1); =20 name_space[used] =3D '\0'; return name_space; --=20 2.30.2