emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r112123: Static checking by GCC 4.8-2


From: Paul Eggert
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r112123: Static checking by GCC 4.8-20130319.
Date: Sat, 23 Mar 2013 19:40:51 -0700
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 112123
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Sat 2013-03-23 19:40:51 -0700
message:
  Static checking by GCC 4.8-20130319.
  
  * image.c (gif_load): Assume pass < 3 to pacify GCC.
  * process.c (Fset_process_datagram_address)
  (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
  * xdisp.c (get_char_face_and_encoding):
  (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
  (get_glyph_face_and_encoding): Prepare face before possibly using it.
  (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
modified:
  src/ChangeLog
  src/image.c
  src/process.c
  src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-03-24 00:48:49 +0000
+++ b/src/ChangeLog     2013-03-24 02:40:51 +0000
@@ -1,3 +1,14 @@
+2013-03-24  Paul Eggert  <address@hidden>
+
+       Static checking by GCC 4.8-20130319.
+       * image.c (gif_load): Assume pass < 3 to pacify GCC.
+       * process.c (Fset_process_datagram_address)
+       (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
+       * xdisp.c (get_char_face_and_encoding):
+       (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
+       (get_glyph_face_and_encoding): Prepare face before possibly using it.
+       (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
+
 2013-03-24  Ken Brown  <address@hidden>
 
        * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to

=== modified file 'src/image.c'
--- a/src/image.c       2013-03-20 09:56:19 +0000
+++ b/src/image.c       2013-03-24 02:40:51 +0000
@@ -7373,11 +7373,10 @@
               y < subimg_height;
               y++, row += interlace_increment[pass])
            {
-             if (row >= subimg_height)
+             while (subimg_height <= row)
                {
+                 lint_assume (pass < 3);
                  row = interlace_start[++pass];
-                 while (row >= subimg_height)
-                   row = interlace_start[++pass];
                }
 
              for (x = 0; x < subimg_width; x++)

=== modified file 'src/process.c'
--- a/src/process.c     2013-03-08 02:32:21 +0000
+++ b/src/process.c     2013-03-24 02:40:51 +0000
@@ -2155,7 +2155,7 @@
   channel = XPROCESS (process)->infd;
 
   len = get_lisp_to_sockaddr_size (address, &family);
-  if (datagram_address[channel].len != len)
+  if (len == 0 || datagram_address[channel].len != len)
     return Qnil;
   conv_lisp_to_sockaddr (family, address, datagram_address[channel].sa, len);
   return address;
@@ -3269,7 +3269,8 @@
                {
                  int rfamily, rlen;
                  rlen = get_lisp_to_sockaddr_size (remote, &rfamily);
-                 if (rfamily == lres->ai_family && rlen == lres->ai_addrlen)
+                 if (rlen != 0 && rfamily == lres->ai_family
+                     && rlen == lres->ai_addrlen)
                    conv_lisp_to_sockaddr (rfamily, remote,
                                           datagram_address[s].sa, rlen);
                }

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2013-03-22 12:41:34 +0000
+++ b/src/xdisp.c       2013-03-24 02:40:51 +0000
@@ -22391,16 +22391,16 @@
                            XChar2b *char2b, int display_p)
 {
   struct face *face = FACE_FROM_ID (f, face_id);
+  unsigned code = 0;
 
   if (face->font)
     {
-      unsigned code = face->font->driver->encode_char (face->font, c);
+      code = face->font->driver->encode_char (face->font, c);
 
-      if (code != FONT_INVALID_CODE)
-       STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
-      else
-       STORE_XCHAR2B (char2b, 0, 0);
+      if (code == FONT_INVALID_CODE)
+       code = 0;
     }
+  STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
 
   /* Make sure X resources of the face are allocated.  */
 #ifdef HAVE_X_WINDOWS
@@ -22424,31 +22424,30 @@
                             XChar2b *char2b, int *two_byte_p)
 {
   struct face *face;
+  unsigned code = 0;
 
   eassert (glyph->type == CHAR_GLYPH);
   face = FACE_FROM_ID (f, glyph->face_id);
 
+  /* Make sure X resources of the face are allocated.  */
+  eassert (face != NULL);
+  PREPARE_FACE_FOR_DISPLAY (f, face);
+
   if (two_byte_p)
     *two_byte_p = 0;
 
   if (face->font)
     {
-      unsigned code;
-
       if (CHAR_BYTE8_P (glyph->u.ch))
        code = CHAR_TO_BYTE8 (glyph->u.ch);
       else
        code = face->font->driver->encode_char (face->font, glyph->u.ch);
 
-      if (code != FONT_INVALID_CODE)
-       STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
-      else
-       STORE_XCHAR2B (char2b, 0, 0);
+      if (code == FONT_INVALID_CODE)
+       code = 0;
     }
 
-  /* Make sure X resources of the face are allocated.  */
-  eassert (face != NULL);
-  PREPARE_FACE_FOR_DISPLAY (f, face);
+  STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
   return face;
 }
 
@@ -22758,9 +22757,12 @@
 get_per_char_metric (struct font *font, XChar2b *char2b)
 {
   static struct font_metrics metrics;
-  unsigned code = (XCHAR2B_BYTE1 (char2b) << 8) | XCHAR2B_BYTE2 (char2b);
+  unsigned code;
 
-  if (! font || code == FONT_INVALID_CODE)
+  if (! font)
+    return NULL;
+  code = (XCHAR2B_BYTE1 (char2b) << 8) | XCHAR2B_BYTE2 (char2b);
+  if (code == FONT_INVALID_CODE)
     return NULL;
   font->driver->text_extents (font, &code, 1, &metrics);
   return &metrics;


reply via email to

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