]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fcomposition_get_gstring): Yet another int/Lisp_Oject mixup (YAILOM).
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 17 Sep 2008 21:25:29 +0000 (21:25 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 17 Sep 2008 21:25:29 +0000 (21:25 +0000)
src/ChangeLog
src/composite.c

index 5a1f6d0602c4b179105cc7c4bd824345ea148024..ece8e4829f2b30961ae85f62328a3e14b9510e27 100644 (file)
@@ -1,3 +1,8 @@
+2008-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * composite.c (Fcomposition_get_gstring): Yet another int/Lisp_Oject
+       mixup (YAILOM).
+
 2008-09-17  Chong Yidong  <cyd@stupidchicken.com>
 
        * indent.c (Fvertical_motion): Use position reported by iterator
index 95f700c7116a9ddbd6c86d47b5e518f9e273cca6..5773744c08311b0c083fa274190dbf1190ef84f7 100644 (file)
@@ -1489,6 +1489,7 @@ must be ignore.  */)
      Lisp_Object font_object, from, to, string;
 {
   Lisp_Object gstring, header;
+  EMACS_INT frompos, topos;
 
   if (! NILP (font_object))
     CHECK_FONT_OBJECT (font_object);
@@ -1496,8 +1497,13 @@ must be ignore.  */)
   gstring = gstring_lookup_cache (header);
   if (! NILP (gstring))
     return gstring;
-  if (LGSTRING_GLYPH_LEN (gstring_work) < to - from)
-    gstring_work = Fmake_vector (make_number (to - from + 2), Qnil);
+
+  /* Maybe we should check this at the function's entry.  --Stef  */
+  CHECK_NATNUM (from); frompos = XINT (from);
+  CHECK_NATNUM (to);   topos = XINT (to);
+
+  if (LGSTRING_GLYPH_LEN (gstring_work) < topos - frompos)
+    gstring_work = Fmake_vector (make_number (topos - frompos + 2), Qnil);
   LGSTRING_SET_HEADER (gstring_work, header);
   LGSTRING_SET_ID (gstring_work, Qnil);
   fill_gstring_body (gstring_work);