File tree Expand file tree Collapse file tree 1 file changed +10
-8
lines changed Expand file tree Collapse file tree 1 file changed +10
-8
lines changed Original file line number Diff line number Diff line change @@ -1055,15 +1055,17 @@ static HEX0: [i16; 256] = build_hex_table(0);
1055
1055
static HEX1 : [ i16 ; 256 ] = build_hex_table ( 4 ) ;
1056
1056
1057
1057
fn decode_four_hex_digits ( a : u8 , b : u8 , c : u8 , d : u8 ) -> Option < u16 > {
1058
- let a = HEX1 [ a as usize ] ;
1059
- let b = HEX0 [ b as usize ] ;
1060
- let c = HEX1 [ c as usize ] ;
1061
- let d = HEX0 [ d as usize ] ;
1058
+ let a = HEX1 [ a as usize ] as i32 ;
1059
+ let b = HEX0 [ b as usize ] as i32 ;
1060
+ let c = HEX1 [ c as usize ] as i32 ;
1061
+ let d = HEX0 [ d as usize ] as i32 ;
1062
+
1063
+ let codepoint = ( ( a | b) << 8 ) | c | d;
1062
1064
1063
1065
// A single sign bit check.
1064
- if ( a | b | c | d) < 0 {
1065
- return None ;
1066
+ if codepoint >= 0 {
1067
+ Some ( codepoint as u16 )
1068
+ } else {
1069
+ None
1066
1070
}
1067
-
1068
- Some ( ( ( ( a | b) << 8 ) | c | d) as u16 )
1069
1071
}
You can’t perform that action at this time.
0 commit comments