aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorJoakim Verona2013-01-11 00:03:43 +0100
committerJoakim Verona2013-01-11 00:03:43 +0100
commit26f277ba01010776e63623d446f182f5b6f23dd3 (patch)
treeaa2a9a9f31241f687902eafafc1535ea23bd1887 /src/data.c
parent09708f70bd02e7a2edec79e1bcfd04fb9b7f48d3 (diff)
parenta778dd57d0da9004a72320f8082d4f6220f178e2 (diff)
downloademacs-26f277ba01010776e63623d446f182f5b6f23dd3.tar.gz
emacs-26f277ba01010776e63623d446f182f5b6f23dd3.zip
auto upstream
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/data.c b/src/data.c
index 50dc188684f..6622088b648 100644
--- a/src/data.c
+++ b/src/data.c
@@ -914,13 +914,11 @@ store_symval_forwarding (union Lisp_Fwd *valcontents, register Lisp_Object newva
914 case Lisp_Fwd_Buffer_Obj: 914 case Lisp_Fwd_Buffer_Obj:
915 { 915 {
916 int offset = XBUFFER_OBJFWD (valcontents)->offset; 916 int offset = XBUFFER_OBJFWD (valcontents)->offset;
917 Lisp_Object type = XBUFFER_OBJFWD (valcontents)->slottype; 917 Lisp_Object predicate = XBUFFER_OBJFWD (valcontents)->predicate;
918 918
919 if (!(NILP (type) || NILP (newval) 919 if (!NILP (predicate) && !NILP (newval)
920 || (XINT (type) == Lisp_Int0 920 && NILP (call1 (predicate, newval)))
921 ? INTEGERP (newval) 921 wrong_type_argument (predicate, newval);
922 : XTYPE (newval) == XINT (type))))
923 buffer_slot_type_mismatch (newval, XINT (type));
924 922
925 if (buf == NULL) 923 if (buf == NULL)
926 buf = current_buffer; 924 buf = current_buffer;