| Index: src/ports/SkFontHost_FreeType.cpp
|
| diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp
|
| index 860f32002c49f86e811b9f5d2a3a59f41aa4cc3a..32eafad87c903098a02f179ee7f200428fd2d018 100644
|
| --- a/src/ports/SkFontHost_FreeType.cpp
|
| +++ b/src/ports/SkFontHost_FreeType.cpp
|
| @@ -76,11 +76,11 @@ extern "C" {
|
| return sk_realloc_throw(block, new_size);
|
| }
|
| };
|
| -FT_MemoryRec_ gFTMemory = { NULL, sk_ft_alloc, sk_ft_free, sk_ft_realloc };
|
| +FT_MemoryRec_ gFTMemory = { nullptr, sk_ft_alloc, sk_ft_free, sk_ft_realloc };
|
|
|
| class FreeTypeLibrary : SkNoncopyable {
|
| public:
|
| - FreeTypeLibrary() : fLibrary(NULL), fIsLCDSupported(false), fLCDExtra(0) {
|
| + FreeTypeLibrary() : fLibrary(nullptr), fIsLCDSupported(false), fLCDExtra(0) {
|
| if (FT_New_Library(&gFTMemory, &fLibrary)) {
|
| return;
|
| }
|
| @@ -101,7 +101,7 @@ public:
|
| FT_Library_SetLcdFilterWeights(fLibrary, gGaussianLikeHeavyWeights);
|
| # elif SK_CAN_USE_DLOPEN == 1
|
| //The FreeType library is already loaded, so symbols are available in process.
|
| - void* self = dlopen(NULL, RTLD_LAZY);
|
| + void* self = dlopen(nullptr, RTLD_LAZY);
|
| if (self) {
|
| FT_Library_SetLcdFilterWeightsProc setLcdFilterWeights;
|
| //The following cast is non-standard, but safe for POSIX.
|
| @@ -157,7 +157,7 @@ static bool ref_ft_library() {
|
| SkASSERT(gFTCount >= 0);
|
|
|
| if (0 == gFTCount) {
|
| - SkASSERT(NULL == gFTLibrary);
|
| + SkASSERT(nullptr == gFTLibrary);
|
| gFTLibrary = new FreeTypeLibrary;
|
| }
|
| ++gFTCount;
|
| @@ -171,9 +171,9 @@ static void unref_ft_library() {
|
|
|
| --gFTCount;
|
| if (0 == gFTCount) {
|
| - SkASSERT(NULL != gFTLibrary);
|
| + SkASSERT(nullptr != gFTLibrary);
|
| delete gFTLibrary;
|
| - SkDEBUGCODE(gFTLibrary = NULL;)
|
| + SkDEBUGCODE(gFTLibrary = nullptr;)
|
| }
|
| }
|
|
|
| @@ -183,7 +183,7 @@ public:
|
| virtual ~SkScalerContext_FreeType();
|
|
|
| bool success() const {
|
| - return fFTSize != NULL && fFace != NULL;
|
| + return fFTSize != nullptr && fFace != nullptr;
|
| }
|
|
|
| protected:
|
| @@ -257,7 +257,7 @@ extern "C" {
|
| }
|
|
|
| SkFaceRec::SkFaceRec(SkStreamAsset* stream, uint32_t fontID)
|
| - : fNext(NULL), fSkStream(stream), fRefCnt(1), fFontID(fontID)
|
| + : fNext(nullptr), fSkStream(stream), fRefCnt(1), fFontID(fontID)
|
| {
|
| sk_bzero(&fFTStream, sizeof(fFTStream));
|
| fFTStream.size = fSkStream->getLength();
|
| @@ -272,7 +272,7 @@ static void ft_face_setup_axes(FT_Face face, const SkFontData& data) {
|
| }
|
|
|
| SkDEBUGCODE(
|
| - FT_MM_Var* variations = NULL;
|
| + FT_MM_Var* variations = nullptr;
|
| if (FT_Get_MM_Var(face, &variations)) {
|
| SkDEBUGF(("INFO: font %s claims variations, but none found.\n", face->family_name));
|
| return;
|
| @@ -314,8 +314,8 @@ static FT_Face ref_ft_face(const SkTypeface* typeface) {
|
| }
|
|
|
| SkAutoTDelete<SkFontData> data(typeface->createFontData());
|
| - if (NULL == data || !data->hasStream()) {
|
| - return NULL;
|
| + if (nullptr == data || !data->hasStream()) {
|
| + return nullptr;
|
| }
|
|
|
| // this passes ownership of stream to the rec
|
| @@ -337,14 +337,14 @@ static FT_Face ref_ft_face(const SkTypeface* typeface) {
|
| if (err) {
|
| SkDEBUGF(("ERROR: unable to open font '%x'\n", fontID));
|
| delete rec;
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| SkASSERT(rec->fFace);
|
|
|
| ft_face_setup_axes(rec->fFace, *data);
|
|
|
| // FreeType will set the charmap to the "most unicode" cmap if it exists.
|
| - // If there are no unicode cmaps, the charmap is set to NULL.
|
| + // If there are no unicode cmaps, the charmap is set to nullptr.
|
| // However, "symbol" cmaps should also be considered "fallback unicode" cmaps
|
| // because they are effectively private use area only (even if they aren't).
|
| // This is the last on the fallback list at
|
| @@ -363,7 +363,7 @@ static void unref_ft_face(FT_Face face) {
|
| gFTMutex.assertHeld();
|
|
|
| SkFaceRec* rec = gFaceRecHead;
|
| - SkFaceRec* prev = NULL;
|
| + SkFaceRec* prev = nullptr;
|
| while (rec) {
|
| SkFaceRec* next = rec->fNext;
|
| if (rec->fFace == face) {
|
| @@ -386,7 +386,7 @@ static void unref_ft_face(FT_Face face) {
|
|
|
| class AutoFTAccess {
|
| public:
|
| - AutoFTAccess(const SkTypeface* tf) : fFace(NULL) {
|
| + AutoFTAccess(const SkTypeface* tf) : fFace(nullptr) {
|
| gFTMutex.acquire();
|
| if (!ref_ft_library()) {
|
| sk_throw();
|
| @@ -458,12 +458,12 @@ SkAdvancedTypefaceMetrics* SkTypeface_FreeType::onGetAdvancedTypefaceMetrics(
|
| const uint32_t* glyphIDs,
|
| uint32_t glyphIDsCount) const {
|
| #if defined(SK_BUILD_FOR_MAC)
|
| - return NULL;
|
| + return nullptr;
|
| #else
|
| AutoFTAccess fta(this);
|
| FT_Face face = fta.face();
|
| if (!face) {
|
| - return NULL;
|
| + return nullptr;
|
| }
|
|
|
| SkAdvancedTypefaceMetrics* info = new SkAdvancedTypefaceMetrics;
|
| @@ -500,7 +500,7 @@ SkAdvancedTypefaceMetrics* SkTypeface_FreeType::onGetAdvancedTypefaceMetrics(
|
| cid = true;
|
| TT_Header* ttHeader;
|
| if ((ttHeader = (TT_Header*)FT_Get_Sfnt_Table(face,
|
| - ft_sfnt_head)) != NULL) {
|
| + ft_sfnt_head)) != nullptr) {
|
| info->fEmSize = ttHeader->Units_Per_EM;
|
| }
|
| } else {
|
| @@ -519,7 +519,7 @@ SkAdvancedTypefaceMetrics* SkTypeface_FreeType::onGetAdvancedTypefaceMetrics(
|
| info->fItalicAngle = ps_info.italic_angle;
|
| } else if ((tt_info =
|
| (TT_Postscript*)FT_Get_Sfnt_Table(face,
|
| - ft_sfnt_post)) != NULL) {
|
| + ft_sfnt_post)) != nullptr) {
|
| info->fItalicAngle = SkFixedToScalar(tt_info->italicAngle);
|
| } else {
|
| info->fItalicAngle = 0;
|
| @@ -546,14 +546,14 @@ SkAdvancedTypefaceMetrics* SkTypeface_FreeType::onGetAdvancedTypefaceMetrics(
|
|
|
| TT_PCLT* pclt_info;
|
| TT_OS2* os2_table;
|
| - if ((pclt_info = (TT_PCLT*)FT_Get_Sfnt_Table(face, ft_sfnt_pclt)) != NULL) {
|
| + if ((pclt_info = (TT_PCLT*)FT_Get_Sfnt_Table(face, ft_sfnt_pclt)) != nullptr) {
|
| info->fCapHeight = pclt_info->CapHeight;
|
| uint8_t serif_style = pclt_info->SerifStyle & 0x3F;
|
| if (serif_style >= 2 && serif_style <= 6)
|
| info->fStyle |= SkAdvancedTypefaceMetrics::kSerif_Style;
|
| else if (serif_style >= 9 && serif_style <= 12)
|
| info->fStyle |= SkAdvancedTypefaceMetrics::kScript_Style;
|
| - } else if (((os2_table = (TT_OS2*)FT_Get_Sfnt_Table(face, ft_sfnt_os2)) != NULL) &&
|
| + } else if (((os2_table = (TT_OS2*)FT_Get_Sfnt_Table(face, ft_sfnt_os2)) != nullptr) &&
|
| // sCapHeight is available only when version 2 or later.
|
| os2_table->version != 0xFFFF &&
|
| os2_table->version >= 2) {
|
| @@ -666,7 +666,7 @@ SkScalerContext* SkTypeface_FreeType::onCreateScalerContext(
|
| new SkScalerContext_FreeType(const_cast<SkTypeface_FreeType*>(this), desc);
|
| if (!c->success()) {
|
| delete c;
|
| - c = NULL;
|
| + c = nullptr;
|
| }
|
| return c;
|
| }
|
| @@ -742,8 +742,8 @@ bool SkTypeface_FreeType::onGetKerningPairAdjustments(const uint16_t glyphs[],
|
|
|
| static FT_Int chooseBitmapStrike(FT_Face face, SkFixed scaleY) {
|
| // early out if face is bad
|
| - if (face == NULL) {
|
| - SkDEBUGF(("chooseBitmapStrike aborted due to NULL face\n"));
|
| + if (face == nullptr) {
|
| + SkDEBUGF(("chooseBitmapStrike aborted due to nullptr face\n"));
|
| return -1;
|
| }
|
| // determine target ppem
|
| @@ -795,9 +795,9 @@ SkScalerContext_FreeType::SkScalerContext_FreeType(SkTypeface* typeface, const S
|
|
|
| // load the font file
|
| fStrikeIndex = -1;
|
| - fFTSize = NULL;
|
| + fFTSize = nullptr;
|
| fFace = ref_ft_face(typeface);
|
| - if (NULL == fFace) {
|
| + if (nullptr == fFace) {
|
| return;
|
| }
|
|
|
| @@ -886,14 +886,14 @@ SkScalerContext_FreeType::SkScalerContext_FreeType(SkTypeface* typeface, const S
|
| FT_Error err = FT_New_Size(fFace, &fFTSize);
|
| if (err != 0) {
|
| SkDEBUGF(("FT_New_Size returned %x for face %s\n", err, fFace->family_name));
|
| - fFace = NULL;
|
| + fFace = nullptr;
|
| return;
|
| }
|
| err = FT_Activate_Size(fFTSize);
|
| if (err != 0) {
|
| SkDEBUGF(("FT_Activate_Size(%08x, 0x%x, 0x%x) returned 0x%x\n", fFace, fScaleX, fScaleY,
|
| err));
|
| - fFTSize = NULL;
|
| + fFTSize = nullptr;
|
| return;
|
| }
|
|
|
| @@ -902,10 +902,10 @@ SkScalerContext_FreeType::SkScalerContext_FreeType(SkTypeface* typeface, const S
|
| if (err != 0) {
|
| SkDEBUGF(("FT_Set_CharSize(%08x, 0x%x, 0x%x) returned 0x%x\n",
|
| fFace, fScaleX, fScaleY, err));
|
| - fFace = NULL;
|
| + fFace = nullptr;
|
| return;
|
| }
|
| - FT_Set_Transform(fFace, &fMatrix22, NULL);
|
| + FT_Set_Transform(fFace, &fMatrix22, nullptr);
|
| } else if (FT_HAS_FIXED_SIZES(fFace)) {
|
| fStrikeIndex = chooseBitmapStrike(fFace, fScaleY);
|
| if (fStrikeIndex == -1) {
|
| @@ -934,11 +934,11 @@ SkScalerContext_FreeType::SkScalerContext_FreeType(SkTypeface* typeface, const S
|
| SkScalerContext_FreeType::~SkScalerContext_FreeType() {
|
| SkAutoMutexAcquire ac(gFTMutex);
|
|
|
| - if (fFTSize != NULL) {
|
| + if (fFTSize != nullptr) {
|
| FT_Done_Size(fFTSize);
|
| }
|
|
|
| - if (fFace != NULL) {
|
| + if (fFace != nullptr) {
|
| unref_ft_face(fFace);
|
| }
|
|
|
| @@ -953,13 +953,13 @@ FT_Error SkScalerContext_FreeType::setupSize() {
|
| if (err != 0) {
|
| SkDEBUGF(("SkScalerContext_FreeType::FT_Activate_Size(%s %s, 0x%x, 0x%x) returned 0x%x\n",
|
| fFace->family_name, fFace->style_name, fScaleX, fScaleY, err));
|
| - fFTSize = NULL;
|
| + fFTSize = nullptr;
|
| return err;
|
| }
|
|
|
| // seems we need to reset this every time (not sure why, but without it
|
| // I get random italics from some other fFTSize)
|
| - FT_Set_Transform(fFace, &fMatrix22, NULL);
|
| + FT_Set_Transform(fFace, &fMatrix22, nullptr);
|
| return 0;
|
| }
|
|
|
| @@ -1258,7 +1258,7 @@ void SkScalerContext_FreeType::generatePath(const SkGlyph& glyph, SkPath* path)
|
| }
|
|
|
| void SkScalerContext_FreeType::generateFontMetrics(SkPaint::FontMetrics* metrics) {
|
| - if (NULL == metrics) {
|
| + if (nullptr == metrics) {
|
| return;
|
| }
|
|
|
| @@ -1473,7 +1473,7 @@ int SkTypeface_FreeType::onCharsToGlyphs(const void* chars, Encoding encoding,
|
|
|
| EncodingProc next_uni_proc = find_encoding_proc(encoding);
|
|
|
| - if (NULL == glyphs) {
|
| + if (nullptr == glyphs) {
|
| for (int i = 0; i < glyphCount; ++i) {
|
| if (0 == FT_Get_Char_Index(face, next_uni_proc(&chars))) {
|
| return i;
|
| @@ -1507,7 +1507,7 @@ int SkTypeface_FreeType::onCountGlyphs() const {
|
| SkTypeface::LocalizedStrings* SkTypeface_FreeType::onCreateFamilyNameIterator() const {
|
| SkTypeface::LocalizedStrings* nameIter =
|
| SkOTUtils::LocalizedStrings_NameTable::CreateForFamilyNames(*this);
|
| - if (NULL == nameIter) {
|
| + if (nullptr == nameIter) {
|
| SkString familyName;
|
| this->getFamilyName(&familyName);
|
| SkString language("und"); //undetermined
|
| @@ -1523,8 +1523,8 @@ int SkTypeface_FreeType::onGetTableTags(SkFontTableTag tags[]) const {
|
| FT_ULong tableCount = 0;
|
| FT_Error error;
|
|
|
| - // When 'tag' is NULL, returns number of tables in 'length'.
|
| - error = FT_Sfnt_Table_Info(face, 0, NULL, &tableCount);
|
| + // When 'tag' is nullptr, returns number of tables in 'length'.
|
| + error = FT_Sfnt_Table_Info(face, 0, nullptr, &tableCount);
|
| if (error) {
|
| return 0;
|
| }
|
| @@ -1553,7 +1553,7 @@ size_t SkTypeface_FreeType::onGetTableData(SkFontTableTag tag, size_t offset,
|
| FT_Error error;
|
|
|
| // When 'length' is 0 it is overwritten with the full table length; 'offset' is ignored.
|
| - error = FT_Load_Sfnt_Table(face, tag, 0, NULL, &tableLength);
|
| + error = FT_Load_Sfnt_Table(face, tag, 0, nullptr, &tableLength);
|
| if (error) {
|
| return 0;
|
| }
|
| @@ -1575,7 +1575,7 @@ size_t SkTypeface_FreeType::onGetTableData(SkFontTableTag tag, size_t offset,
|
| ///////////////////////////////////////////////////////////////////////////////
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| -SkTypeface_FreeType::Scanner::Scanner() : fLibrary(NULL) {
|
| +SkTypeface_FreeType::Scanner::Scanner() : fLibrary(nullptr) {
|
| if (FT_New_Library(&gFTMemory, &fLibrary)) {
|
| return;
|
| }
|
| @@ -1590,8 +1590,8 @@ SkTypeface_FreeType::Scanner::~Scanner() {
|
| FT_Face SkTypeface_FreeType::Scanner::openFace(SkStream* stream, int ttcIndex,
|
| FT_Stream ftStream) const
|
| {
|
| - if (fLibrary == NULL) {
|
| - return NULL;
|
| + if (fLibrary == nullptr) {
|
| + return nullptr;
|
| }
|
|
|
| FT_Open_Args args;
|
| @@ -1616,7 +1616,7 @@ FT_Face SkTypeface_FreeType::Scanner::openFace(SkStream* stream, int ttcIndex,
|
|
|
| FT_Face face;
|
| if (FT_Open_Face(fLibrary, &args, ttcIndex, &face)) {
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| return face;
|
| }
|
| @@ -1626,7 +1626,7 @@ bool SkTypeface_FreeType::Scanner::recognizedFont(SkStream* stream, int* numFace
|
|
|
| FT_StreamRec streamRec;
|
| FT_Face face = this->openFace(stream, -1, &streamRec);
|
| - if (NULL == face) {
|
| + if (nullptr == face) {
|
| return false;
|
| }
|
|
|
| @@ -1645,7 +1645,7 @@ bool SkTypeface_FreeType::Scanner::scanFont(
|
|
|
| FT_StreamRec streamRec;
|
| FT_Face face = this->openFace(stream, ttcIndex, &streamRec);
|
| - if (NULL == face) {
|
| + if (nullptr == face) {
|
| return false;
|
| }
|
|
|
| @@ -1716,7 +1716,7 @@ bool SkTypeface_FreeType::Scanner::scanFont(
|
| }
|
|
|
| if (axes && face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS) {
|
| - FT_MM_Var* variations = NULL;
|
| + FT_MM_Var* variations = nullptr;
|
| FT_Error err = FT_Get_MM_Var(face, &variations);
|
| if (err) {
|
| SkDEBUGF(("INFO: font %s claims to have variations, but none found.\n",
|
|
|