ref-cache: introduce a new type, ref_cache
For now, it just wraps a `ref_entry *` that points at the root of the tree. Soon it will hold more information. Add two new functions, `create_ref_cache()` and `free_ref_cache()`. Make `free_ref_entry()` private. Change files-backend to use this type to hold its caches. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
958f964691
commit
7c22bc8a18
@ -1,6 +1,10 @@
|
||||
#ifndef REFS_REF_CACHE_H
|
||||
#define REFS_REF_CACHE_H
|
||||
|
||||
struct ref_cache {
|
||||
struct ref_entry *root;
|
||||
};
|
||||
|
||||
/*
|
||||
* Information used (along with the information in ref_entry) to
|
||||
* describe a single cached reference. This data structure only
|
||||
@ -165,7 +169,16 @@ struct ref_entry *create_ref_entry(const char *refname,
|
||||
const unsigned char *sha1, int flag,
|
||||
int check_name);
|
||||
|
||||
void free_ref_entry(struct ref_entry *entry);
|
||||
/*
|
||||
* Return a pointer to a new `ref_cache`. Its top-level starts out
|
||||
* marked incomplete.
|
||||
*/
|
||||
struct ref_cache *create_ref_cache(struct files_ref_store *refs);
|
||||
|
||||
/*
|
||||
* Free the `ref_cache` and all of its associated data.
|
||||
*/
|
||||
void free_ref_cache(struct ref_cache *cache);
|
||||
|
||||
/*
|
||||
* Add a ref_entry to the end of dir (unsorted). Entry is always
|
||||
|
Reference in New Issue
Block a user