aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports/SkFontHost_simple.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ports/SkFontHost_simple.cpp')
-rw-r--r--src/ports/SkFontHost_simple.cpp48
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;
}