From: David Gibson <david@gibson.dropbear.id.au>
To: Ayush Singh <ayush@beagleboard.org>
Cc: Andreas Gnau <andreas.gnau@iopsys.eu>,
d-gole@ti.com, lorforlinux@beagleboard.org,
jkridner@beagleboard.org, robertcnelson@beagleboard.org,
Andrew Davis <afd@ti.com>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Simon Glass <sjg@chromium.org>,
devicetree-compiler@vger.kernel.org
Subject: Re: [PATCH v3 1/4] srcpos: Define srcpos_free
Date: Mon, 9 Jun 2025 22:39:43 +1000 [thread overview]
Message-ID: <aEbWD5VSvX7X3_OK@zatzit> (raw)
In-Reply-To: <20250605-previous-value-v3-1-0983d0733a07@beagleboard.org>
[-- Attachment #1: Type: text/plain, Size: 2393 bytes --]
On Thu, Jun 05, 2025 at 04:18:06PM +0530, Ayush Singh wrote:
> srcpos can be chained together using srcpos_extend. However, in such
> cases, we need to free all the chained nodes.
>
> srcpos_free is a helper to recursively free all the linked srcpos.
>
> Signed-off-by: Ayush Singh <ayush@beagleboard.org>
Merged, thanks.
> ---
> livetree.c | 2 +-
> srcpos.c | 11 +++++++++++
> srcpos.h | 1 +
> 3 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/livetree.c b/livetree.c
> index 93c77d95a320ec05aa355e12920cef9e1c91c26a..d51d05830b181476ddbab878ef8b556230b58e2b 100644
> --- a/livetree.c
> +++ b/livetree.c
> @@ -174,7 +174,7 @@ struct node *merge_nodes(struct node *old_node, struct node *new_node)
>
> old_prop->val = new_prop->val;
> old_prop->deleted = 0;
> - free(old_prop->srcpos);
> + srcpos_free(old_prop->srcpos);
> old_prop->srcpos = new_prop->srcpos;
> free(new_prop);
> new_prop = NULL;
> diff --git a/srcpos.c b/srcpos.c
> index 5e2f7dd299184ff86b00b280dc31498cb9830e28..5bb57bf6856c6ff6b8eb993aff5d216c63bf5ecb 100644
> --- a/srcpos.c
> +++ b/srcpos.c
> @@ -287,6 +287,17 @@ struct srcpos *srcpos_extend(struct srcpos *pos, struct srcpos *newtail)
> return pos;
> }
>
> +void srcpos_free(struct srcpos *pos)
> +{
> + struct srcpos *p_next;
> +
> + while (pos) {
> + p_next = pos->next;
> + free(pos);
> + pos = p_next;
> + }
> +}
> +
> char *
> srcpos_string(struct srcpos *pos)
> {
> diff --git a/srcpos.h b/srcpos.h
> index 4318d7ad34d91d2ada1a5d7f92d2c84148fec366..4d60b50e31197c2da6a7fa8851c5e5a6717d78a6 100644
> --- a/srcpos.h
> +++ b/srcpos.h
> @@ -88,6 +88,7 @@ extern void srcpos_update(struct srcpos *pos, const char *text, int len);
> extern struct srcpos *srcpos_copy(struct srcpos *pos);
> extern struct srcpos *srcpos_extend(struct srcpos *new_srcpos,
> struct srcpos *old_srcpos);
> +extern void srcpos_free(struct srcpos *pos);
> extern char *srcpos_string(struct srcpos *pos);
> extern char *srcpos_string_first(struct srcpos *pos, int level);
> extern char *srcpos_string_last(struct srcpos *pos, int level);
>
--
David Gibson (he or they) | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you, not the other way
| around.
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2025-06-09 15:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-05 10:48 [PATCH v3 0/4] Add capability to create property from old property Ayush Singh
2025-06-05 10:48 ` [PATCH v3 1/4] srcpos: Define srcpos_free Ayush Singh
2025-06-09 12:39 ` David Gibson [this message]
2025-06-05 10:48 ` [PATCH v3 2/4] dtc: Add data_insert_data function Ayush Singh
2025-06-12 10:56 ` David Gibson
2025-06-05 10:48 ` [PATCH v3 3/4] dtc: Add /./ Ayush Singh
2025-06-05 10:48 ` [PATCH v3 4/4] tests: Add test for /./ Ayush Singh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aEbWD5VSvX7X3_OK@zatzit \
--to=david@gibson.dropbear.id.au \
--cc=afd@ti.com \
--cc=andreas.gnau@iopsys.eu \
--cc=ayush@beagleboard.org \
--cc=d-gole@ti.com \
--cc=devicetree-compiler@vger.kernel.org \
--cc=geert@linux-m68k.org \
--cc=jkridner@beagleboard.org \
--cc=lorforlinux@beagleboard.org \
--cc=robertcnelson@beagleboard.org \
--cc=sjg@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.