From: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
To: linux-sparse@vger.kernel.org
Cc: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Subject: [PATCH 6/6] ptrlist: change return value of linearize_ptr_list()/ptr_list_to_array()
Date: Sat, 6 Mar 2021 11:05:52 +0100 [thread overview]
Message-ID: <20210306100552.33784-7-luc.vanoostenryck@gmail.com> (raw)
In-Reply-To: <20210306100552.33784-1-luc.vanoostenryck@gmail.com>
The function linearize_ptr_list() is annoying to use because it
returns the number of elements put in the array. So, if you need
to know if the list contained the expected number of entries,
you need to allocate to array with one more entries and check
that the return value is one less than the maximum size.
Change this, so that this function returns the total number of
entries in the list, much like it's done for snprintf().
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
---
ptrlist.c | 10 +++++-----
simplify.c | 4 ++--
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/ptrlist.c b/ptrlist.c
index 0f0b3f6d818f..ecfbc07b2b6d 100644
--- a/ptrlist.c
+++ b/ptrlist.c
@@ -154,10 +154,10 @@ void *ptr_list_nth_entry(struct ptr_list *list, unsigned int idx)
// @head: the list to be linearized
// @arr: a ``void*`` array to fill with @head's entries
// @max: the maximum number of entries to store into @arr
-// @return: the number of entries linearized.
+// @return: the number of entries in the list.
//
// Linearize the entries of a list up to a total of @max,
-// and return the nr of entries linearized.
+// and return the nunmber of entries in the list.
//
// The array to linearize into (@arr) should really
// be ``void *x[]``, but we want to let people fill in any kind
@@ -170,14 +170,14 @@ int linearize_ptr_list(struct ptr_list *head, void **arr, int max)
do {
int i = list->nr;
+ nr += i;
+ if (max == 0)
+ continue;
if (i > max)
i = max;
memcpy(arr, list->list, i*sizeof(void *));
arr += i;
- nr += i;
max -= i;
- if (!max)
- break;
} while ((list = list->next) != head);
}
return nr;
diff --git a/simplify.c b/simplify.c
index cf5b3d748808..207af8edf28f 100644
--- a/simplify.c
+++ b/simplify.c
@@ -108,7 +108,7 @@ static int get_phisources(struct instruction *sources[], int nbr, struct instruc
static int if_convert_phi(struct instruction *insn)
{
struct instruction *array[2];
- struct basic_block *parents[3];
+ struct basic_block *parents[2];
struct basic_block *bb, *bb1, *bb2, *source;
struct instruction *br;
pseudo_t p1, p2;
@@ -116,7 +116,7 @@ static int if_convert_phi(struct instruction *insn)
bb = insn->bb;
if (get_phisources(array, 2, insn))
return 0;
- if (ptr_list_to_array(bb->parents, parents, 3) != 2)
+ if (ptr_list_to_array(bb->parents, parents, 2) != 2)
return 0;
p1 = array[0]->phi_src;
bb1 = array[0]->bb;
--
2.30.0
next prev parent reply other threads:[~2021-03-06 10:07 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-06 10:05 [PATCH 0/6] small changes to ptrlist API Luc Van Oostenryck
2021-03-06 10:05 ` [PATCH 1/6] ptrlist: ~fix TYPEOF() Luc Van Oostenryck
2021-03-06 16:19 ` Ramsay Jones
2021-03-06 10:05 ` [PATCH 2/6] ptrlist: change TYPEOF() into PTRLIST_TYPE() Luc Van Oostenryck
2021-03-06 16:20 ` Ramsay Jones
2021-03-06 10:05 ` [PATCH 3/6] ptrlist: add pop_ptr_list() Luc Van Oostenryck
2021-03-06 16:22 ` Ramsay Jones
2021-03-06 10:05 ` [PATCH 4/6] ptrlist: use ptr_list_nth() instead of linearize_ptr_list() Luc Van Oostenryck
2021-03-06 16:24 ` Ramsay Jones
2021-03-06 10:05 ` [PATCH 5/6] ptrlist: make linearize_ptr_list() generic Luc Van Oostenryck
2021-03-06 16:35 ` Ramsay Jones
2021-03-06 22:05 ` Luc Van Oostenryck
2021-03-06 10:05 ` Luc Van Oostenryck [this message]
2021-03-06 16:43 ` [PATCH 6/6] ptrlist: change return value of linearize_ptr_list()/ptr_list_to_array() Ramsay Jones
2021-03-06 17:46 ` Luc Van Oostenryck
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=20210306100552.33784-7-luc.vanoostenryck@gmail.com \
--to=luc.vanoostenryck@gmail.com \
--cc=linux-sparse@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).