Bug 1099110 - Add a runtime check before the downcast in BreakSink::SetCapitalization. r=jfkthame

This commit is contained in:
Mats Palmgren 2015-01-24 12:35:12 -05:00
Родитель 8df8bfb095
Коммит 469969b044
1 изменённых файлов: 11 добавлений и 9 удалений

Просмотреть файл

@ -972,18 +972,20 @@ public:
virtual void SetCapitalization(uint32_t aOffset, uint32_t aLength,
bool* aCapitalize) MOZ_OVERRIDE {
NS_ASSERTION(mTextRun->GetFlags() & nsTextFrameUtils::TEXT_IS_TRANSFORMED,
"Text run should be transformed!");
nsTransformedTextRun* transformedTextRun =
static_cast<nsTransformedTextRun*>(mTextRun);
transformedTextRun->SetCapitalization(aOffset + mOffsetIntoTextRun, aLength,
aCapitalize, mContext);
MOZ_ASSERT(mTextRun->GetFlags() & nsTextFrameUtils::TEXT_IS_TRANSFORMED,
"Text run should be transformed!");
if (mTextRun->GetFlags() & nsTextFrameUtils::TEXT_IS_TRANSFORMED) {
nsTransformedTextRun* transformedTextRun =
static_cast<nsTransformedTextRun*>(mTextRun);
transformedTextRun->SetCapitalization(aOffset + mOffsetIntoTextRun, aLength,
aCapitalize, mContext);
}
}
void Finish(gfxMissingFontRecorder* aMFR) {
NS_ASSERTION(!(mTextRun->GetFlags() &
(gfxTextRunFactory::TEXT_UNUSED_FLAGS |
nsTextFrameUtils::TEXT_UNUSED_FLAG)),
MOZ_ASSERT(!(mTextRun->GetFlags() &
(gfxTextRunFactory::TEXT_UNUSED_FLAGS |
nsTextFrameUtils::TEXT_UNUSED_FLAG)),
"Flag set that should never be set! (memory safety error?)");
if (mTextRun->GetFlags() & nsTextFrameUtils::TEXT_IS_TRANSFORMED) {
nsTransformedTextRun* transformedTextRun =