@@ -278,7 +278,7 @@ static int unuse_one_window(struct packed_git *current)
278278
279279 if (current )
280280 scan_windows (current , & lru_p , & lru_w , & lru_l );
281- for (p = current -> repo -> objects -> packed_git ; p ; p = p -> next )
281+ for (p = current -> repo -> objects -> packfiles -> packs ; p ; p = p -> next )
282282 scan_windows (p , & lru_p , & lru_w , & lru_l );
283283 if (lru_p ) {
284284 munmap (lru_w -> base , lru_w -> len );
@@ -362,13 +362,8 @@ void close_pack(struct packed_git *p)
362362void close_object_store (struct object_database * o )
363363{
364364 struct odb_source * source ;
365- struct packed_git * p ;
366365
367- for (p = o -> packed_git ; p ; p = p -> next )
368- if (p -> do_not_close )
369- BUG ("want to close pack marked 'do-not-close'" );
370- else
371- close_pack (p );
366+ packfile_store_close (o -> packfiles );
372367
373368 for (source = o -> sources ; source ; source = source -> next ) {
374369 if (source -> midx )
@@ -468,7 +463,7 @@ static int close_one_pack(struct repository *r)
468463 struct pack_window * mru_w = NULL ;
469464 int accept_windows_inuse = 1 ;
470465
471- for (p = r -> objects -> packed_git ; p ; p = p -> next ) {
466+ for (p = r -> objects -> packfiles -> packs ; p ; p = p -> next ) {
472467 if (p -> pack_fd == -1 )
473468 continue ;
474469 find_lru_pack (p , & lru_p , & mru_w , & accept_windows_inuse );
@@ -789,8 +784,8 @@ void install_packed_git(struct repository *r, struct packed_git *pack)
789784 if (pack -> pack_fd != -1 )
790785 pack_open_fds ++ ;
791786
792- pack -> next = r -> objects -> packed_git ;
793- r -> objects -> packed_git = pack ;
787+ pack -> next = r -> objects -> packfiles -> packs ;
788+ r -> objects -> packfiles -> packs = pack ;
794789
795790 hashmap_entry_init (& pack -> packmap_ent , strhash (pack -> pack_name ));
796791 hashmap_add (& r -> objects -> pack_map , & pack -> packmap_ent );
@@ -974,7 +969,7 @@ unsigned long repo_approximate_object_count(struct repository *r)
974969 count += m -> num_objects ;
975970 }
976971
977- for (p = r -> objects -> packed_git ; p ; p = p -> next ) {
972+ for (p = r -> objects -> packfiles -> packs ; p ; p = p -> next ) {
978973 if (open_pack_index (p ))
979974 continue ;
980975 count += p -> num_objects ;
@@ -1015,7 +1010,7 @@ static int sort_pack(const struct packed_git *a, const struct packed_git *b)
10151010
10161011static void rearrange_packed_git (struct repository * r )
10171012{
1018- sort_packs (& r -> objects -> packed_git , sort_pack );
1013+ sort_packs (& r -> objects -> packfiles -> packs , sort_pack );
10191014}
10201015
10211016static void prepare_packed_git_mru (struct repository * r )
@@ -1024,7 +1019,7 @@ static void prepare_packed_git_mru(struct repository *r)
10241019
10251020 INIT_LIST_HEAD (& r -> objects -> packed_git_mru );
10261021
1027- for (p = r -> objects -> packed_git ; p ; p = p -> next )
1022+ for (p = r -> objects -> packfiles -> packs ; p ; p = p -> next )
10281023 list_add_tail (& p -> mru , & r -> objects -> packed_git_mru );
10291024}
10301025
@@ -1073,7 +1068,7 @@ void reprepare_packed_git(struct repository *r)
10731068struct packed_git * get_packed_git (struct repository * r )
10741069{
10751070 prepare_packed_git (r );
1076- return r -> objects -> packed_git ;
1071+ return r -> objects -> packfiles -> packs ;
10771072}
10781073
10791074struct multi_pack_index * get_multi_pack_index (struct odb_source * source )
@@ -1094,7 +1089,7 @@ struct packed_git *get_all_packs(struct repository *r)
10941089 prepare_midx_pack (m , i );
10951090 }
10961091
1097- return r -> objects -> packed_git ;
1092+ return r -> objects -> packfiles -> packs ;
10981093}
10991094
11001095struct list_head * get_packed_git_mru (struct repository * r )
@@ -1219,7 +1214,7 @@ const struct packed_git *has_packed_and_bad(struct repository *r,
12191214{
12201215 struct packed_git * p ;
12211216
1222- for (p = r -> objects -> packed_git ; p ; p = p -> next )
1217+ for (p = r -> objects -> packfiles -> packs ; p ; p = p -> next )
12231218 if (oidset_contains (& p -> bad_objects , oid ))
12241219 return p ;
12251220 return NULL ;
@@ -2080,7 +2075,7 @@ int find_pack_entry(struct repository *r, const struct object_id *oid, struct pa
20802075 if (source -> midx && fill_midx_entry (source -> midx , oid , e ))
20812076 return 1 ;
20822077
2083- if (!r -> objects -> packed_git )
2078+ if (!r -> objects -> packfiles -> packs )
20842079 return 0 ;
20852080
20862081 list_for_each (pos , & r -> objects -> packed_git_mru ) {
@@ -2343,5 +2338,18 @@ struct packfile_store *packfile_store_new(struct object_database *odb)
23432338
23442339void packfile_store_free (struct packfile_store * store )
23452340{
2341+ for (struct packed_git * p = store -> packs , * next ; p ; p = next ) {
2342+ next = p -> next ;
2343+ free (p );
2344+ }
23462345 free (store );
23472346}
2347+
2348+ void packfile_store_close (struct packfile_store * store )
2349+ {
2350+ for (struct packed_git * p = store -> packs ; p ; p = p -> next ) {
2351+ if (p -> do_not_close )
2352+ BUG ("want to close pack marked 'do-not-close'" );
2353+ close_pack (p );
2354+ }
2355+ }
0 commit comments