From nobody Mon Apr 28 12:23:25 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZmMzy1KMYz5vJ23; Mon, 28 Apr 2025 12:23:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmMzx3W4Hz3frl; Mon, 28 Apr 2025 12:23:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843005; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W51ebgYRvNqgasjJnAZtYgj3UwslqE0USAzWvRuErno=; b=fh5hUfxGfcE9OdwdXFDEMK+MeZL05vkqCQjNUVhu79alS3Jx9XbxsFGcTLGmt8iUYl4vRm x+bycSSkVSRBNZTkku6rWA8cFirjipF8wiHjZRT/eNYqWcabMhW8wxsN1E23JvBt/DUgHs Rs007BHaSWeRlj+IOnV/ThsU4B72DW4Ru2FzORL2ZQdZp4d2JJFBm3AQnCBH1EUd+W77ai f1pfTyVyPkVFxGxKiMuKxWj1dUlhuahzHRcxJx9hddRn1H6053FTQ8dpmQJSjizyuFwbyK e/1Dipb7GS93JN4ST8dNKLRMO49JqEZtY1+qxJS7Eb0adEvQe/ih7nVNFrNyDQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745843005; a=rsa-sha256; cv=none; b=aKOdrphb7yMnr3NfJWPvSYvLowqySffGXYoMr62anfUYrBTrG0WXkz7ZZA32aM6P6xKO1x Lk2Ldydu12kw8PHuPsGrapGOMD/JzRipjhBLkYlrURX6nSR5HBt6HLSQm0ncXqc1Hu1FL6 9VIDmtZeaZr2JUz2bhwqmIXq3a5rDD1OKIqY1RgW+zoWA8qjhK/mX9gljOkNpnTnpze8gF uXmuvEQr53OUErldC9gBJM021TAY5qoVza7VN6uycsFR9RCpgpPgD5/2dx3DwhJX3vlC6R +5AKEFNyWQgKAOCu2a+3rPVFIWywkIU7MDJaCZuLVDUyY7xToES0+zGjCEtn9g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745843005; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W51ebgYRvNqgasjJnAZtYgj3UwslqE0USAzWvRuErno=; b=r25B99Mive6HLXBr1SoiTzhjJJxc/O0/5PczDuwXK/ZHQ+NeHrqZfz0R4Rrq1uQfjyzEFm b9iQoSk5CV3D6NZCA2vSftv9aeTlV6NgYXm9/CYezMJfTUWIpKVEN18Aizsk9obsfQuE0k RW+UZO7U5BhSdu1NLgRz4JNW40TsRw/R903ChlZOu64XQ0UfYOWRcvkJP4SJ+9Kbue1sKF c7HSRZ38d8QbrY9PE0mcizwPbwPTkUCjszQ3Gk8xhizX1iCrLiVHWMQ01y8QEcABbq0+pb zczKdWkQhf8m66aGVS32pkJhmfu1nE3FLnn6HYQQH8AMSYRJh3b/bbb38rkX2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZmMzx2TPdzbSm; Mon, 28 Apr 2025 12:23:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53SCNPD2025297; Mon, 28 Apr 2025 12:23:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53SCNPqr025294; Mon, 28 Apr 2025 12:23:25 GMT (envelope-from git) Date: Mon, 28 Apr 2025 12:23:25 GMT Message-Id: <202504281223.53SCNPqr025294@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 1dbb1cca9b8b - main - ps(1): Consider references to keywords as immutable List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1dbb1cca9b8b7874f22c06f5340686361c76da47 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=1dbb1cca9b8b7874f22c06f5340686361c76da47 commit 1dbb1cca9b8b7874f22c06f5340686361c76da47 Author: Olivier Certner AuthorDate: 2025-02-28 21:07:14 +0000 Commit: Olivier Certner CommitDate: 2025-04-28 11:56:45 +0000 ps(1): Consider references to keywords as immutable Building on the previous commit that moved the 'width' field from VAR (structure representing the meaning of a keyword) to VARENT (structure representing an actual column in a display), it is now possible to declare the field 'var' of VARENT as a constant reference. At this point, it could be possible to constify the var[] array containing all the recognized keywords. However, we do not do it as a subsequent commit will change the way alias keywords are resolved, causing their fields to be modified to reflect the final values to use after alias resolution. In parsefmt(), forget about allocating a new VAR for the selected keyword to be pointed by the corresponding column (VARENT), and instead just keep a pointer to that structure in var[]. MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49611 --- bin/ps/keyword.c | 5 +---- bin/ps/print.c | 8 ++++---- bin/ps/ps.c | 4 ++-- bin/ps/ps.h | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index f3ff567f2d57..37a4a1711445 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -299,10 +299,7 @@ parsefmt(const char *p, struct velisthead *const var_list, vent->header = hp; } vent->width = strlen(vent->header); - vent->var = malloc(sizeof(*vent->var)); - if (vent->var == NULL) - xo_errx(1, "malloc failed"); - memcpy(vent->var, v, sizeof(*vent->var)); + vent->var = v; STAILQ_INSERT_TAIL(var_list, vent, next_ve); } free(tempstr1); diff --git a/bin/ps/print.c b/bin/ps/print.c index 005268b30d8c..b496858c071b 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -66,7 +66,7 @@ void printheader(void) { - VAR *v; + const VAR *v; struct varent *vent; STAILQ_FOREACH(vent, &varlist, next_ve) @@ -734,7 +734,7 @@ priorityr(KINFO *k, VARENT *ve __unused) * structures. */ static char * -printval(void *bp, VAR *v) +printval(void *bp, const VAR *v) { static char ofmt[32] = "%"; const char *fcp; @@ -785,7 +785,7 @@ printval(void *bp, VAR *v) char * kvar(KINFO *k, VARENT *ve) { - VAR *v; + const VAR *v; v = ve->var; return (printval((char *)((char *)k->ki_p + v->off), v)); @@ -794,7 +794,7 @@ kvar(KINFO *k, VARENT *ve) char * rvar(KINFO *k, VARENT *ve) { - VAR *v; + const VAR *v; v = ve->var; if (!k->ki_valid) diff --git a/bin/ps/ps.c b/bin/ps/ps.c index db3826c958c6..10b3322dc269 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -1192,7 +1192,7 @@ static void scanvars(void) { struct varent *vent; - VAR *v; + const VAR *v; STAILQ_FOREACH(vent, &varlist, next_ve) { v = vent->var; @@ -1207,7 +1207,7 @@ static void format_output(KINFO *ki) { struct varent *vent; - VAR *v; + const VAR *v; KINFO_STR *ks; char *str; u_int len; diff --git a/bin/ps/ps.h b/bin/ps/ps.h index a1ec49cd676b..1787af33021e 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -57,7 +57,7 @@ typedef struct kinfo { typedef struct varent { STAILQ_ENTRY(varent) next_ve; const char *header; - struct var *var; + const struct var *var; u_int width; } VARENT; STAILQ_HEAD(velisthead, varent);