File tree Expand file tree Collapse file tree 2 files changed +8
-6
lines changed
branches/auto/src/libcore Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
8
8
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
9
9
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
10
10
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
11
- refs/heads/auto: 2fd2670ea0a55b7f7481c5ce2a95c5c5033941d5
11
+ refs/heads/auto: 7b33d39da93a9873fa002c6875c934fd13ec7d4a
12
12
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
13
13
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336
14
14
refs/tags/0.2: 1754d02027f2924bed83b0160ee340c7f41d5ea1
Original file line number Diff line number Diff line change @@ -299,14 +299,16 @@ impl CharExt for char {
299
299
300
300
#[ inline]
301
301
fn escape_unicode ( self ) -> EscapeUnicode {
302
- let mut n = 0 ;
303
- while ( self as u32 ) >> ( 4 * ( n + 1 ) ) != 0 {
304
- n += 1 ;
305
- }
302
+ let c = self as u32 ;
303
+ // or-ing 1 ensures that for c==0 the code computes that one
304
+ // digit should be printed and (which is the same) avoids the
305
+ // (31 - 32) underflow
306
+ let msb = 31 - ( c | 1 ) . leading_zeros ( ) ;
307
+ let msdigit = msb / 4 ;
306
308
EscapeUnicode {
307
309
c : self ,
308
310
state : EscapeUnicodeState :: Backslash ,
309
- offset : n ,
311
+ offset : msdigit as usize ,
310
312
}
311
313
}
312
314
You can’t perform that action at this time.
0 commit comments