# HG changeset patch # User Karl Heuer # Date 781938870 0 # Node ID 4bb620c9a075e51355f621482e81b6997c871491 # Parent a40af805e036a0bf3f40cf5eed552bcf23be1c4d (buffer_slot_type_mismatch): Take just the offset as argument. Only check against types that are actually used. diff -r a40af805e036 -r 4bb620c9a075 src/buffer.c --- a/src/buffer.c Wed Oct 12 05:14:11 1994 +0000 +++ b/src/buffer.c Wed Oct 12 05:14:30 1994 +0000 @@ -2424,32 +2424,26 @@ Fdelete_overlay (XCONS (hit_list)->car); } -/* Somebody has tried to store NEWVAL into the buffer-local slot with - offset XUINT (valcontents), and NEWVAL has an unacceptable type. */ +/* Somebody has tried to store a value with an unacceptable type + into the buffer-local slot with offset OFFSET. */ void -buffer_slot_type_mismatch (valcontents, newval) - Lisp_Object valcontents, newval; +buffer_slot_type_mismatch (offset) + int offset; { - unsigned int offset = XUINT (valcontents); - unsigned char *symbol_name = - (XSYMBOL (*(Lisp_Object *)(offset + (char *)&buffer_local_symbols)) - ->name->data); + Lisp_Object sym; char *type_name; - + sym = *(Lisp_Object *)(offset + (char *)&buffer_local_symbols); switch (XINT (*(Lisp_Object *)(offset + (char *)&buffer_local_types))) { case Lisp_Int: type_name = "integers"; break; case Lisp_String: type_name = "strings"; break; - case Lisp_Misc: type_name = "markers"; break; case Lisp_Symbol: type_name = "symbols"; break; - case Lisp_Cons: type_name = "lists"; break; - case Lisp_Vector: type_name = "vectors"; break; default: abort (); } error ("only %s should be stored in the buffer-local variable %s", - type_name, symbol_name); + type_name, XSYMBOL (sym)->name->data); } init_buffer_once ()