* src/sfnt/sfwoff2.c (compute_ULong_sum): Clean up.
diff --git a/src/sfnt/sfwoff2.c b/src/sfnt/sfwoff2.c
index f3c9e28..1ddbb24 100644
--- a/src/sfnt/sfwoff2.c
+++ b/src/sfnt/sfwoff2.c
@@ -289,7 +289,6 @@
     FT_ULong  checksum     = 0;
     FT_ULong  aligned_size = size & ~3UL;
     FT_ULong  i;
-    FT_ULong  v;
 
 
     for ( i = 0; i < aligned_size; i += 4 )
@@ -298,14 +297,9 @@
                   ( (FT_ULong)buf[i + 2] <<  8 ) |
                   ( (FT_ULong)buf[i + 3] <<  0 );
 
-    /* If size is not aligned to 4, treat as if it is padded with 0s. */
-    if ( size != aligned_size )
-    {
-      v = 0;
-      for ( i = aligned_size ; i < size; ++i )
-        v |= (FT_ULong)buf[i] << ( 24 - 8 * ( i & 3 ) );
-      checksum += v;
-    }
+    /* remaining bytes can be shifted and added one at a time */
+    for ( ; i < size; ++i )
+      checksum += (FT_ULong)buf[i] << ( 24 - 8 * ( i & 3 ) );
 
     return checksum;
   }