Skip to content

Commit

Permalink
Fixes inverted if-conditional on gvar offset array
Browse files Browse the repository at this point in the history
  • Loading branch information
archaephyrryx committed Jan 31, 2025
1 parent 5d53395 commit 23971a9
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 28 deletions.
6 changes: 3 additions & 3 deletions doodle-formats/src/format/opentype.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4857,10 +4857,10 @@ pub fn main(module: &mut FormatModule, base: &BaseModule) -> FormatRef {
if_then_else(
is_long_offsets,
fmt_variant(
"Offsets16",
repeat_count(succ(glyph_count.clone()), base.u16be()),
"Offsets32",
repeat_count(succ(glyph_count.clone()), base.u32be()),
),
fmt_variant("Offsets32", repeat_count(succ(glyph_count), base.u32be())),
fmt_variant("Offsets16", repeat_count(succ(glyph_count), base.u16be())),
)
};
// NOTE - can only appear in font files with fvar and glyf tables also present
Expand Down
50 changes: 25 additions & 25 deletions generated/gencode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ distance: u16
}

#[derive(Debug, Clone)]
pub enum deflate_main_codes { literal(u8), reference(deflate_main_codes_reference) }
pub enum deflate_main_codes__dupX1 { literal(u8), reference(deflate_main_codes_reference) }

#[derive(Debug, Clone)]
pub struct deflate_dynamic_huffman {
Expand All @@ -340,7 +340,7 @@ literal_length_distance_alphabet_code_lengths_value: Vec<u8>,
literal_length_alphabet_code_lengths_value: Vec<u8>,
distance_alphabet_code_lengths_value: Vec<u8>,
codes: Vec<deflate_dynamic_huffman_codes>,
codes_values: Vec<deflate_main_codes>
codes_values: Vec<deflate_main_codes__dupX1>
}

#[derive(Debug, Clone)]
Expand All @@ -360,7 +360,7 @@ extra: Option<deflate_fixed_huffman_codes_values>
#[derive(Debug, Clone)]
pub struct deflate_fixed_huffman {
codes: Vec<deflate_fixed_huffman_codes>,
codes_values: Vec<deflate_main_codes>
codes_values: Vec<deflate_main_codes__dupX1>
}

#[derive(Debug, Clone)]
Expand All @@ -369,23 +369,23 @@ align: (),
len: u16,
nlen: u16,
bytes: Vec<u8>,
codes_values: Vec<deflate_main_codes>
codes_values: Vec<deflate_main_codes__dupX1>
}

#[derive(Debug, Clone)]
pub enum deflate_main_codes__dupX1 { dynamic_huffman(deflate_dynamic_huffman), fixed_huffman(deflate_fixed_huffman), uncompressed(deflate_uncompressed) }
pub enum deflate_main_codes { dynamic_huffman(deflate_dynamic_huffman), fixed_huffman(deflate_fixed_huffman), uncompressed(deflate_uncompressed) }

#[derive(Debug, Clone)]
pub struct deflate_block {
r#final: u8,
r#type: u8,
data: deflate_main_codes__dupX1
data: deflate_main_codes
}

#[derive(Debug, Clone)]
pub struct deflate_main {
blocks: Vec<deflate_block>,
codes: Vec<deflate_main_codes>,
codes: Vec<deflate_main_codes__dupX1>,
inflate: Vec<u8>
}

Expand Down Expand Up @@ -8788,22 +8788,22 @@ true => {
let inner = {
let mut accum = Vec::new();
for _ in 0..succ(glyph_count) {
accum.push((Decoder23(_input))?);
accum.push((Decoder20(_input))?);
}
accum
};
opentype_gvar_table_glyph_variation_data_offsets::Offsets16(inner)
opentype_gvar_table_glyph_variation_data_offsets::Offsets32(inner)
},

