diff options
-rw-r--r-- | attr.c | 2 | ||||
-rw-r--r-- | cache.h | 4 | ||||
-rw-r--r-- | read-cache.c | 4 |
3 files changed, 6 insertions, 4 deletions
@@ -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; @@ -307,7 +307,7 @@ extern void free_name_hash(struct index_state *istate); #define resolve_undo_clear() resolve_undo_clear_index(&the_index) #define unmerge_cache_entry_at(at) unmerge_index_entry_at(&the_index, at) #define unmerge_cache(pathspec) unmerge_index(&the_index, pathspec) -#define read_blob_data_from_cache(path) read_blob_data_from_index(&the_index, (path)) +#define read_blob_data_from_cache(path, sz) read_blob_data_from_index(&the_index, (path), (sz)) #endif enum object_type { @@ -453,7 +453,7 @@ extern int add_file_to_index(struct index_state *, const char *path, int flags); extern struct cache_entry *make_cache_entry(unsigned int mode, const unsigned char *sha1, const char *path, int stage, int refresh); extern int ce_same_name(struct cache_entry *a, struct cache_entry *b); extern int index_name_is_other(const struct index_state *, const char *, int); -extern void *read_blob_data_from_index(struct index_state *, const char *); +extern void *read_blob_data_from_index(struct index_state *, const char *, unsigned long *); /* do stat comparison even if CE_VALID is true */ #define CE_MATCH_IGNORE_VALID 01 diff --git a/read-cache.c b/read-cache.c index 48d87e83ed..8c27ed2c66 100644 --- a/read-cache.c +++ b/read-cache.c @@ -1896,7 +1896,7 @@ int index_name_is_other(const struct index_state *istate, const char *name, return 1; } -void *read_blob_data_from_index(struct index_state *istate, const char *path) +void *read_blob_data_from_index(struct index_state *istate, const char *path, unsigned long *size) { int pos, len; unsigned long sz; @@ -1925,5 +1925,7 @@ void *read_blob_data_from_index(struct index_state *istate, const char *path) free(data); return NULL; } + if (size) + *size = sz; return data; } |