/[emacs]/emacs/src/eval.c
ViewVC logotype

Diff of /emacs/src/eval.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.175 by monnier, Fri Nov 16 11:43:41 2001 UTC revision 1.176 by monnier, Mon Nov 26 23:29:48 2001 UTC
# Line 1780  Also, a symbol satisfies `commandp' if i Line 1780  Also, a symbol satisfies `commandp' if i
1780       have an element whose index is COMPILED_INTERACTIVE, which is       have an element whose index is COMPILED_INTERACTIVE, which is
1781       where the interactive spec is stored.  */       where the interactive spec is stored.  */
1782    else if (COMPILEDP (fun))    else if (COMPILEDP (fun))
1783      return ((XVECTOR (fun)->size & PSEUDOVECTOR_SIZE_MASK) > COMPILED_INTERACTIVE      return ((ASIZE (fun) & PSEUDOVECTOR_SIZE_MASK) > COMPILED_INTERACTIVE
1784              ? Qt : Qnil);              ? Qt : Qnil);
1785    
1786    /* Strings and vectors are keyboard macros.  */    /* Strings and vectors are keyboard macros.  */
# Line 2857  funcall_lambda (fun, nargs, arg_vector) Line 2857  funcall_lambda (fun, nargs, arg_vector)
2857          return Fsignal (Qinvalid_function, Fcons (fun, Qnil));          return Fsignal (Qinvalid_function, Fcons (fun, Qnil));
2858      }      }
2859    else if (COMPILEDP (fun))    else if (COMPILEDP (fun))
2860      syms_left = XVECTOR (fun)->contents[COMPILED_ARGLIST];      syms_left = AREF (fun, COMPILED_ARGLIST);
2861    else    else
2862      abort ();      abort ();
2863    
# Line 2900  funcall_lambda (fun, nargs, arg_vector) Line 2900  funcall_lambda (fun, nargs, arg_vector)
2900      {      {
2901        /* If we have not actually read the bytecode string        /* If we have not actually read the bytecode string
2902           and constants vector yet, fetch them from the file.  */           and constants vector yet, fetch them from the file.  */
2903        if (CONSP (XVECTOR (fun)->contents[COMPILED_BYTECODE]))        if (CONSP (AREF (fun, COMPILED_BYTECODE)))
2904          Ffetch_bytecode (fun);          Ffetch_bytecode (fun);
2905        val = Fbyte_code (XVECTOR (fun)->contents[COMPILED_BYTECODE],        val = Fbyte_code (AREF (fun, COMPILED_BYTECODE),
2906                          XVECTOR (fun)->contents[COMPILED_CONSTANTS],                          AREF (fun, COMPILED_CONSTANTS),
2907                          XVECTOR (fun)->contents[COMPILED_STACK_DEPTH]);                          AREF (fun, COMPILED_STACK_DEPTH));
2908      }      }
2909        
2910    return unbind_to (count, val);    return unbind_to (count, val);
# Line 2918  DEFUN ("fetch-bytecode", Ffetch_bytecode Line 2918  DEFUN ("fetch-bytecode", Ffetch_bytecode
2918  {  {
2919    Lisp_Object tem;    Lisp_Object tem;
2920    
2921    if (COMPILEDP (object)    if (COMPILEDP (object) && CONSP (AREF (object, COMPILED_BYTECODE)))
       && CONSP (XVECTOR (object)->contents[COMPILED_BYTECODE]))  
2922      {      {
2923        tem = read_doc_string (XVECTOR (object)->contents[COMPILED_BYTECODE]);        tem = read_doc_string (AREF (object, COMPILED_BYTECODE));
2924        if (!CONSP (tem))        if (!CONSP (tem))
2925          error ("invalid byte code");          {
2926        XVECTOR (object)->contents[COMPILED_BYTECODE] = XCAR (tem);            tem = AREF (object, COMPILED_BYTECODE);
2927        XVECTOR (object)->contents[COMPILED_CONSTANTS] = XCDR (tem);            if (CONSP (tem) && STRINGP (XCAR (tem)))
2928                error ("Invalid byte code in %s", XSTRING (XCAR (tem))->data);
2929              else
2930                error ("Invalid byte code");
2931            }
2932          AREF (object, COMPILED_BYTECODE) = XCAR (tem);
2933          AREF (object, COMPILED_CONSTANTS) = XCDR (tem);
2934      }      }
2935    return object;    return object;
2936  }  }

Legend:
Removed from v.1.175  
changed lines
  Added in v.1.176

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26