Index: src/core/SkFontDescriptor.cpp |
diff --git a/src/core/SkFontDescriptor.cpp b/src/core/SkFontDescriptor.cpp |
index cb149b98a9e5eeb0f90eadeff3fa6256d5a4f4bd..4a6b5db837141b769e3130c5f76a6093d94e157e 100644 |
--- a/src/core/SkFontDescriptor.cpp |
+++ b/src/core/SkFontDescriptor.cpp |
@@ -17,13 +17,12 @@ |
// These count backwards from 0xFF, so as not to collide with the SFNT |
// defines for names in its 'name' table. |
- kFontAxes = 0xFC, |
kFontIndex = 0xFD, |
kFontFileName = 0xFE, // Remove when MIN_PICTURE_VERSION > 41 |
kSentinel = 0xFF, |
}; |
-SkFontDescriptor::SkFontDescriptor(SkTypeface::Style style) : fStyle(style) { } |
+SkFontDescriptor::SkFontDescriptor(SkTypeface::Style style) : fFontIndex(0), fStyle(style) { } |
static void read_string(SkStream* stream, SkString* string) { |
const uint32_t length = SkToU32(stream->readPackedUInt()); |
@@ -41,7 +40,8 @@ |
} |
} |
-static void write_string(SkWStream* stream, const SkString& string, uint32_t id) { |
+static void write_string(SkWStream* stream, const SkString& string, |
+ uint32_t id) { |
if (!string.isEmpty()) { |
stream->writePackedUInt(id); |
stream->writePackedUInt(string.size()); |
@@ -58,12 +58,9 @@ |
stream->writePackedUInt(n); |
} |
-SkFontDescriptor::SkFontDescriptor(SkStream* stream) { |
+SkFontDescriptor::SkFontDescriptor(SkStream* stream) : fFontIndex(0) { |
fStyle = (SkTypeface::Style)stream->readPackedUInt(); |
- SkAutoSTMalloc<4, SkFixed> axis; |
- size_t axisCount = 0; |
- size_t index = 0; |
for (size_t id; (id = stream->readPackedUInt()) != kSentinel;) { |
switch (id) { |
case kFontFamilyName: |
@@ -75,15 +72,8 @@ |
case kPostscriptName: |
read_string(stream, &fPostscriptName); |
break; |
- case kFontAxes: |
- axisCount = read_uint(stream); |
- axis.reset(axisCount); |
- for (size_t i = 0; i < axisCount; ++i) { |
- axis[i] = read_uint(stream); |
- } |
- break; |
case kFontIndex: |
- index = read_uint(stream); |
+ fFontIndex = read_uint(stream); |
break; |
case kFontFileName: // Remove when MIN_PICTURE_VERSION > 41 |
skip_string(stream); |
@@ -98,8 +88,7 @@ |
if (length > 0) { |
SkAutoTUnref<SkData> data(SkData::NewUninitialized(length)); |
if (stream->read(data->writable_data(), length) == length) { |
- fFontData.reset(new SkFontData(SkNEW_ARGS(SkMemoryStream, (data)), index, |
- axis, axisCount)); |
+ fFontData.reset(SkNEW_ARGS(SkMemoryStream, (data))); |
} |
} |
} |
@@ -110,25 +99,16 @@ |
write_string(stream, fFamilyName, kFontFamilyName); |
write_string(stream, fFullName, kFullName); |
write_string(stream, fPostscriptName, kPostscriptName); |
- if (fFontData.get()) { |
- if (fFontData->getIndex()) { |
- write_uint(stream, fFontData->getIndex(), kFontIndex); |
- } |
- if (fFontData->getAxisCount()) { |
- write_uint(stream, fFontData->getAxisCount(), kFontAxes); |
- for (int i = 0; i < fFontData->getAxisCount(); ++i) { |
- stream->writePackedUInt(fFontData->getAxis()[i]); |
- } |
- } |
+ if (fFontIndex) { |
+ write_uint(stream, fFontIndex, kFontIndex); |
} |
stream->writePackedUInt(kSentinel); |
- if (fFontData.get() && fFontData->hasStream()) { |
- SkAutoTDelete<SkStreamAsset> fontData(fFontData->detachStream()); |
- size_t length = fontData->getLength(); |
+ if (fFontData) { |
+ size_t length = fFontData->getLength(); |
stream->writePackedUInt(length); |
- stream->writeStream(fontData, length); |
+ stream->writeStream(fFontData, length); |
} else { |
stream->writePackedUInt(0); |
} |