emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/emacs-24 r108398: Fix last change in bidi_m


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-24 r108398: Fix last change in bidi_mirror_char.
Date: Fri, 02 Nov 2012 01:46:07 -0000
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 108398
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Sun 2012-05-27 15:27:07 +0300
message:
  Fix last change in bidi_mirror_char.
modified:
  src/ChangeLog
  src/bidi.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-05-27 12:18:35 +0000
+++ b/src/ChangeLog     2012-05-27 12:27:07 +0000
@@ -1,3 +1,7 @@
+2012-05-27  Eli Zaretskii  <address@hidden>
+
+       * bidi.c (bidi_mirror_char): Fix last change.
+
 2012-05-27  Andreas Schwab  <address@hidden>
 
        * unexmacosx.c (copy_data_segment): Truncate after 16 characters

=== modified file 'src/bidi.c'
--- a/src/bidi.c        2012-05-27 07:32:46 +0000
+++ b/src/bidi.c        2012-05-27 12:27:07 +0000
@@ -204,8 +204,18 @@
   val = CHAR_TABLE_REF (bidi_mirror_table, c);
   if (INTEGERP (val))
     {
+      int v = XINT (val);
+
+      /* In a build with extra checks, make sure the value does not
+        overflow a 32-bit int.  */
       eassert (CHAR_VALID_P (XINT (val)));
-      return XINT (val);
+
+      /* Minimal test we must do in optimized builds, to prevent weird
+        crashes further down the road.  */
+      if (v < 0 || v > MAX_CHAR)
+       abort ();
+
+      return v;
     }
 
   return c;


reply via email to

[Prev in Thread] Current Thread [Next in Thread]