--- firefox-52.9.0esr.orig/gfx/thebes/gfxFont.cpp 2020-06-03 21:55:12.303261510 +0300 +++ firefox-52.9.0esr/gfx/thebes/gfxFont.cpp 2020-06-03 21:57:35.318890953 +0300 @@ -3071,6 +3071,28 @@ return true; } +// Explicit instantiations of GetShapedWord, to avoid libxul link failure +template gfxShapedWord* +gfxFont::GetShapedWord(DrawTarget *aDrawTarget, + const uint8_t *aText, + uint32_t aLength, + uint32_t aHash, + Script aRunScript, + bool aVertical, + int32_t aAppUnitsPerDevUnit, + uint32_t aFlags, + gfxTextPerfMetrics *aTextPerf); + +template gfxShapedWord* +gfxFont::GetShapedWord(DrawTarget *aDrawTarget, + const char16_t *aText, + uint32_t aLength, + uint32_t aHash, + Script aRunScript, + bool aVertical, + int32_t aAppUnitsPerDevUnit, + uint32_t aFlags, + gfxTextPerfMetrics *aTextPerf); // Explicit instantiations of SplitAndInitTextRun, to avoid libxul link failure template bool --- firefox-52.9.0esr.orig/gfx/thebes/gfxFont.h 2020-06-03 21:55:12.299928120 +0300 +++ firefox-52.9.0esr/gfx/thebes/gfxFont.h 2020-06-03 21:58:04.522669252 +0300 @@ -2171,6 +2171,72 @@ static double CalcXScale(DrawTarget* aDrawTarget); }; +// Explicit declarations of SplitAndInitTextRun, to avoid libxul link failure +extern template bool +gfxFont::SplitAndInitTextRun(DrawTarget *aDrawTarget, + gfxTextRun *aTextRun, + const uint8_t *aString, + uint32_t aRunStart, + uint32_t aRunLength, + Script aRunScript, + bool aVertical); + +extern template bool +gfxFont::SplitAndInitTextRun(DrawTarget *aDrawTarget, + gfxTextRun *aTextRun, + const char16_t *aString, + uint32_t aRunStart, + uint32_t aRunLength, + Script aRunScript, + bool aVertical); + +// Explicit declarations of GetShapedWord, to avoid libxul link failure +extern template gfxShapedWord* +gfxFont::GetShapedWord(DrawTarget *aDrawTarget, + const uint8_t *aText, + uint32_t aLength, + uint32_t aHash, + Script aRunScript, + bool aVertical, + int32_t aAppUnitsPerDevUnit, + uint32_t aFlags, + gfxTextPerfMetrics *aTextPerf); + +extern template gfxShapedWord* +gfxFont::GetShapedWord(DrawTarget *aDrawTarget, + const char16_t *aText, + uint32_t aLength, + uint32_t aHash, + Script aRunScript, + bool aVertical, + int32_t aAppUnitsPerDevUnit, + uint32_t aFlags, + gfxTextPerfMetrics *aTextPerf); + +// Explicit declarations of InitFakeSmallCapsRun, to avoid libxul link failure +template<> bool +gfxFont::InitFakeSmallCapsRun(DrawTarget *aDrawTarget, + gfxTextRun *aTextRun, + const uint8_t *aText, + uint32_t aOffset, + uint32_t aLength, + uint8_t aMatchType, + uint16_t aOrientation, + Script aScript, + bool aSyntheticLower, + bool aSyntheticUpper); +template<> bool +gfxFont::InitFakeSmallCapsRun(DrawTarget *aDrawTarget, + gfxTextRun *aTextRun, + const char16_t *aText, + uint32_t aOffset, + uint32_t aLength, + uint8_t aMatchType, + uint16_t aOrientation, + Script aScript, + bool aSyntheticLower, + bool aSyntheticUpper); + // proportion of ascent used for x-height, if unable to read value from font #define DEFAULT_XHEIGHT_FACTOR 0.56f