From 6ac6c1f4b453b5bb90b27f273f9a143cc27b448d Mon Sep 17 00:00:00 2001 From: Michael Haggerty Date: Wed, 19 Oct 2011 23:44:44 +0200 Subject: [PATCH] create_ref_entry(): extract function from add_ref() Separate the creation of the ref_entry from its addition to a ref_array. Signed-off-by: Michael Haggerty Signed-off-by: Junio C Hamano --- refs.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/refs.c b/refs.c index 752938c23c..acb098c3d2 100644 --- a/refs.c +++ b/refs.c @@ -57,27 +57,33 @@ static const char *parse_ref_line(char *line, unsigned char *sha1) return line; } +static struct ref_entry *create_ref_entry(const char *refname, + const unsigned char *sha1, int flag) +{ + int len; + struct ref_entry *ref; + + if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL|REFNAME_DOT_COMPONENT)) + die("Reference has invalid format: '%s'", refname); + len = strlen(refname) + 1; + ref = xmalloc(sizeof(struct ref_entry) + len); + hashcpy(ref->sha1, sha1); + hashclr(ref->peeled); + memcpy(ref->name, refname, len); + ref->flag = flag; + return ref; +} + /* Add a ref_entry to the end of the ref_array (unsorted). */ static void add_ref(const char *refname, const unsigned char *sha1, int flag, struct ref_array *refs, - struct ref_entry **new_entry) + struct ref_entry **new_ref) { - int len; - struct ref_entry *entry; - - /* Allocate it and add it in.. */ - len = strlen(refname) + 1; - entry = xmalloc(sizeof(struct ref_entry) + len); - hashcpy(entry->sha1, sha1); - hashclr(entry->peeled); - if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL|REFNAME_DOT_COMPONENT)) - die("Reference has invalid format: '%s'", refname); - memcpy(entry->name, refname, len); - entry->flag = flag; - if (new_entry) - *new_entry = entry; + struct ref_entry *ref = create_ref_entry(refname, sha1, flag); + if (new_ref) + *new_ref = ref; ALLOC_GROW(refs->refs, refs->nr + 1, refs->alloc); - refs->refs[refs->nr++] = entry; + refs->refs[refs->nr++] = ref; } static int ref_entry_cmp(const void *a, const void *b)