aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorTom Tromey2013-01-16 11:48:32 -0700
committerTom Tromey2013-01-16 11:48:32 -0700
commit6f4de085f065e11f4df3195d47479f28f5ef08ba (patch)
tree1211a00f1afc86c2b73624897993db02a4852943 /src/data.c
parente078a23febca14bc919c5806670479c395e3253e (diff)
parentffe04adc88e546c406f9b050238fb98a7243c7a0 (diff)
downloademacs-6f4de085f065e11f4df3195d47479f28f5ef08ba.tar.gz
emacs-6f4de085f065e11f4df3195d47479f28f5ef08ba.zip
merge from trunk
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 e9f3a2cff3f..8a66cbe9197 100644
--- a/src/data.c
+++ b/src/data.c
@@ -951,13 +951,11 @@ store_symval_forwarding (union Lisp_Fwd *valcontents, register Lisp_Object newva
951 case Lisp_Fwd_Buffer_Obj: 951 case Lisp_Fwd_Buffer_Obj:
952 { 952 {
953 int offset = XBUFFER_OBJFWD (valcontents)->offset; 953 int offset = XBUFFER_OBJFWD (valcontents)->offset;
954 Lisp_Object type = XBUFFER_OBJFWD (valcontents)->slottype; 954 Lisp_Object predicate = XBUFFER_OBJFWD (valcontents)->predicate;
955 955
956 if (!(NILP (type) || NILP (newval) 956 if (!NILP (predicate) && !NILP (newval)
957 || (XINT (type) == Lisp_Int0 957 && NILP (call1 (predicate, newval)))
958 ? INTEGERP (newval) 958 wrong_type_argument (predicate, newval);
959 : XTYPE (newval) == XINT (type))))
960 buffer_slot_type_mismatch (newval, XINT (type));
961 959
962 if (buf == NULL) 960 if (buf == NULL)
963 buf = current_buffer; 961 buf = current_buffer;