Mercurial > emacs
comparison src/data.c @ 50305:77bee06b14c5
(store_symval_forwarding): Delete special read-only
hack for type == -1, since we now use ->constant instead.
(Fkill_local_variable): Don't use XBUFFER if it can be nil.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 25 Mar 2003 16:30:15 +0000 |
parents | d23ab2416c49 |
children | 247bd25de9e9 |
comparison
equal
deleted
inserted
replaced
50304:d9d826db650f | 50305:77bee06b14c5 |
---|---|
895 case Lisp_Misc_Buffer_Objfwd: | 895 case Lisp_Misc_Buffer_Objfwd: |
896 { | 896 { |
897 int offset = XBUFFER_OBJFWD (valcontents)->offset; | 897 int offset = XBUFFER_OBJFWD (valcontents)->offset; |
898 Lisp_Object type; | 898 Lisp_Object type; |
899 | 899 |
900 type = PER_BUFFER_TYPE (offset); | |
901 if (XINT (type) == -1) | |
902 error ("Variable %s is read-only", SDATA (SYMBOL_NAME (symbol))); | |
903 | |
904 if (! NILP (type) && ! NILP (newval) | 900 if (! NILP (type) && ! NILP (newval) |
905 && XTYPE (newval) != XINT (type)) | 901 && XTYPE (newval) != XINT (type)) |
906 buffer_slot_type_mismatch (offset); | 902 buffer_slot_type_mismatch (offset); |
907 | 903 |
908 if (buf == NULL) | 904 if (buf == NULL) |
1614 | 1610 |
1615 /* If the symbol is set up with the current buffer's binding | 1611 /* If the symbol is set up with the current buffer's binding |
1616 loaded, recompute its value. We have to do it now, or else | 1612 loaded, recompute its value. We have to do it now, or else |
1617 forwarded objects won't work right. */ | 1613 forwarded objects won't work right. */ |
1618 { | 1614 { |
1619 Lisp_Object *pvalbuf; | 1615 Lisp_Object *pvalbuf, buf; |
1620 valcontents = SYMBOL_VALUE (variable); | 1616 valcontents = SYMBOL_VALUE (variable); |
1621 pvalbuf = &XBUFFER_LOCAL_VALUE (valcontents)->buffer; | 1617 pvalbuf = &XBUFFER_LOCAL_VALUE (valcontents)->buffer; |
1622 if (current_buffer == XBUFFER (*pvalbuf)) | 1618 XSETBUFFER (buf, current_buffer); |
1619 if (EQ (buf, *pvalbuf)) | |
1623 { | 1620 { |
1624 *pvalbuf = Qnil; | 1621 *pvalbuf = Qnil; |
1625 XBUFFER_LOCAL_VALUE (valcontents)->found_for_buffer = 0; | 1622 XBUFFER_LOCAL_VALUE (valcontents)->found_for_buffer = 0; |
1626 find_symbol_value (variable); | 1623 find_symbol_value (variable); |
1627 } | 1624 } |