Bug 1540357 - Fix implicit int conversions in dom/canvas's layout/* includes. r=dholbert

nsUnicodeProperties.h includes into ICU, which has implicit int
truncation, so quarantine this include out of problematic headers.

Depends on D25498

Differential Revision: https://phabricator.services.mozilla.com/D25499

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jeff Gilbert 2019-04-02 17:00:49 +00:00
parent 69072e8b95
commit 373563b0ec
5 changed files with 16 additions and 11 deletions

View File

@ -25,6 +25,7 @@
#include "nsNodeInfoManager.h"
#include "nsContentCreatorFunctions.h"
#include "nsContentUtils.h"
#include "nsUnicodeProperties.h"
#include "mozilla/EventStates.h"
#include "nsTextNode.h"
#include "nsTextFrame.h"

View File

@ -287,7 +287,7 @@ class WritingMode {
// and hypothetical) values. But this is fine; we only need to
// distinguish between vertical and horizontal in
// PhysicalAxisForLogicalAxis.
int wm = mWritingMode & eOrientationMask;
const auto wm = static_cast<uint8_t>(mWritingMode & eOrientationMask);
return PhysicalAxisForLogicalAxis(wm, aAxis);
}
@ -362,8 +362,8 @@ class WritingMode {
if (IsBlock(aSide)) {
static_assert(eOrientationMask == 0x01 && eBlockFlowMask == 0x04,
"unexpected mask values");
int wm = ((mWritingMode & eBlockFlowMask) >> 1) |
(mWritingMode & eOrientationMask);
const auto wm = static_cast<uint8_t>(((mWritingMode & eBlockFlowMask) >> 1) |
(mWritingMode & eOrientationMask));
return PhysicalSideForBlockAxis(wm, GetEdge(aSide));
}

View File

@ -12,10 +12,20 @@
#include "nsStyleStruct.h"
#include "nsTextFragment.h"
#include "nsUnicharUtils.h"
#include "nsUnicodeProperties.h"
#include <algorithm>
using namespace mozilla;
// static
bool nsTextFrameUtils::IsSpaceCombiningSequenceTail(const char16_t* aChars,
int32_t aLength) {
return aLength > 0 &&
(mozilla::unicode::IsClusterExtender(aChars[0]) ||
(IsBidiControl(aChars[0]) &&
IsSpaceCombiningSequenceTail(aChars + 1, aLength - 1)));
}
static bool IsDiscardable(char16_t ch, nsTextFrameUtils::Flags* aFlags) {
// Unlike IS_DISCARDABLE, we don't discard \r. \r will be ignored by
// gfxTextRun and discarding it would force us to copy text in many cases of

View File

@ -9,7 +9,6 @@
#include "gfxSkipChars.h"
#include "nsBidiUtils.h"
#include "nsUnicodeProperties.h"
class nsIContent;
struct nsStyleText;
@ -83,12 +82,7 @@ class nsTextFrameUtils {
* controls).
*/
static bool IsSpaceCombiningSequenceTail(const char16_t* aChars,
int32_t aLength) {
return aLength > 0 &&
(mozilla::unicode::IsClusterExtender(aChars[0]) ||
(IsBidiControl(aChars[0]) &&
IsSpaceCombiningSequenceTail(aChars + 1, aLength - 1)));
}
int32_t aLength);
static bool IsSpaceCombiningSequenceTail(const uint8_t* aChars,
int32_t aLength) {
return false;

View File

@ -78,7 +78,7 @@ class nsStyleUtil {
*/
static uint8_t FloatToColorComponent(float aAlpha) {
NS_ASSERTION(0.0 <= aAlpha && aAlpha <= 1.0, "out of range");
return NSToIntRound(aAlpha * 255);
return static_cast<uint8_t>(NSToIntRound(aAlpha * 255));
}
/*