summaryrefslogtreecommitdiffstats
path: root/libs/minikin/FontCollection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/minikin/FontCollection.cpp')
-rw-r--r--libs/minikin/FontCollection.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/libs/minikin/FontCollection.cpp b/libs/minikin/FontCollection.cpp
index aa37825..18e528e 100644
--- a/libs/minikin/FontCollection.cpp
+++ b/libs/minikin/FontCollection.cpp
@@ -41,6 +41,7 @@ FontCollection::FontCollection(const vector<FontFamily*>& typefaces) :
const FontStyle defaultStyle;
for (size_t i = 0; i < nTypefaces; i++) {
FontFamily* family = typefaces[i];
+ family->RefLocked();
FontInstance dummy;
mInstances.push_back(dummy); // emplace_back would be better
FontInstance* instance = &mInstances.back();
@@ -62,7 +63,6 @@ FontCollection::FontCollection(const vector<FontFamily*>& typefaces) :
#endif
mMaxChar = max(mMaxChar, instance->mCoverage->length());
lastChar.push_back(instance->mCoverage->nextSetBit(0));
- // TODO: should probably ref typeface here, hmm
}
size_t nPages = mMaxChar >> kLogCharsPerPage;
size_t offset = 0;
@@ -93,7 +93,7 @@ FontCollection::FontCollection(const vector<FontFamily*>& typefaces) :
FontCollection::~FontCollection() {
for (size_t i = 0; i < mInstances.size(); i++) {
delete mInstances[i].mCoverage;
- // probably unref the typeface here too
+ mInstances[i].mFamily->UnrefLocked();
}
}
@@ -138,7 +138,7 @@ void FontCollection::itemize(const uint16_t *string, size_t string_size, FontSty
run->font = NULL; // maybe we should do something different here
} else {
run->font = family->getClosestMatch(style);
- run->font->Ref();
+ run->font->RefLocked();
}
lastFamily = family;
run->start = i;