Mercurial > emacs
changeset 41597:b28d5d866500
Use AREF and ASIZE.
(Ffetch_bytecode): Add the file name to the error message.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Mon, 26 Nov 2001 23:29:48 +0000 |
parents | 3c035e37d086 |
children | e8e16616217d |
files | src/eval.c |
diffstat | 1 files changed, 17 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/eval.c Mon Nov 26 23:03:47 2001 +0000 +++ b/src/eval.c Mon Nov 26 23:29:48 2001 +0000 @@ -1780,7 +1780,7 @@ have an element whose index is COMPILED_INTERACTIVE, which is where the interactive spec is stored. */ else if (COMPILEDP (fun)) - return ((XVECTOR (fun)->size & PSEUDOVECTOR_SIZE_MASK) > COMPILED_INTERACTIVE + return ((ASIZE (fun) & PSEUDOVECTOR_SIZE_MASK) > COMPILED_INTERACTIVE ? Qt : Qnil); /* Strings and vectors are keyboard macros. */ @@ -2857,7 +2857,7 @@ return Fsignal (Qinvalid_function, Fcons (fun, Qnil)); } else if (COMPILEDP (fun)) - syms_left = XVECTOR (fun)->contents[COMPILED_ARGLIST]; + syms_left = AREF (fun, COMPILED_ARGLIST); else abort (); @@ -2900,11 +2900,11 @@ { /* 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])) + if (CONSP (AREF (fun, COMPILED_BYTECODE))) Ffetch_bytecode (fun); - val = Fbyte_code (XVECTOR (fun)->contents[COMPILED_BYTECODE], - XVECTOR (fun)->contents[COMPILED_CONSTANTS], - XVECTOR (fun)->contents[COMPILED_STACK_DEPTH]); + val = Fbyte_code (AREF (fun, COMPILED_BYTECODE), + AREF (fun, COMPILED_CONSTANTS), + AREF (fun, COMPILED_STACK_DEPTH)); } return unbind_to (count, val); @@ -2918,14 +2918,19 @@ { Lisp_Object tem; - if (COMPILEDP (object) - && CONSP (XVECTOR (object)->contents[COMPILED_BYTECODE])) + if (COMPILEDP (object) && CONSP (AREF (object, COMPILED_BYTECODE))) { - tem = read_doc_string (XVECTOR (object)->contents[COMPILED_BYTECODE]); + tem = read_doc_string (AREF (object, COMPILED_BYTECODE)); if (!CONSP (tem)) - error ("invalid byte code"); - XVECTOR (object)->contents[COMPILED_BYTECODE] = XCAR (tem); - XVECTOR (object)->contents[COMPILED_CONSTANTS] = XCDR (tem); + { + tem = AREF (object, COMPILED_BYTECODE); + if (CONSP (tem) && STRINGP (XCAR (tem))) + error ("Invalid byte code in %s", XSTRING (XCAR (tem))->data); + else + error ("Invalid byte code"); + } + AREF (object, COMPILED_BYTECODE) = XCAR (tem); + AREF (object, COMPILED_CONSTANTS) = XCDR (tem); } return object; }