object-store: move alt_odb_list and alt_odb_tail to object store
In a process with multiple repositories open, alternates should be associated to a single repository and not shared globally. Move alt_odb_list and alt_odb_tail into the_repository and adjust callers to reflect this. Now that the alternative object data base is per repository, we're leaking its memory upon freeing a repository. The next patch plugs this hole. No functional change intended. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
0d4a132144
commit
031dc927f4
@ -1,7 +1,7 @@
|
||||
#ifndef OBJECT_STORE_H
|
||||
#define OBJECT_STORE_H
|
||||
|
||||
extern struct alternate_object_database {
|
||||
struct alternate_object_database {
|
||||
struct alternate_object_database *next;
|
||||
|
||||
/* see alt_scratch_buf() */
|
||||
@ -19,7 +19,7 @@ extern struct alternate_object_database {
|
||||
struct oid_array loose_objects_cache;
|
||||
|
||||
char path[FLEX_ARRAY];
|
||||
} *alt_odb_list;
|
||||
};
|
||||
void prepare_alt_odb(void);
|
||||
char *compute_alternate_path(const char *path, struct strbuf *err);
|
||||
typedef int alt_odb_fn(struct alternate_object_database *, void *);
|
||||
@ -61,6 +61,9 @@ struct raw_object_store {
|
||||
|
||||
/* Path to extra alternate object database if not NULL */
|
||||
char *alternate_db;
|
||||
|
||||
struct alternate_object_database *alt_odb_list;
|
||||
struct alternate_object_database **alt_odb_tail;
|
||||
};
|
||||
|
||||
struct raw_object_store *raw_object_store_new(void);
|
||||
|
Reference in New Issue
Block a user