diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2018-01-09 10:54:55 +0100 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2018-01-09 11:03:31 +0100 |
commit | fd2ad1147ad9565841372e56e6bb939c0f843ac5 (patch) | |
tree | 2435e160b1037b7b2c3779694dc33bf064bfd043 /src | |
parent | 7ac6af665ba3e098a097cab869e814bdbe34952d (diff) |
Fix undefined-behavior signed shifts
Diffstat (limited to 'src')
-rw-r--r-- | src/fccharset.c | 6 | ||||
-rw-r--r-- | src/fcfreetype.c | 4 | ||||
-rw-r--r-- | src/ftglue.h | 12 |
3 files changed, 11 insertions, 11 deletions
diff --git a/src/fccharset.c b/src/fccharset.c index 69fbf662..114f9484 100644 --- a/src/fccharset.c +++ b/src/fccharset.c @@ -274,7 +274,7 @@ FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4) if (!leaf) return FcFalse; b = &leaf->map[(ucs4 & 0xff) >> 5]; - *b |= (1 << (ucs4 & 0x1f)); + *b |= (1U << (ucs4 & 0x1f)); return FcTrue; } @@ -290,7 +290,7 @@ FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4) if (!leaf) return FcTrue; b = &leaf->map[(ucs4 & 0xff) >> 5]; - *b &= ~(1 << (ucs4 & 0x1f)); + *b &= ~(1U << (ucs4 & 0x1f)); /* We don't bother removing the leaf if it's empty */ return FcTrue; } @@ -594,7 +594,7 @@ FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4) leaf = FcCharSetFindLeaf (fcs, ucs4); if (!leaf) return FcFalse; - return (leaf->map[(ucs4 & 0xff) >> 5] & (1 << (ucs4 & 0x1f))) != 0; + return (leaf->map[(ucs4 & 0xff) >> 5] & (1U << (ucs4 & 0x1f))) != 0; } static FcChar32 diff --git a/src/fcfreetype.c b/src/fcfreetype.c index 4d076b77..49fb39f2 100644 --- a/src/fcfreetype.c +++ b/src/fcfreetype.c @@ -1670,7 +1670,7 @@ FcFreeTypeQueryFaceInternal (const FT_Face face, bits = os2->ulCodePageRange2; bit = FcCodePageRange[i].bit - 32; } - if (bits & (1 << bit)) + if (bits & (1U << bit)) { /* * If the font advertises support for multiple @@ -2378,7 +2378,7 @@ FcFreeTypeCharSet (FT_Face face, FcBlanks *blanks FC_UNUSED) goto bail; } off = ucs4 & 0xff; - leaf->map[off >> 5] |= (1 << (off & 0x1f)); + leaf->map[off >> 5] |= (1U << (off & 0x1f)); } ucs4 = FT_Get_Next_Char (face, ucs4, &glyph); diff --git a/src/ftglue.h b/src/ftglue.h index e0fd1714..650ee283 100644 --- a/src/ftglue.h +++ b/src/ftglue.h @@ -69,14 +69,14 @@ FT_BEGIN_HEADER #define GET_Byte() (*stream->cursor++) #define GET_Short() (stream->cursor += 2, (FT_Short)( \ - (*(((FT_Byte*)stream->cursor)-2) << 8) | \ - *(((FT_Byte*)stream->cursor)-1) \ + ((FT_ULong)*(((FT_Byte*)stream->cursor)-2) << 8) | \ + (FT_ULong)*(((FT_Byte*)stream->cursor)-1) \ )) #define GET_Long() (stream->cursor += 4, (FT_Long)( \ - (*(((FT_Byte*)stream->cursor)-4) << 24) | \ - (*(((FT_Byte*)stream->cursor)-3) << 16) | \ - (*(((FT_Byte*)stream->cursor)-2) << 8) | \ - *(((FT_Byte*)stream->cursor)-1) \ + ((FT_ULong)*(((FT_Byte*)stream->cursor)-4) << 24) | \ + ((FT_ULong)*(((FT_Byte*)stream->cursor)-3) << 16) | \ + ((FT_ULong)*(((FT_Byte*)stream->cursor)-2) << 8) | \ + (FT_ULong)*(((FT_Byte*)stream->cursor)-1) \ )) #define GET_Char() ((FT_Char)GET_Byte()) |