* alloc.c (make_pure_c_string): New function.

* eval.c (Fautoload): Purecopy all arguments.
This commit is contained in:
Dan Nicolaescu 2009-11-06 05:24:28 +00:00
parent 1e8780b173
commit a56eaaef7c
3 changed files with 30 additions and 9 deletions

View file

@ -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

View file

@ -4821,6 +4821,24 @@ make_pure_string (data, nchars, nbytes, multibyte)
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. */

View file

@ -2127,16 +2127,13 @@ this does nothing and returns nil. */)
/* 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