diff options
Diffstat (limited to 'src/ports/SkFontHost_simple.cpp')
-rw-r--r-- | src/ports/SkFontHost_simple.cpp | 48 |
1 files changed, 13 insertions, 35 deletions
diff --git a/src/ports/SkFontHost_simple.cpp b/src/ports/SkFontHost_simple.cpp index 101d5761d2..b4f6ce0f1d 100644 --- a/src/ports/SkFontHost_simple.cpp +++ b/src/ports/SkFontHost_simple.cpp @@ -9,7 +9,6 @@ #include "SkFontHost.h" #include "SkDescriptor.h" -#include "SkMMapStream.h" #include "SkPaint.h" #include "SkString.h" #include "SkStream.h" @@ -312,30 +311,18 @@ public: fPath.set(path); } - // overrides - virtual SkStream* openStream() { - SkStream* stream = SkNEW_ARGS(SkMMAPStream, (fPath.c_str())); - - // check for failure - if (stream->getLength() <= 0) { - SkDELETE(stream); - // maybe MMAP isn't supported. try FILE - stream = SkNEW_ARGS(SkFILEStream, (fPath.c_str())); - if (stream->getLength() <= 0) { - SkDELETE(stream); - stream = NULL; - } - } - return stream; + virtual SkStream* openStream() SK_OVERRIDE { + return SkStream::NewFromFile(fPath.c_str()); } - virtual const char* getUniqueString() const { + + virtual const char* getUniqueString() const SK_OVERRIDE { const char* str = strrchr(fPath.c_str(), '/'); if (str) { str += 1; // skip the '/' } return str; } - virtual const char* getFilePath() const { + virtual const char* getFilePath() const SK_OVERRIDE { return fPath.c_str(); } @@ -353,21 +340,15 @@ static bool get_name_and_style(const char path[], SkString* name, SkString fullpath; GetFullPathForSysFonts(&fullpath, path); - SkMMAPStream stream(fullpath.c_str()); - if (stream.getLength() > 0) { + SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(fullpath.c_str())); + if (stream.get()) { return find_name_and_attributes(&stream, name, style, NULL); - } - else { - SkFILEStream stream(fullpath.c_str()); - if (stream.getLength() > 0) { - return find_name_and_attributes(&stream, name, style, NULL); + } else { + if (isExpected) { + SkDebugf("---- failed to open <%s> as a font\n", fullpath.c_str()); } + return false; } - - if (isExpected) { - SkDebugf("---- failed to open <%s> as a font\n", fullpath.c_str()); - } - return false; } // used to record our notion of the pre-existing fonts @@ -636,9 +617,6 @@ SkTypeface* SkFontHost::CreateTypefaceFromStream(SkStream* stream) { } SkTypeface* SkFontHost::CreateTypefaceFromFile(const char path[]) { - SkStream* stream = SkNEW_ARGS(SkMMAPStream, (path)); - SkTypeface* face = SkFontHost::CreateTypefaceFromStream(stream); - // since we created the stream, we let go of our ref() here - stream->unref(); - return face; + SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(path)); + return stream.get() ? SkFontHost::CreateTypefaceFromStream(stream) : NULL; } |