#private_file read_u32 :: proc (use br: ^BinaryReader) -> u32 {
// Encoding is big endian
- ret := 0;
- ret |= ~~read_u8(br) << 24;
- ret |= ~~read_u8(br) << 16;
- ret |= ~~read_u8(br) << 8;
- ret |= ~~read_u8(br);
+ ret: u32 = 0;
+ ret |= cast(u32) read_u8(br) << 24;
+ ret |= cast(u32) read_u8(br) << 16;
+ ret |= cast(u32) read_u8(br) << 8;
+ ret |= cast(u32) read_u8(br);
return ret;
}
case #default {
old = seek(^reader, loca_table_info.offset + glyph_index * 2);
- return 2 * ~~read_u16(^reader) + glyf_table_info.offset;
+ return 2 * cast(u32) read_u16(^reader) + glyf_table_info.offset;
}
}
#private_file
string_to_beu32 :: proc (s: string) -> u32 {
- return (~~s[0] << 24)
- | (~~s[1] << 16)
- | (~~s[2] << 8)
- | (~~s[3]);
+ return (cast(u32) s[0] << 24)
+ | (cast(u32) s[1] << 16)
+ | (cast(u32) s[2] << 8)
+ | (cast(u32) s[3]);
}