std: mark two helper functions #[inline].

`str::utf8_char_width` and `char::from_u32` are tiny, which means it's a
big performance hit to call them in a tight loop outside libstd.
This commit is contained in:
Huon Wilson 2014-02-23 09:11:36 +11:00
parent 56cf237ee2
commit 713ca7d540
2 changed files with 2 additions and 0 deletions

View File

@ -69,6 +69,7 @@ static TAG_FOUR_B: uint = 240u;
pub static MAX: char = '\U0010ffff';
/// Convert from `u32` to a character.
#[inline]
pub fn from_u32(i: u32) -> Option<char> {
// catch out-of-bounds and surrogates
if (i > MAX as u32) || (i >= 0xD800 && i <= 0xDFFF) {

View File

@ -1061,6 +1061,7 @@ static UTF8_CHAR_WIDTH: [u8, ..256] = [
];
/// Given a first byte, determine how many bytes are in this UTF-8 character
#[inline]
pub fn utf8_char_width(b: u8) -> uint {
return UTF8_CHAR_WIDTH[b] as uint;
}