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);
10551055static HEX1 : [ i16 ; 256 ] = build_hex_table ( 4 ) ;
10561056
10571057fn 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;
10621064
10631065 // 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
10661070 }
1067-
1068- Some ( ( ( ( a | b) << 8 ) | c | d) as u16 )
10691071}
You can’t perform that action at this time.
0 commit comments