Mercurial > emacs
changeset 105871:1fa408e42f53
* alloc.c (make_pure_c_string): New function.
* eval.c (Fautoload): Purecopy all arguments.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Fri, 06 Nov 2009 05:24:28 +0000 |
parents | 26baacb565b0 |
children | 89183b6f6e9d |
files | src/ChangeLog src/alloc.c src/eval.c |
diffstat | 3 files changed, 30 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Fri Nov 06 05:16:23 2009 +0000 +++ b/src/ChangeLog Fri Nov 06 05:24:28 2009 +0000 @@ -1,3 +1,9 @@ +2009-11-06 Stefan Monnier <monnier@iro.umontreal.ca> + + * alloc.c (make_pure_c_string): New function. + + * eval.c (Fautoload): Purecopy all arguments. + 2009-11-05 Kenichi Handa <handa@m17n.org> * fileio.c (Finsert_file_contents): Be sure set coding-system of
--- a/src/alloc.c Fri Nov 06 05:16:23 2009 +0000 +++ b/src/alloc.c Fri Nov 06 05:24:28 2009 +0000 @@ -4821,6 +4821,24 @@ return string; } +/* Return a string a string allocated in pure space. Do not allocate + the string data, just point to DATA. */ + +Lisp_Object +make_pure_c_string (const char *data) +{ + Lisp_Object string; + struct Lisp_String *s; + int nchars = strlen (data); + + s = (struct Lisp_String *) pure_alloc (sizeof *s, Lisp_String); + s->size = nchars; + s->size_byte = -1; + s->data = data; + s->intervals = NULL_INTERVAL; + XSETSTRING (string, s); + return string; +} /* Return a cons allocated from pure space. Give it pure copies of CAR as car and CDR as cdr. */
--- a/src/eval.c Fri Nov 06 05:16:23 2009 +0000 +++ b/src/eval.c Fri Nov 06 05:24:28 2009 +0000 @@ -2127,16 +2127,13 @@ /* Only add entries after dumping, because the ones before are not useful and else we get loads of them from the loaddefs.el. */ LOADHIST_ATTACH (Fcons (Qautoload, function)); - - if (NILP (Vpurify_flag)) - args[0] = file; else - args[0] = Fpurecopy (file); - args[1] = docstring; - args[2] = interactive; - args[3] = type; - - return Ffset (function, Fcons (Qautoload, Flist (4, &args[0]))); + /* We don't want the docstring in purespace (instead, + Snarf-documentation should (hopefully) overwrite it). */ + docstring = make_number (0); + return Ffset (function, + Fpurecopy (list5 (Qautoload, file, docstring, + interactive, type))); } Lisp_Object