git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[WIP/PATCH v5 03/10] for-each-ref: rename 'refinfo' to 'ref_array_item'

From
Karthik Nayak <karthik.188@gmail.com>
Date
Jun 6, 2015, 07:09 UTC
Message-ID
<1433574581-23980-3-git-send-email-karthik.188@gmail.com>
In-Reply-To
<1433574581-23980-1-git-send-email-karthik.188@gmail.com>

Rename 'refinfo' to 'ref_array_item' as a preparatory step for introduction of new structures in the forthcoming patch.

Re-order the fields in 'ref_array_item' so that refname can be eventually converted to a FLEX_ARRAY.

Make 'symref' a non const char pointer, so that the compiler doesn't throw an error when we try to free the memory allocated to it.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
---
 builtin/for-each-ref.c | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/builtin/for-each-ref.c b/builtin/for-each-ref.c
index 0ca9836..b8d17b6 100644
--- a/builtin/for-each-ref.c
+++ b/builtin/for-each-ref.c
@@ -31,12 +31,12 @@ struct ref_sort {
 	unsigned reverse : 1;
 };
 
-struct refinfo {
-	char *refname;
+struct ref_array_item {
 	unsigned char objectname[20];
 	int flag;
-	const char *symref;
+	char *symref;
 	struct atom_value *value;
+	char *refname;
 };
 
 static struct {
@@ -85,7 +85,7 @@ static struct {
  * a "*" to denote deref_tag().
  *
  * We parse given format string and sort specifiers, and make a list
- * of properties that we need to extract out of objects.  refinfo
+ * of properties that we need to extract out of objects.  ref_array_item
  * structure will hold an array of values extracted that can be
  * indexed with the "atom number", which is an index into this
  * array.
@@ -622,7 +622,7 @@ static inline char *copy_advance(char *dst, const char *src)
 /*
  * Parse the object referred by ref, and grab needed value.
  */
-static void populate_value(struct refinfo *ref)
+static void populate_value(struct ref_array_item *ref)
 {
 	void *buf;
 	struct object *obj;
@@ -821,7 +821,7 @@ static void populate_value(struct refinfo *ref)
  * Given a ref, return the value for the atom.  This lazily gets value
  * out of the object by calling populate value.
  */
-static void get_value(struct refinfo *ref, int atom, struct atom_value **v)
+static void get_value(struct ref_array_item *ref, int atom, struct atom_value **v)
 {
 	if (!ref->value) {
 		populate_value(ref);
@@ -831,7 +831,7 @@ static void get_value(struct refinfo *ref, int atom, struct atom_value **v)
 }
 
 struct grab_ref_cbdata {
-	struct refinfo **grab_array;
+	struct ref_array_item **grab_array;
 	const char **grab_pattern;
 	int grab_cnt;
 };
@@ -860,12 +860,12 @@ static int match_name_as_path(const char **pattern, const char *refname)
 	return 0;
 }
 
-/* Allocate space for a new refinfo and copy the objectname and flag to it */
-static struct refinfo *new_refinfo(const char *refname,
-				   const unsigned char *objectname,
-				   int flag)
+/* Allocate space for a new ref_array_item and copy the objectname and flag to it */
+static struct ref_array_item *new_ref_array_item(const char *refname,
+						 const unsigned char *objectname,
+						 int flag)
 {
-	struct refinfo *ref = xcalloc(1, sizeof(struct refinfo));
+	struct ref_array_item *ref = xcalloc(1, sizeof(struct ref_array_item));
 	ref->refname = xstrdup(refname);
 	hashcpy(ref->objectname, objectname);
 	ref->flag = flag;
@@ -880,7 +880,7 @@ static struct refinfo *new_refinfo(const char *refname,
 static int grab_single_ref(const char *refname, const unsigned char *sha1, int flag, void *cb_data)
 {
 	struct grab_ref_cbdata *cb = cb_data;
-	struct refinfo *ref;
+	struct ref_array_item *ref;
 
 	if (flag & REF_BAD_NAME) {
 		  warning("ignoring ref with broken name %s", refname);
@@ -895,14 +895,14 @@ static int grab_single_ref(const char *refname, const unsigned char *sha1, int f
 	 * to do its job and the resulting list may yet to be pruned
 	 * by maxcount logic.
 	 */
-	ref = new_refinfo(refname, sha1, flag);
+	ref = new_ref_array_item(refname, sha1, flag);
 
 	REALLOC_ARRAY(cb->grab_array, cb->grab_cnt + 1);
 	cb->grab_array[cb->grab_cnt++] = ref;
 	return 0;
 }
 
-static int cmp_ref_sort(struct ref_sort *s, struct refinfo *a, struct refinfo *b)
+static int cmp_ref_sort(struct ref_sort *s, struct ref_array_item *a, struct ref_array_item *b)
 {
 	struct atom_value *va, *vb;
 	int cmp;
@@ -929,8 +929,8 @@ static int cmp_ref_sort(struct ref_sort *s, struct refinfo *a, struct refinfo *b
 static struct ref_sort *ref_sort;
 static int compare_refs(const void *a_, const void *b_)
 {
-	struct refinfo *a = *((struct refinfo **)a_);
-	struct refinfo *b = *((struct refinfo **)b_);
+	struct ref_array_item *a = *((struct ref_array_item **)a_);
+	struct ref_array_item *b = *((struct ref_array_item **)b_);
 	struct ref_sort *s;
 
 	for (s = ref_sort; s; s = s->next) {
@@ -941,10 +941,10 @@ static int compare_refs(const void *a_, const void *b_)
 	return 0;
 }
 
-static void sort_refs(struct ref_sort *sort, struct refinfo **refs, int num_refs)
+static void sort_refs(struct ref_sort *sort, struct ref_array_item **refs, int num_refs)
 {
 	ref_sort = sort;
-	qsort(refs, num_refs, sizeof(struct refinfo *), compare_refs);
+	qsort(refs, num_refs, sizeof(struct ref_array_item *), compare_refs);
 }
 
 static void print_value(struct atom_value *v, int quote_style)
@@ -1011,7 +1011,7 @@ static void emit(const char *cp, const char *ep)
 	}
 }
 
-static void show_ref(struct refinfo *info, const char *format, int quote_style)
+static void show_ref(struct ref_array_item *info, const char *format, int quote_style)
 {
 	const char *cp, *sp, *ep;
 
@@ -1084,7 +1084,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
 	const char *format = "%(objectname) %(objecttype)\t%(refname)";
 	struct ref_sort *sort = NULL, **sort_tail = &sort;
 	int maxcount = 0, quote_style = 0;
-	struct refinfo **refs;
+	struct ref_array_item **refs;
 	struct grab_ref_cbdata cbdata;
 
 	struct option opts[] = {
-- 
2.4.2
Previous: Matthieu MoyNext: Matthieu Moy
Message 7 of 27 in “create ref-filter from for-each-ref”
  1. 0/10 create ref-filter from for-each-refKarthik Nayak, Jun 6, 2015
  2. 01/10 for-each-ref: extract helper functions out of grab_single_ref()Karthik Nayak, Jun 6, 2015
  3. 02/10 for-each-ref: clean up codeKarthik Nayak, Jun 6, 2015
  4. Matthieu MoyJun 8, 2015
  5. Karthik NayakJun 8, 2015
  6. Matthieu MoyJun 8, 2015
  7. 03/10 for-each-ref: rename 'refinfo' to 'ref_array_item'Karthik Nayak, Jun 6, 2015
  8. Matthieu MoyJun 8, 2015
  9. Karthik NayakJun 8, 2015
  10. 04/10 for-each-ref: introduce new structures for better organisationKarthik Nayak, Jun 6, 2015
  11. 05/10 for-each-ref: introduce 'ref_array_clear()'Karthik Nayak, Jun 6, 2015
  12. Matthieu MoyJun 8, 2015
  13. Karthik NayakJun 8, 2015
  14. Karthik NayakJun 8, 2015
  15. Matthieu MoyJun 8, 2015
  16. Junio C HamanoJun 8, 2015
  17. Matthieu MoyJun 8, 2015
  18. Karthik NayakJun 8, 2015
  19. Matthieu MoyJun 9, 2015
  20. 06/10 for-each-ref: rename some functions and make them publicKarthik Nayak, Jun 6, 2015
  21. 07/10 ref-filter: add 'ref-filter.h'Karthik Nayak, Jun 6, 2015
  22. 08/10 ref-filter: move code from 'for-each-ref'Karthik Nayak, Jun 6, 2015
  23. 09/10 for-each-ref: introduce filter_refs()Karthik Nayak, Jun 6, 2015
  24. 10/10 ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refnameKarthik Nayak, Jun 6, 2015
  25. Christian CouderJun 6, 2015
  26. Karthik NayakJun 6, 2015
  27. Karthik NayakJun 6, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.