diff --git a/Cargo.toml b/Cargo.toml index 1407825..a0ffffe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "itunesdb" -version = "0.1.46" +version = "0.1.47" edition = "2021" authors = ["alterwain"] diff --git a/src/artworkdb.rs b/src/artworkdb.rs index 299ebaa..eb4f6ef 100644 --- a/src/artworkdb.rs +++ b/src/artworkdb.rs @@ -123,10 +123,7 @@ pub mod serializer { let mut args = Vec::new(); if img.data.is_some() { for o in &img.tag { - let mut data = [2u32.to_le_bytes(), 0u32.to_le_bytes(), 0u32.to_le_bytes()].concat(); - args.append(&mut generate_header(ChunkType::LocationTag, 12, 0)); - args.append(&mut data); - + let mut inameb = Vec::new(); if let Some(name) = &o.child { let mut nb = Vec::new(); @@ -137,10 +134,15 @@ pub mod serializer { nb.append(&mut generate_header(ChunkType::LocationTag, 12, str_b.len())); nb.append(&mut str_b); - args.append(&mut generate_header(ChunkType::ImageName, 76, nb.len())); - args.append(&mut bincode::serialize(&name.iname).unwrap()); - args.append(&mut nb); + inameb.append(&mut generate_header(ChunkType::ImageName, 76, nb.len())); + inameb.append(&mut bincode::serialize(&name.iname).unwrap()); + inameb.append(&mut nb); } + + let mut data = [2u32.to_le_bytes(), 0u32.to_le_bytes(), 0u32.to_le_bytes()].concat(); + args.append(&mut generate_header(ChunkType::LocationTag, 12, inameb.len())); + args.append(&mut data); + args.append(&mut inameb); } let mut item = Vec::new(); item.append(&mut generate_header(ChunkType::ImageItem, 140, args.len()));