Fix undefined-behavior signed shifts
This commit is contained in:
parent
7ac6af665b
commit
fd2ad1147a
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
12
src/ftglue.h
12
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())
|
||||
|
|
Loading…
Reference in New Issue