| 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);
|
| }
|
|
|