diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-12-21 18:15:35 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-12-21 18:15:35 +0000 |
commit | 2b1e859d923fc559af2c9c5fa312b49f188bcaf9 (patch) | |
tree | e72b2fd4e09af1ab4d837b31231df06e4c8ef5a8 /src/eval.c | |
parent | fd4e2181c9a2f7edb5e6f14e90b2593a307bb0f4 (diff) | |
download | emacs-2b1e859d923fc559af2c9c5fa312b49f188bcaf9.tar.gz |
(Fdefvar): Fix minor error in previous change.
(funcall_lambda): Fetch bytecode and constants vector from file if nec.
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/eval.c b/src/eval.c index f5dd69ff057..c65744b9646 100644 --- a/src/eval.c +++ b/src/eval.c @@ -587,6 +587,7 @@ If INITVALUE is missing, SYMBOL's value is not set.") tail = Fcdr (Fcdr (args)); if (!NILP (Fcar (tail))) { + tem = Fcar (tail); if (!NILP (Vpurify_flag)) tem = Fpurecopy (tem); Fput (sym, Qvariable_documentation, tem); @@ -2233,9 +2234,19 @@ funcall_lambda (fun, nargs, arg_vector) if (CONSP (fun)) val = Fprogn (Fcdr (Fcdr (fun))); else - val = Fbyte_code (XVECTOR (fun)->contents[COMPILED_BYTECODE], - XVECTOR (fun)->contents[COMPILED_CONSTANTS], - XVECTOR (fun)->contents[COMPILED_STACK_DEPTH]); + { + /* If we have not actually read the bytecode string + and constants vector yet, fetch them from the file. */ + if (CONSP (XVECTOR (fun)->contents[COMPILED_BYTECODE])) + { + tem = read_doc_string (XVECTOR (fun)->contents[COMPILED_BYTECODE]); + XVECTOR (fun)->contents[COMPILED_BYTECODE] = XCONS (tem)->car; + XVECTOR (fun)->contents[COMPILED_CONSTANTS] = XCONS (tem)->cdr; + } + val = Fbyte_code (XVECTOR (fun)->contents[COMPILED_BYTECODE], + XVECTOR (fun)->contents[COMPILED_CONSTANTS], + XVECTOR (fun)->contents[COMPILED_STACK_DEPTH]); + } return unbind_to (count, val); } |