Thanks. I'll queue with the following API fix-up on this, with
obvious adjustments necessary for the later ones.

 * read_blob_data_from_index() is descriptive enough. If you read a
   blob from the index, you would ask for it with a path; there is
   no other sensible key to do so.

 * A function in read-cache API that works on an index should have
   the istate as the first argument and called with name "index";

 * If callers want to operate on the default index, macro with a
   similar name but replacing "index" with "cache" can be supplied,

   #define distim_cache(x) distim_index(&the_index, x)
 attr.c       | 2 +-
 cache.h      | 3 ++-
 read-cache.c | 4 +---
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/attr.c b/attr.c
index a668a63..46bde57 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_path(path, use_index);
+       buf = read_blob_data_from_index(use_index, path);
        if (!buf)
                return NULL;
diff --git a/cache.h b/cache.h
index 85ddb13..5d66c74 100644
--- a/cache.h
+++ b/cache.h
@@ -307,6 +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, 
 enum object_type {
@@ -452,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_path(const char *path, struct 
index_state *use_index);
+extern void *read_blob_data_from_index(struct index_state *, const char *);
 /* 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 cbeb248..48d87e8 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1896,14 +1896,12 @@ int index_name_is_other(const struct index_state 
*istate, const char *name,
        return 1;
-void *read_blob_data_from_index_path(const char *path,
-                                    struct index_state *use_index)
+void *read_blob_data_from_index(struct index_state *istate, 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);

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to