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

2015-06-08 Thread Karthik Nayak

On 06/08/2015 08:12 PM, Matthieu Moy wrote:

Karthik Nayak karthik@gmail.com writes:


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.


Casting to non-cost when calling free() is a common pattern. I think it
would make more sense to cast at free() time and keep the member const.



Ok! will do that. thanks :)

--
Regards,
Karthik
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2015-06-08 Thread Matthieu Moy
Karthik Nayak karthik@gmail.com writes:

 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.

Casting to non-cost when calling free() is a common pattern. I think it
would make more sense to cast at free() time and keep the member const.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2015-06-06 Thread Karthik Nayak
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.cou...@gmail.com
Mentored-by: Matthieu Moy matthieu@grenoble-inp.fr
Signed-off-by: Karthik Nayak karthik@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