diff options
| author | Dmitry Antipov | 2014-07-08 11:17:04 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2014-07-08 11:17:04 +0400 |
| commit | f298de5264c86bbb76ccec727779dabe16e6b9c3 (patch) | |
| tree | 05c709251b6982c042f04498510111e0fa03b82e /src/character.h | |
| parent | 12dc5429352223f7ba8314d2e16177036a762733 (diff) | |
| download | emacs-f298de5264c86bbb76ccec727779dabe16e6b9c3.tar.gz emacs-f298de5264c86bbb76ccec727779dabe16e6b9c3.zip | |
* chartab.c (char_table_translate): Move to...
* character.h (char_table_translate): ... inline function here.
Avoid Faref and assume that args are always valid. This helps to
speedup search, which is especially important for a huge buffers.
* lisp.h (char_table_translate): Remove prototype.
Diffstat (limited to 'src/character.h')
| -rw-r--r-- | src/character.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/character.h b/src/character.h index 18aad5b8f41..66cd4e47ef8 100644 --- a/src/character.h +++ b/src/character.h | |||
| @@ -667,6 +667,20 @@ extern Lisp_Object string_escape_byte8 (Lisp_Object); | |||
| 667 | #define GET_TRANSLATION_TABLE(id) \ | 667 | #define GET_TRANSLATION_TABLE(id) \ |
| 668 | (XCDR (XVECTOR (Vtranslation_table_vector)->contents[(id)])) | 668 | (XCDR (XVECTOR (Vtranslation_table_vector)->contents[(id)])) |
| 669 | 669 | ||
| 670 | /* Look up the element in char table OBJ at index CH, and return it as | ||
| 671 | an integer. If the element is not a character, return CH itself. */ | ||
| 672 | |||
| 673 | INLINE int | ||
| 674 | char_table_translate (Lisp_Object obj, int ch) | ||
| 675 | { | ||
| 676 | /* This internal function is expected to be called with valid arguments, | ||
| 677 | so there is a eassert instead of CHECK_xxx for the sake of speed. */ | ||
| 678 | eassert (CHAR_VALID_P (ch)); | ||
| 679 | eassert (CHAR_TABLE_P (obj)); | ||
| 680 | obj = CHAR_TABLE_REF (obj, ch); | ||
| 681 | return CHARACTERP (obj) ? XINT (obj) : ch; | ||
| 682 | } | ||
| 683 | |||
| 670 | INLINE_HEADER_END | 684 | INLINE_HEADER_END |
| 671 | 685 | ||
| 672 | #endif /* EMACS_CHARACTER_H */ | 686 | #endif /* EMACS_CHARACTER_H */ |