| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkFontMgr_indirect.h" | 8 #include "SkFontMgr_indirect.h" |
| 9 | 9 |
| 10 #include "SkDataTable.h" | 10 #include "SkDataTable.h" |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 } | 206 } |
| 207 | 207 |
| 208 if (entry.fTypeface->weak_expired()) { | 208 if (entry.fTypeface->weak_expired()) { |
| 209 fDataCache.removeShuffle(i); | 209 fDataCache.removeShuffle(i); |
| 210 --i; | 210 --i; |
| 211 } | 211 } |
| 212 } | 212 } |
| 213 | 213 |
| 214 // No exact match, but did find a data match. | 214 // No exact match, but did find a data match. |
| 215 if (dataTypeface.get() != NULL) { | 215 if (dataTypeface.get() != NULL) { |
| 216 SkAutoTUnref<SkStream> stream(dataTypeface->openStream(NULL)); | 216 SkAutoTDelete<SkStream> stream(dataTypeface->openStream(NULL)); |
| 217 if (stream.get() != NULL) { | 217 if (stream.get() != NULL) { |
| 218 return fImpl->createFromStream(stream.get(), dataTypefaceIndex); | 218 return fImpl->createFromStream(stream.detach(), dataTypefaceIndex); |
| 219 } | 219 } |
| 220 } | 220 } |
| 221 | 221 |
| 222 // No data match, request data and add entry. | 222 // No data match, request data and add entry. |
| 223 SkAutoTUnref<SkStreamAsset> stream(fProxy->getData(id.fDataId)); | 223 SkAutoTDelete<SkStreamAsset> stream(fProxy->getData(id.fDataId)); |
| 224 if (stream.get() == NULL) { | 224 if (stream.get() == NULL) { |
| 225 return NULL; | 225 return NULL; |
| 226 } | 226 } |
| 227 | 227 |
| 228 SkAutoTUnref<SkTypeface> typeface(fImpl->createFromStream(stream, id.fTtcInd
ex)); | 228 SkAutoTUnref<SkTypeface> typeface(fImpl->createFromStream(stream.detach(), i
d.fTtcIndex)); |
| 229 if (typeface.get() == NULL) { | 229 if (typeface.get() == NULL) { |
| 230 return NULL; | 230 return NULL; |
| 231 } | 231 } |
| 232 | 232 |
| 233 DataEntry& newEntry = fDataCache.push_back(); | 233 DataEntry& newEntry = fDataCache.push_back(); |
| 234 typeface->weak_ref(); | 234 typeface->weak_ref(); |
| 235 newEntry.fDataId = id.fDataId; | 235 newEntry.fDataId = id.fDataId; |
| 236 newEntry.fTtcIndex = id.fTtcIndex; | 236 newEntry.fTtcIndex = id.fTtcIndex; |
| 237 newEntry.fTypeface = typeface.get(); // weak reference passed to new entry. | 237 newEntry.fTypeface = typeface.get(); // weak reference passed to new entry. |
| 238 | 238 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 face.reset(this->matchFamilyStyle(NULL, style)); | 290 face.reset(this->matchFamilyStyle(NULL, style)); |
| 291 } | 291 } |
| 292 | 292 |
| 293 if (NULL == face.get()) { | 293 if (NULL == face.get()) { |
| 294 SkFontIdentity fontId = this->fProxy->matchIndexStyle(0, style); | 294 SkFontIdentity fontId = this->fProxy->matchIndexStyle(0, style); |
| 295 face.reset(this->createTypefaceFromFontId(fontId)); | 295 face.reset(this->createTypefaceFromFontId(fontId)); |
| 296 } | 296 } |
| 297 | 297 |
| 298 return face.detach(); | 298 return face.detach(); |
| 299 } | 299 } |
| OLD | NEW |