Index: src/ports/SkFontHost_FreeType.cpp |
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp |
index 72fe8f67db15dc67e217f2290b99c518a87d7fee..828d74a78268cedbb81f9506af67dd2fd5c5441d 100644 |
--- a/src/ports/SkFontHost_FreeType.cpp |
+++ b/src/ports/SkFontHost_FreeType.cpp |
@@ -233,35 +233,30 @@ private: |
/////////////////////////////////////////////////////////////////////////// |
struct SkFaceRec { |
- SkFaceRec* fNext; |
- FT_Face fFace; |
- FT_StreamRec fFTStream; |
- SkAutoTDelete<SkStream> fSkStream; |
- uint32_t fRefCnt; |
- uint32_t fFontID; |
+ SkFaceRec* fNext; |
+ FT_Face fFace; |
+ FT_StreamRec fFTStream; |
+ SkAutoTDelete<SkStreamAsset> fSkStream; |
+ uint32_t fRefCnt; |
+ uint32_t fFontID; |
// assumes ownership of the stream, will delete when its done |
- SkFaceRec(SkStream* strm, uint32_t fontID); |
+ SkFaceRec(SkStreamAsset* strm, uint32_t fontID); |
}; |
extern "C" { |
- static unsigned long sk_ft_stream_io(FT_Stream stream, |
+ static unsigned long sk_ft_stream_io(FT_Stream ftStream, |
unsigned long offset, |
unsigned char* buffer, |
unsigned long count) |
{ |
- SkStream* str = (SkStream*)stream->descriptor.pointer; |
+ SkStreamAsset* stream = static_cast<SkStreamAsset*>(ftStream->descriptor.pointer); |
if (count) { |
- if (!str->rewind()) { |
+ if (!stream->seek(offset)) { |
return 0; |
} |
- if (offset) { |
- if (str->skip(offset) != offset) { |
- return 0; |
- } |
- } |
- count = str->read(buffer, count); |
+ count = stream->read(buffer, count); |
} |
return count; |
} |
@@ -269,10 +264,9 @@ extern "C" { |
static void sk_ft_stream_close(FT_Stream) {} |
} |
-SkFaceRec::SkFaceRec(SkStream* strm, uint32_t fontID) |
- : fNext(NULL), fSkStream(strm), fRefCnt(1), fFontID(fontID) { |
-// SkDEBUGF(("SkFaceRec: opening %s (%p)\n", key.c_str(), strm)); |
- |
+SkFaceRec::SkFaceRec(SkStreamAsset* stream, uint32_t fontID) |
+ : fNext(NULL), fSkStream(stream), fRefCnt(1), fFontID(fontID) |
+{ |
sk_bzero(&fFTStream, sizeof(fFTStream)); |
fFTStream.size = fSkStream->getLength(); |
fFTStream.descriptor.pointer = fSkStream; |
@@ -297,22 +291,21 @@ static SkFaceRec* ref_ft_face(const SkTypeface* typeface) { |
} |
int face_index; |
- SkStream* strm = typeface->openStream(&face_index); |
- if (NULL == strm) { |
+ SkStreamAsset* stream = typeface->openStream(&face_index); |
+ if (NULL == stream) { |
return NULL; |
} |
- // this passes ownership of strm to the rec |
- rec = SkNEW_ARGS(SkFaceRec, (strm, fontID)); |
+ // this passes ownership of stream to the rec |
+ rec = SkNEW_ARGS(SkFaceRec, (stream, fontID)); |
FT_Open_Args args; |
memset(&args, 0, sizeof(args)); |
- const void* memoryBase = strm->getMemoryBase(); |
- |
+ const void* memoryBase = stream->getMemoryBase(); |
if (memoryBase) { |
args.flags = FT_OPEN_MEMORY; |
args.memory_base = (const FT_Byte*)memoryBase; |
- args.memory_size = strm->getLength(); |
+ args.memory_size = stream->getLength(); |
} else { |
args.flags = FT_OPEN_STREAM; |
args.stream = &rec->fFTStream; |