[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 1171fa3: Fix set-marker when the position is larger than the larg
From: |
Eli Zaretskii |
Subject: |
master 1171fa3: Fix set-marker when the position is larger than the largest buffer |
Date: |
Fri, 6 Dec 2019 08:30:57 -0500 (EST) |
branch: master
commit 1171fa32ca0bc7682b9fdc93babebc4c4feed104
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Fix set-marker when the position is larger than the largest buffer
* src/marker.c (set_marker_internal): Handle the case where
POSITION is beyond PTRDIFF_MAX, which can happen if Emacs was
built --with-wide-int. Bug uncovered by the recently added
overlay tests.
---
src/marker.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/marker.c b/src/marker.c
index 0b2e1bf..6358bc3 100644
--- a/src/marker.c
+++ b/src/marker.c
@@ -529,7 +529,18 @@ set_marker_internal (Lisp_Object marker, Lisp_Object
position,
don't want to call buf_charpos_to_bytepos if POSITION
is a marker and so we know the bytepos already. */
if (FIXNUMP (position))
- charpos = XFIXNUM (position), bytepos = -1;
+ {
+#if EMACS_INT_MAX > PTRDIFF_MAX
+ /* A --with-wide-int build. */
+ EMACS_INT cpos = XFIXNUM (position);
+ if (cpos > PTRDIFF_MAX)
+ cpos = PTRDIFF_MAX;
+ charpos = cpos;
+ bytepos = -1;
+#else
+ charpos = XFIXNUM (position), bytepos = -1;
+#endif
+ }
else if (MARKERP (position))
{
charpos = XMARKER (position)->charpos;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 1171fa3: Fix set-marker when the position is larger than the largest buffer,
Eli Zaretskii <=