From nobody Thu May 1 19:51:33 2025 X-Original-To: dev-commits-src-branches@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 4ZpPnf4xSFz5vf30; Thu, 01 May 2025 19:51:34 +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 4ZpPnf04v3z46fk; Thu, 01 May 2025 19:51:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129094; 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=wuR2p1hQc+S4RGsZEnpy4jZXqRGcs9w83ASp0Y+5TGI=; b=v6SJaqoyeHkv16uptArVandL0qObfQRmEXztZ07dmCr12yO0Gdy+sGHK299+wGq13+z8GV UIXVJ7kroJBJg5Oeg4/K/9JFDc29Uj/UJRoF5GpCzL2vldt1uEapz+vdadmnoP+nglffVK RLXHhqTODDatWOAsVlNUwJe5TuxALse0YKgSk1jE2TXx2FH2H5tdS4S8T7zcPeHfkwoG9I zKjSPCUzDuLcCE2iLka6K0IYVUlgKfEc2XQVC7PlyXKxHUeKjJ4myUXKir5Y7H+/LetkKK OaUFtg6i3BBAYflsiWn6x3F6z2kv7sxoVCxU2qXmySQyZwNlqw05riWgf38rUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129094; 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=wuR2p1hQc+S4RGsZEnpy4jZXqRGcs9w83ASp0Y+5TGI=; b=bUXfyHKTOcWWDlATpAdeJVdHVkPeP5+fsezIwudJLELvNyiOxYmVCj2CY6HX2KRA6Mk3LH rz3EG8hqw2zWHHbCJ8MTqBFkfHhNIB+Xw0skwt6u2IKGP2yzM8EyBlscpre+uFlnWrWdQX +UD5NzQJDJLUm0J17hBNWeZaTTzet1vOGHSe+jlLphP4WWD+dTMHnPXG8aVb3jHCUMjHOz 6LMUbNokhQdnnj0Jx6SgCWaN8BOodPKF6063zHEos1xZk5SRp+bhWe5OZx5Lvxvkr91haJ MKbHw5Im8GcqvlY8w1B9cjKF9z4X0JKNYgDEWnkpI1FMWHvdnz+PgbPNe5Ew2w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129094; a=rsa-sha256; cv=none; b=fY+caugL5gVW8EVp0eOR/r1bwn4LY1reHeqzlgAtWTGl8oqCuIQ8QPnDtYecwg3gZEGEGF dUI5BDx48HCiLOH/SmQdlkOsr2xJ4TdQXtEhIatctckb0uVBFt0yovvbFr0ki18Zu5gqHv 90Vgvjh3NLmP3lXhCAxvcf/dms6RA0D6p8uzyxDhT8bHbeB5bz+9v/5nkvhEImzzKfuMeT uz9pxgsArISWNOSXRMyHKZSjLWOGOGTaU99v+dVciAEQTd7dbTvm5vCdGe6KHB3AWrlQ7N np/jJm3fCdazxP3cmOLEaP7ESB0wRELMJd3CcUxDdHeNeUcfQOotvWX87Oryeg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnd6khLzj9W; Thu, 01 May 2025 19:51:33 +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 541JpXqm067347; Thu, 1 May 2025 19:51:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpXjI067344; Thu, 1 May 2025 19:51:33 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:33 GMT Message-Id: <202505011951.541JpXjI067344@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 21d9f3d9f0d7 - stable/14 - ps(1): Consider references to keywords as immutable List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 21d9f3d9f0d77b315567eaa0acf153cba17e23ef Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=21d9f3d9f0d77b315567eaa0acf153cba17e23ef commit 21d9f3d9f0d77b315567eaa0acf153cba17e23ef Author: Olivier Certner AuthorDate: 2025-02-28 21:07:14 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:03 +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 (cherry picked from commit 1dbb1cca9b8b7874f22c06f5340686361c76da47) --- 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 823018f12ba5..40986550b92b 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -305,10 +305,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 d7d3fd1339dc..a3f8f244648d 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -73,7 +73,7 @@ static char sccsid[] = "@(#)print.c 8.6 (Berkeley) 4/16/94"; void printheader(void) { - VAR *v; + const VAR *v; struct varent *vent; STAILQ_FOREACH(vent, &varlist, next_ve) @@ -745,7 +745,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; @@ -796,7 +796,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)); @@ -805,7 +805,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 44e6ecd32498..fe100170b7e2 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -1217,7 +1217,7 @@ static void scanvars(void) { struct varent *vent; - VAR *v; + const VAR *v; STAILQ_FOREACH(vent, &varlist, next_ve) { v = vent->var; @@ -1232,7 +1232,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 838aea33f3aa..800e732262e9 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -59,7 +59,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);