Skip to content

Commit bad5b48

Browse files
committed
adapt to changes in gix-pack
1 parent b32a847 commit bad5b48

File tree

7 files changed

+34
-28
lines changed

7 files changed

+34
-28
lines changed

gix-config/tests/mem.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use std::alloc;
44
use std::time::Instant;
55

66
#[global_allocator]
7-
static ALLOCATOR: Cap<alloc::System> = Cap::new(alloc::System, usize::max_value());
7+
static ALLOCATOR: Cap<alloc::System> = Cap::new(alloc::System, usize::MAX);
88

99
#[test]
1010
fn usage() {

gix-macros/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include = ["src/**/*", "LICENSE-*"]
1414
rust-version = "1.65"
1515

1616
[lib]
17-
proc_macro = true
17+
proc-macro = true
1818

1919
[dependencies]
2020
syn = { version = "2.0", features = ["full", "fold"] }

gix-odb/src/store_impls/dynamic/find.rs

+16-12
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ pub(crate) mod error {
1919
LoadIndex(#[from] crate::store::load_index::Error),
2020
#[error(transparent)]
2121
LoadPack(#[from] std::io::Error),
22+
#[error(transparent)]
23+
EntryType(#[from] gix_pack::data::entry::decode::Error),
2224
#[error("Reached recursion limit of {} while resolving ref delta bases for {}", .max_depth, .id)]
2325
DeltaBaseRecursionLimit {
2426
/// the maximum recursion depth we encountered.
@@ -144,19 +146,21 @@ where
144146
}
145147
},
146148
};
147-
let entry = pack.entry(pack_offset);
149+
let entry = pack.entry(pack_offset)?;
148150
let header_size = entry.header_size();
149-
let res = match pack.decode_entry(
151+
let res = pack.decode_entry(
150152
entry,
151153
buffer,
152154
inflate,
153155
&|id, _out| {
154-
index_file.pack_offset_by_id(id).map(|pack_offset| {
155-
gix_pack::data::decode::entry::ResolvedBase::InPack(pack.entry(pack_offset))
156-
})
156+
let pack_offset = index_file.pack_offset_by_id(id)?;
157+
pack.entry(pack_offset)
158+
.ok()
159+
.map(gix_pack::data::decode::entry::ResolvedBase::InPack)
157160
},
158161
pack_cache,
159-
) {
162+
);
163+
let res = match res {
160164
Ok(r) => Ok((
161165
gix_object::Data {
162166
kind: r.kind,
@@ -230,7 +234,7 @@ where
230234
let pack = possibly_pack
231235
.as_ref()
232236
.expect("pack to still be available like just now");
233-
let entry = pack.entry(pack_offset);
237+
let entry = pack.entry(pack_offset)?;
234238
let header_size = entry.header_size();
235239
pack.decode_entry(
236240
entry,
@@ -239,10 +243,10 @@ where
239243
&|id, out| {
240244
index_file
241245
.pack_offset_by_id(id)
242-
.map(|pack_offset| {
243-
gix_pack::data::decode::entry::ResolvedBase::InPack(
244-
pack.entry(pack_offset),
245-
)
246+
.and_then(|pack_offset| {
247+
pack.entry(pack_offset)
248+
.ok()
249+
.map(gix_pack::data::decode::entry::ResolvedBase::InPack)
246250
})
247251
.or_else(|| {
248252
(id == base_id).then(|| {
@@ -398,7 +402,7 @@ where
398402
}
399403
},
400404
};
401-
let entry = pack.entry(pack_offset);
405+
let entry = pack.entry(pack_offset).ok()?;
402406

403407
buf.resize(entry.decompressed_size.try_into().expect("representable size"), 0);
404408
assert_eq!(pack.id, pack_id.to_intrinsic_pack_id(), "both ids must always match");

gix-odb/src/store_impls/dynamic/header.rs

+10-8
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,12 @@ where
7272
}
7373
},
7474
};
75-
let entry = pack.entry(pack_offset);
75+
let entry = pack.entry(pack_offset)?;
7676
let res = match pack.decode_header(entry, inflate, &|id| {
77-
index_file.pack_offset_by_id(id).map(|pack_offset| {
78-
gix_pack::data::decode::header::ResolvedBase::InPack(pack.entry(pack_offset))
77+
index_file.pack_offset_by_id(id).and_then(|pack_offset| {
78+
pack.entry(pack_offset)
79+
.ok()
80+
.map(gix_pack::data::decode::header::ResolvedBase::InPack)
7981
})
8082
}) {
8183
Ok(header) => Ok(header.into()),
@@ -129,14 +131,14 @@ where
129131
let pack = possibly_pack
130132
.as_ref()
131133
.expect("pack to still be available like just now");
132-
let entry = pack.entry(pack_offset);
134+
let entry = pack.entry(pack_offset)?;
133135
pack.decode_header(entry, inflate, &|id| {
134136
index_file
135137
.pack_offset_by_id(id)
136-
.map(|pack_offset| {
137-
gix_pack::data::decode::header::ResolvedBase::InPack(
138-
pack.entry(pack_offset),
139-
)
138+
.and_then(|pack_offset| {
139+
pack.entry(pack_offset)
140+
.ok()
141+
.map(gix_pack::data::decode::header::ResolvedBase::InPack)
140142
})
141143
.or_else(|| {
142144
(id == base_id).then(|| {

gix-pack/tests/pack/data/file.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ mod decode_entry {
103103
}
104104

105105
let p = pack_at(SMALL_PACK);
106-
let entry = p.entry(offset);
106+
let entry = p.entry(offset).expect("valid object type");
107107
let mut buf = Vec::new();
108108
p.decode_entry(
109109
entry,
@@ -159,7 +159,7 @@ mod resolve_header {
159159
}
160160

161161
let p = pack_at(SMALL_PACK);
162-
let entry = p.entry(offset);
162+
let entry = p.entry(offset).expect("valid object type");
163163
p.decode_header(entry, &mut Default::default(), &resolve_with_panic)
164164
.expect("valid offset provides valid entry")
165165
}
@@ -208,7 +208,7 @@ mod decompress_entry {
208208

209209
fn decompress_entry_at_offset(offset: u64) -> Vec<u8> {
210210
let p = pack_at(SMALL_PACK);
211-
let entry = p.entry(offset);
211+
let entry = p.entry(offset).expect("valid object type");
212212

213213
let size = entry.decompressed_size as usize;
214214
let mut buf = vec![0; size];

gix-pack/tests/pack/index.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ fn pack_lookup() -> Result<(), Box<dyn std::error::Error>> {
398398
let sorted_offsets = idx.sorted_offsets();
399399
assert_eq!(num_objects, sorted_offsets.len());
400400
for idx_entry in idx.iter() {
401-
let pack_entry = pack.entry(idx_entry.pack_offset);
401+
let pack_entry = pack.entry(idx_entry.pack_offset)?;
402402
assert_ne!(pack_entry.data_offset, idx_entry.pack_offset);
403403
assert!(sorted_offsets.binary_search(&idx_entry.pack_offset).is_ok());
404404
}
@@ -410,7 +410,7 @@ fn pack_lookup() -> Result<(), Box<dyn std::error::Error>> {
410410
);
411411

412412
let mut buf = vec![0u8; entry.decompressed_size as usize];
413-
let pack_entry = pack.entry(offset_from_index);
413+
let pack_entry = pack.entry(offset_from_index)?;
414414
assert_eq!(
415415
pack_entry.pack_offset(),
416416
entry.pack_offset,

gix-pack/tests/pack/iter.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ mod new_from_header {
3737
let mut buf = Vec::<u8>::new();
3838
entry.header.write_to(entry.decompressed_size, &mut buf)?;
3939
let new_entry =
40-
pack::data::Entry::from_bytes(&buf, entry.pack_offset, gix_hash::Kind::Sha1.len_in_bytes());
40+
pack::data::Entry::from_bytes(&buf, entry.pack_offset, gix_hash::Kind::Sha1.len_in_bytes())?;
4141

4242
assert_eq!(
4343
new_entry.header_size(),

0 commit comments

Comments
 (0)