Skip to content

Commit 04dad8c

Browse files
authored
Fix crash in MaxImageDimensionSubscriber (#9956)
1 parent fa1717e commit 04dad8c

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

crates/viewer/re_view_spatial/src/max_image_dimension_subscriber.rs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -122,17 +122,22 @@ impl PerStoreChunkSubscriber for MaxImageDimensionsStoreSubscriber {
122122
{
123123
let blobs = chunk.iter_slices::<&[u8]>(blob_descr.clone());
124124

125-
let media_type_descr = components
126-
.keys()
127-
.find(|desc| {
128-
desc.component_name == MediaType::name()
129-
&& desc.archetype_name == blob_descr.archetype_name
130-
})
131-
.unwrap();
132-
let media_types = chunk.iter_slices::<String>(media_type_descr.clone());
133-
for (blob, media_type) in
134-
itertools::izip!(blobs, media_types.map(Some).chain(std::iter::repeat(None)))
135-
{
125+
let media_type_descr = components.keys().find(|desc| {
126+
desc.component_name == MediaType::name()
127+
&& desc.archetype_name == blob_descr.archetype_name
128+
});
129+
let media_types = media_type_descr.map_or(Vec::new(), |media_type_descr| {
130+
chunk
131+
.iter_slices::<String>(media_type_descr.clone())
132+
.collect()
133+
});
134+
for (blob, media_type) in itertools::izip!(
135+
blobs,
136+
media_types
137+
.into_iter()
138+
.map(Some)
139+
.chain(std::iter::repeat(None))
140+
) {
136141
if let Some(blob) = blob.first() {
137142
let media_type =
138143
media_type.and_then(|v| v.first().map(|v| MediaType(v.clone().into())));

0 commit comments

Comments
 (0)