]> git.eshelyaron.com Git - emacs.git/commitdiff
Remove redundant byte-swapping boundary
authorPo Lu <luangruo@yahoo.com>
Thu, 4 Apr 2024 05:52:52 +0000 (13:52 +0800)
committerEshel Yaron <me@eshelyaron.com>
Thu, 4 Apr 2024 11:40:25 +0000 (13:40 +0200)
* src/sfnt.c (sfnt_read_OS_2_table):

* src/sfnt.h (struct sfnt_OS_2_table): Don't redundantly realign
after s_family_class.

(cherry picked from commit daefd6771a4879bb8e71ea67f69522700155df01)

src/sfnt.c
src/sfnt.h

index 8598b052044153f4cb2886c179bd7e64f13b4d04..d909fba7677ddc7671f1cee8029bdffea9ffe55f 100644 (file)
@@ -16650,10 +16650,10 @@ sfnt_read_OS_2_table (int fd, struct sfnt_offset_subtable *subtable)
 
   OS_2 = xmalloc (sizeof *OS_2);
 
-  /* Read data up to the end of `panose'.  */
+  /* Read data into the structure.  */
 
-  wanted = SFNT_ENDOF (struct sfnt_OS_2_table, panose,
-                      unsigned char[10]);
+  wanted = SFNT_ENDOF (struct sfnt_OS_2_table, fs_last_char_index,
+                      uint16_t);
   rc = read (fd, OS_2, wanted);
 
   if (rc == -1 || rc != wanted)
@@ -16680,20 +16680,6 @@ sfnt_read_OS_2_table (int fd, struct sfnt_offset_subtable *subtable)
   sfnt_swap16 (&OS_2->y_strikeout_size);
   sfnt_swap16 (&OS_2->y_strikeout_position);
   sfnt_swap16 (&OS_2->s_family_class);
-
-  /* Read fields between ul_unicode_range and fs_last_char_index.  */
-  wanted = (SFNT_ENDOF (struct sfnt_OS_2_table, fs_last_char_index,
-                       uint16_t)
-           - offsetof (struct sfnt_OS_2_table, ul_unicode_range));
-  rc = read (fd, &OS_2->ul_unicode_range, wanted);
-
-  if (rc == -1 || rc != wanted)
-    {
-      xfree (OS_2);
-      return NULL;
-    }
-
-  /* Swap the remainder and return the table.  */
   sfnt_swap32 (&OS_2->ul_unicode_range[0]);
   sfnt_swap32 (&OS_2->ul_unicode_range[1]);
   sfnt_swap32 (&OS_2->ul_unicode_range[2]);
index 444b1dfe42780096633bfae8b3a66eb5b44d40df..ecc3876b39411240a96cf793b784c5e85f756c75 100644 (file)
@@ -1395,8 +1395,6 @@ struct sfnt_OS_2_table
   /* Microsoft ``panose'' classification.  */
   unsigned char panose[10];
 
-  /* Alignment boundary! */
-
   /* Unicode range specification.  */
   uint32_t ul_unicode_range[4];