From 29fb37b272debaf4f5f6eb7cf476de9274492930 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Sat, 13 Apr 2013 15:28:30 +0200 Subject: attr.c: extract read_index_data() as read_blob_data_from_index() Extract the read_index_data() function from attr.c and move it to read-cache.c; rename it to read_blob_data_from_index() and update the function signature of it to align better with index/cache API functions. This allows for reusing the function in convert.c later. Signed-off-by: Lukas Fleischer Signed-off-by: Junio C Hamano --- attr.c | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) (limited to 'attr.c') diff --git a/attr.c b/attr.c index 23be4abf44..243d60ffa9 100644 --- a/attr.c +++ b/attr.c @@ -381,46 +381,13 @@ static struct attr_stack *read_attr_from_file(const char *path, int macro_ok) return res; } -static void *read_index_data(const char *path) -{ - int pos, len; - unsigned long sz; - enum object_type type; - void *data; - struct index_state *istate = use_index ? use_index : &the_index; - - len = strlen(path); - pos = index_name_pos(istate, path, len); - if (pos < 0) { - /* - * We might be in the middle of a merge, in which - * case we would read stage #2 (ours). - */ - int i; - for (i = -pos - 1; - (pos < 0 && i < istate->cache_nr && - !strcmp(istate->cache[i]->name, path)); - i++) - if (ce_stage(istate->cache[i]) == 2) - pos = i; - } - if (pos < 0) - return NULL; - data = read_sha1_file(istate->cache[pos]->sha1, &type, &sz); - if (!data || type != OBJ_BLOB) { - free(data); - return NULL; - } - return data; -} - static struct attr_stack *read_attr_from_index(const char *path, int macro_ok) { struct attr_stack *res; char *buf, *sp; int lineno = 0; - buf = read_index_data(path); + buf = read_blob_data_from_index(use_index ? use_index : &the_index, path); if (!buf) return NULL; -- cgit v1.2.1 From ff36682505dfb580172306fe1b265b860f89bcea Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Sat, 13 Apr 2013 15:28:31 +0200 Subject: read_blob_data_from_index(): optionally return the size of blob data This allows for optionally getting the size of the returned data and will be used in a follow-up patch. Signed-off-by: Lukas Fleischer Signed-off-by: Junio C Hamano --- attr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'attr.c') diff --git a/attr.c b/attr.c index 243d60ffa9..09e7e50d3e 100644 --- a/attr.c +++ b/attr.c @@ -387,7 +387,7 @@ static struct attr_stack *read_attr_from_index(const char *path, int macro_ok) char *buf, *sp; int lineno = 0; - buf = read_blob_data_from_index(use_index ? use_index : &the_index, path); + buf = read_blob_data_from_index(use_index ? use_index : &the_index, path, NULL); if (!buf) return NULL; -- cgit v1.2.1