[cmap] Convert another map use to unique_ptr
This commit is contained in:
parent
997d9cc466
commit
a7a688616a
|
@ -1476,26 +1476,17 @@ struct SubtableUnicodesCache {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const void* base;
|
const void* base;
|
||||||
hb_hashmap_t<intptr_t, hb_set_t*> cached_unicodes;
|
hb_hashmap_t<intptr_t, hb::unique_ptr<hb_set_t>> cached_unicodes;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SubtableUnicodesCache(const void* cmap_base)
|
SubtableUnicodesCache(const void* cmap_base)
|
||||||
: base(cmap_base), cached_unicodes() {}
|
: base(cmap_base), cached_unicodes() {}
|
||||||
~SubtableUnicodesCache()
|
|
||||||
{
|
|
||||||
for (hb_set_t* s : cached_unicodes.values()) {
|
|
||||||
hb_set_destroy (s);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hb_set_t* set_for(const EncodingRecord* record)
|
hb_set_t* set_for(const EncodingRecord* record)
|
||||||
{
|
{
|
||||||
if (!cached_unicodes.has ((intptr_t) record)) {
|
if (!cached_unicodes.has ((intptr_t) record)) {
|
||||||
hb_set_t* new_set = hb_set_create ();
|
if (!cached_unicodes.set ((intptr_t) record, hb::unique_ptr<hb_set_t> {hb_set_create ()}))
|
||||||
if (!cached_unicodes.set ((intptr_t) record, new_set)) {
|
|
||||||
hb_set_destroy (new_set);
|
|
||||||
return hb_set_get_empty ();
|
return hb_set_get_empty ();
|
||||||
}
|
|
||||||
(base+record->subtable).collect_unicodes (cached_unicodes.get ((intptr_t) record));
|
(base+record->subtable).collect_unicodes (cached_unicodes.get ((intptr_t) record));
|
||||||
}
|
}
|
||||||
return cached_unicodes.get ((intptr_t) record);
|
return cached_unicodes.get ((intptr_t) record);
|
||||||
|
|
Loading…
Reference in New Issue