]> git.eshelyaron.com Git - emacs.git/commitdiff
Shorter and safer fix for the segfault.
authorGregory Heytings <gregory@heytings.org>
Mon, 18 Jul 2022 14:04:04 +0000 (14:04 +0000)
committerGregory Heytings <gregory@heytings.org>
Mon, 18 Jul 2022 14:07:07 +0000 (16:07 +0200)
* src/xdisp.c (get_visually_first_element): Shorter and safer fix for
the segfault.  Improves the fix introduced in cc7f37b2a4.

src/xdisp.c

index d69d7440bc0c2538a33a0e4e7cc9f9cc6f7fd6af..572ad2b85405e4e10eeea57a8447b1d2822e96f8 100644 (file)
@@ -8668,18 +8668,11 @@ get_visually_first_element (struct it *it)
   bool string_p = STRINGP (it->string) || it->s;
   ptrdiff_t eob = (string_p ? it->bidi_it.string.schars : ZV);
   ptrdiff_t bob;
+  ptrdiff_t obegv = BEGV;
 
-  SET_WITH_NARROWED_BEGV (it, bob, string_p ? 0 : BEGV);
-
-  /* Reseat again when, as a consequence of the SET_WITH_NARROWED_BEGV
-     above, the iterator is before bob.  */
-  if (!string_p && IT_CHARPOS (*it) < bob)
-    {
-      struct text_pos pos;
-      pos.charpos = bob;
-      pos.bytepos = CHAR_TO_BYTE (bob);
-      reseat (it, pos, true);
-    }
+  SET_WITH_NARROWED_BEGV (it, bob,
+                         string_p ? 0 :
+                         IT_BYTEPOS (*it) < BEGV ? obegv : BEGV);
 
   if (STRINGP (it->string))
     {