]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fdefvar): Fix minor error in previous change.
authorRichard M. Stallman <rms@gnu.org>
Wed, 21 Dec 1994 18:15:35 +0000 (18:15 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 21 Dec 1994 18:15:35 +0000 (18:15 +0000)
(funcall_lambda): Fetch bytecode and constants vector from file if nec.

src/eval.c

index f5dd69ff0574d9889db5b7fa69df555698a2e54e..c65744b9646635afc915a585624f6a523be0ca2a 100644 (file)
@@ -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);
 }
 \f