aboutsummaryrefslogtreecommitdiffstats
path: root/src/coding.c
diff options
context:
space:
mode:
authorDmitry Antipov2012-07-10 12:43:46 +0400
committerDmitry Antipov2012-07-10 12:43:46 +0400
commit2a0213a6d0a9e36a388994445837e051d0bbe5f9 (patch)
treeb7e4d5c2ef5d4061e083ef2123c1fc72ad46d93d /src/coding.c
parentcb1caeaf2ba26df05e8f9bcd4aa63203cef781fb (diff)
downloademacs-2a0213a6d0a9e36a388994445837e051d0bbe5f9.tar.gz
emacs-2a0213a6d0a9e36a388994445837e051d0bbe5f9.zip
Optimize pure C strings initialization.
* lisp.h (make_pure_string): Fix prototype. (build_pure_c_string): New function, defined as static inline. This provides a better opportunity to optimize away calls to strlen when the function is called with compile-time constant argument. * alloc.c (make_pure_c_string): Fix comment. Change to add nchars argument, adjust users accordingly. Use build_pure_c_string where appropriate. * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c, * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c, * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
Diffstat (limited to 'src/coding.c')
-rw-r--r--src/coding.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/coding.c b/src/coding.c
index 4b2a9740121..8210cacc4d8 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -10350,7 +10350,7 @@ syms_of_coding (void)
10350 Vcode_conversion_reused_workbuf = Qnil; 10350 Vcode_conversion_reused_workbuf = Qnil;
10351 10351
10352 staticpro (&Vcode_conversion_workbuf_name); 10352 staticpro (&Vcode_conversion_workbuf_name);
10353 Vcode_conversion_workbuf_name = make_pure_c_string (" *code-conversion-work*"); 10353 Vcode_conversion_workbuf_name = build_pure_c_string (" *code-conversion-work*");
10354 10354
10355 reused_workbuf_in_use = 0; 10355 reused_workbuf_in_use = 0;
10356 10356
@@ -10413,7 +10413,7 @@ syms_of_coding (void)
10413 Fput (Qcoding_system_error, Qerror_conditions, 10413 Fput (Qcoding_system_error, Qerror_conditions,
10414 pure_cons (Qcoding_system_error, pure_cons (Qerror, Qnil))); 10414 pure_cons (Qcoding_system_error, pure_cons (Qerror, Qnil)));
10415 Fput (Qcoding_system_error, Qerror_message, 10415 Fput (Qcoding_system_error, Qerror_message,
10416 make_pure_c_string ("Invalid coding system")); 10416 build_pure_c_string ("Invalid coding system"));
10417 10417
10418 /* Intern this now in case it isn't already done. 10418 /* Intern this now in case it isn't already done.
10419 Setting this variable twice is harmless. 10419 Setting this variable twice is harmless.
@@ -10686,22 +10686,22 @@ Also used for decoding keyboard input on X Window system. */);
10686 DEFVAR_LISP ("eol-mnemonic-unix", eol_mnemonic_unix, 10686 DEFVAR_LISP ("eol-mnemonic-unix", eol_mnemonic_unix,
10687 doc: /* 10687 doc: /*
10688*String displayed in mode line for UNIX-like (LF) end-of-line format. */); 10688*String displayed in mode line for UNIX-like (LF) end-of-line format. */);
10689 eol_mnemonic_unix = make_pure_c_string (":"); 10689 eol_mnemonic_unix = build_pure_c_string (":");
10690 10690
10691 DEFVAR_LISP ("eol-mnemonic-dos", eol_mnemonic_dos, 10691 DEFVAR_LISP ("eol-mnemonic-dos", eol_mnemonic_dos,
10692 doc: /* 10692 doc: /*
10693*String displayed in mode line for DOS-like (CRLF) end-of-line format. */); 10693*String displayed in mode line for DOS-like (CRLF) end-of-line format. */);
10694 eol_mnemonic_dos = make_pure_c_string ("\\"); 10694 eol_mnemonic_dos = build_pure_c_string ("\\");
10695 10695
10696 DEFVAR_LISP ("eol-mnemonic-mac", eol_mnemonic_mac, 10696 DEFVAR_LISP ("eol-mnemonic-mac", eol_mnemonic_mac,
10697 doc: /* 10697 doc: /*
10698*String displayed in mode line for MAC-like (CR) end-of-line format. */); 10698*String displayed in mode line for MAC-like (CR) end-of-line format. */);
10699 eol_mnemonic_mac = make_pure_c_string ("/"); 10699 eol_mnemonic_mac = build_pure_c_string ("/");
10700 10700
10701 DEFVAR_LISP ("eol-mnemonic-undecided", eol_mnemonic_undecided, 10701 DEFVAR_LISP ("eol-mnemonic-undecided", eol_mnemonic_undecided,
10702 doc: /* 10702 doc: /*
10703*String displayed in mode line when end-of-line format is not yet determined. */); 10703*String displayed in mode line when end-of-line format is not yet determined. */);
10704 eol_mnemonic_undecided = make_pure_c_string (":"); 10704 eol_mnemonic_undecided = build_pure_c_string (":");
10705 10705
10706 DEFVAR_LISP ("enable-character-translation", Venable_character_translation, 10706 DEFVAR_LISP ("enable-character-translation", Venable_character_translation,
10707 doc: /* 10707 doc: /*
@@ -10839,7 +10839,7 @@ internal character representation. */);
10839 plist[10] = intern_c_string (":for-unibyte"); 10839 plist[10] = intern_c_string (":for-unibyte");
10840 plist[11] = args[coding_arg_for_unibyte] = Qt; 10840 plist[11] = args[coding_arg_for_unibyte] = Qt;
10841 plist[12] = intern_c_string (":docstring"); 10841 plist[12] = intern_c_string (":docstring");
10842 plist[13] = make_pure_c_string ("Do no conversion.\n\ 10842 plist[13] = build_pure_c_string ("Do no conversion.\n\
10843\n\ 10843\n\
10844When you visit a file with this coding, the file is read into a\n\ 10844When you visit a file with this coding, the file is read into a\n\
10845unibyte buffer as is, thus each byte of a file is treated as a\n\ 10845unibyte buffer as is, thus each byte of a file is treated as a\n\
@@ -10857,7 +10857,7 @@ character.");
10857 plist[8] = intern_c_string (":charset-list"); 10857 plist[8] = intern_c_string (":charset-list");
10858 plist[9] = args[coding_arg_charset_list] = Fcons (Qascii, Qnil); 10858 plist[9] = args[coding_arg_charset_list] = Fcons (Qascii, Qnil);
10859 plist[11] = args[coding_arg_for_unibyte] = Qnil; 10859 plist[11] = args[coding_arg_for_unibyte] = Qnil;
10860 plist[13] = make_pure_c_string ("No conversion on encoding, automatic conversion on decoding."); 10860 plist[13] = build_pure_c_string ("No conversion on encoding, automatic conversion on decoding.");
10861 plist[15] = args[coding_arg_eol_type] = Qnil; 10861 plist[15] = args[coding_arg_eol_type] = Qnil;
10862 args[coding_arg_plist] = Flist (16, plist); 10862 args[coding_arg_plist] = Flist (16, plist);
10863 Fdefine_coding_system_internal (coding_arg_max, args); 10863 Fdefine_coding_system_internal (coding_arg_max, args);