false => {
let inner = {
let mut accum = Vec::new();
for _ in 0..succ(glyph_count) {
accum.push((Decoder20(_input))?);
accum.push((Decoder23(_input))?);
}
accum
};
opentype_gvar_table_glyph_variation_data_offsets::Offsets32(inner)
opentype_gvar_table_glyph_variation_data_offsets::Offsets16(inner)
}
}))())?;
let glyph_variation_data_array = ((|| PResult::Ok({
Expand Down Expand Up @@ -17363,26 +17363,26 @@ accum.push(elem);
accum
}))())?;
let codes = ((|| PResult::Ok((try_flat_map_vec(blocks.iter().cloned(), |x: deflate_block| PResult::Ok(match x.data.clone() {
deflate_main_codes__dupX1::uncompressed(y) => {
deflate_main_codes::uncompressed(y) => {
y.codes_values.clone()
},

deflate_main_codes__dupX1::fixed_huffman(y) => {
deflate_main_codes::fixed_huffman(y) => {
y.codes_values.clone()
},

deflate_main_codes__dupX1::dynamic_huffman(y) => {
deflate_main_codes::dynamic_huffman(y) => {
y.codes_values.clone()
}
})))?))())?;
let inflate = ((|| PResult::Ok((try_flat_map_append_vec(codes.iter().cloned(), |tuple_var: (&Vec<u8>, deflate_main_codes)| PResult::Ok(match tuple_var {
let inflate = ((|| PResult::Ok((try_flat_map_append_vec(codes.iter().cloned(), |tuple_var: (&Vec<u8>, deflate_main_codes__dupX1)| PResult::Ok(match tuple_var {
(buffer, symbol) => {
match symbol {
deflate_main_codes::literal(b) => {
deflate_main_codes__dupX1::literal(b) => {
[b].to_vec()
},

deflate_main_codes::reference(r) => {
deflate_main_codes__dupX1::reference(r) => {
{
let ix = (try_sub!((buffer.len()) as u32, (r.distance.clone()) as u32, 11669649807369914251u64)) as usize;
(slice_ext(&buffer, ix..ix + (((r.length.clone()) as u32) as usize))).to_vec()
Expand All @@ -17407,17 +17407,17 @@ let field1 = ((|| PResult::Ok((Decoder166(_input))?))())?;
let data = ((|| PResult::Ok(match r#type {
0u8 => {
let inner = (Decoder_deflate_uncompressed(_input))?;
deflate_main_codes__dupX1::uncompressed(inner)
deflate_main_codes::uncompressed(inner)
},

1u8 => {
let inner = (Decoder_deflate_fixed_huffman(_input))?;
deflate_main_codes__dupX1::fixed_huffman(inner)
deflate_main_codes::fixed_huffman(inner)
},

2u8 => {
let inner = (Decoder_deflate_dynamic_huffman(_input))?;
deflate_main_codes__dupX1::dynamic_huffman(inner)
deflate_main_codes::dynamic_huffman(inner)
},

_other => {
Expand Down Expand Up @@ -17498,7 +17498,7 @@ let field7 = ((|| PResult::Ok((Decoder166(_input))?))())?;
}
accum
}))())?;
let codes_values = ((|| PResult::Ok((try_flat_map_vec(bytes.iter().cloned(), |x: u8| PResult::Ok([deflate_main_codes::literal(x)].to_vec())))?))())?;
let codes_values = ((|| PResult::Ok((try_flat_map_vec(bytes.iter().cloned(), |x: u8| PResult::Ok([deflate_main_codes__dupX1::literal(x)].to_vec())))?))())?;
PResult::Ok(deflate_uncompressed { align, len, nlen, bytes, codes_values })
}

Expand Down Expand Up @@ -18277,7 +18277,7 @@ let codes_values = ((|| PResult::Ok((try_flat_map_vec(codes.iter().cloned(), |x:
257u16..=285u16 => {
match x.extra.clone() {
Some(ref rec) => {
[deflate_main_codes::reference(deflate_main_codes_reference { length: rec.length.clone(), distance: rec.distance_record.distance.clone() })].to_vec()
[deflate_main_codes__dupX1::reference(deflate_main_codes_reference { length: rec.length.clone(), distance: rec.distance_record.distance.clone() })].to_vec()
},

_ => {
Expand All @@ -18291,7 +18291,7 @@ return Err(ParseError::ExcludedBranch(8880661182590738257u64));
},

_ => {
[deflate_main_codes::literal((x.code.clone()) as u8)].to_vec()
[deflate_main_codes__dupX1::literal((x.code.clone()) as u8)].to_vec()
}
})))?))())?;
PResult::Ok(deflate_fixed_huffman { codes, codes_values })
Expand Down Expand Up @@ -18977,7 +18977,7 @@ let codes_values = ((|| PResult::Ok((try_flat_map_vec(codes.iter().cloned(), |x:
257u16..=285u16 => {
match x.extra.clone() {
Some(ref rec) => {
[deflate_main_codes::reference(deflate_main_codes_reference { length: rec.length.clone(), distance: rec.distance_record.distance.clone() })].to_vec()
[deflate_main_codes__dupX1::reference(deflate_main_codes_reference { length: rec.length.clone(), distance: rec.distance_record.distance.clone() })].to_vec()
},

_ => {
Expand All @@ -18991,7 +18991,7 @@ return Err(ParseError::ExcludedBranch(13685962128001446815u64));
},

_ => {
[deflate_main_codes::literal((x.code.clone()) as u8)].to_vec()
[deflate_main_codes__dupX1::literal((x.code.clone()) as u8)].to_vec()
}
})))?))())?;
PResult::Ok(deflate_dynamic_huffman { hlit, hdist, hclen, code_length_alphabet_code_lengths, literal_length_distance_alphabet_code_lengths, literal_length_distance_alphabet_code_lengths_value, literal_length_alphabet_code_lengths_value, distance_alphabet_code_lengths_value, codes, codes_values })
Expand Down

0 comments on commit 23971a9

Please sign in to comment.