diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc index 15b9b6bc1..616a010f4 100644 --- a/src/hb-subset-plan.cc +++ b/src/hb-subset-plan.cc @@ -527,11 +527,20 @@ _remap_colrv1_delta_set_index_indices (const OT::DeltaSetIndexMap &index_map, for (unsigned delta_set_idx : delta_set_idxes) { unsigned var_idx = index_map.map (delta_set_idx); - hb_pair_t *new_varidx_delta; - if (!variation_idx_delta_map.has (var_idx, &new_varidx_delta)) continue; + unsigned new_varidx = HB_OT_LAYOUT_NO_VARIATIONS_INDEX; + int delta = 0; + + if (var_idx != HB_OT_LAYOUT_NO_VARIATIONS_INDEX) + { + hb_pair_t *new_varidx_delta; + if (!variation_idx_delta_map.has (var_idx, &new_varidx_delta)) continue; - new_deltaset_idx_varidx_map.set (new_delta_set_idx, hb_first (*new_varidx_delta)); - delta_set_idx_delta_map.set (delta_set_idx, hb_pair_t (new_delta_set_idx, hb_second (*new_varidx_delta))); + new_varidx = hb_first (*new_varidx_delta); + delta = hb_second (*new_varidx_delta); + } + + new_deltaset_idx_varidx_map.set (new_delta_set_idx, new_varidx); + delta_set_idx_delta_map.set (delta_set_idx, hb_pair_t (new_delta_set_idx, delta)); new_delta_set_idx++; } variation_idx_delta_map = std::move (delta_set_idx_delta_map); diff --git a/test/subset/data/expected/instantiate_colrv1/Foldit.default.41.wght=300-600.ttf b/test/subset/data/expected/instantiate_colrv1/Foldit.default.41.wght=300-600.ttf new file mode 100644 index 000000000..27d183fd7 Binary files /dev/null and b/test/subset/data/expected/instantiate_colrv1/Foldit.default.41.wght=300-600.ttf differ diff --git a/test/subset/data/expected/instantiate_colrv1/Foldit.default.41.wght=900.ttf b/test/subset/data/expected/instantiate_colrv1/Foldit.default.41.wght=900.ttf new file mode 100644 index 000000000..aae2665bc Binary files /dev/null and b/test/subset/data/expected/instantiate_colrv1/Foldit.default.41.wght=900.ttf differ diff --git a/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.41.wght=300-600.ttf b/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.41.wght=300-600.ttf new file mode 100644 index 000000000..7862e82d8 Binary files /dev/null and b/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.41.wght=300-600.ttf differ diff --git a/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.41.wght=900.ttf b/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.41.wght=900.ttf new file mode 100644 index 000000000..7741f8642 Binary files /dev/null and b/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.41.wght=900.ttf differ diff --git a/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.all.wght=300-600.ttf b/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.all.wght=300-600.ttf new file mode 100644 index 000000000..25e5bd1c5 Binary files /dev/null and b/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.all.wght=300-600.ttf differ diff --git a/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.all.wght=900.ttf b/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.all.wght=900.ttf new file mode 100644 index 000000000..580816e8e Binary files /dev/null and b/test/subset/data/expected/instantiate_colrv1/KalniaGlaze.default.all.wght=900.ttf differ diff --git a/test/subset/data/fonts/KalniaGlaze.ttf b/test/subset/data/fonts/KalniaGlaze.ttf new file mode 100644 index 000000000..52036fac2 Binary files /dev/null and b/test/subset/data/fonts/KalniaGlaze.ttf differ diff --git a/test/subset/data/tests/instantiate_colrv1.tests b/test/subset/data/tests/instantiate_colrv1.tests index eeb5716d7..183bae8c9 100644 --- a/test/subset/data/tests/instantiate_colrv1.tests +++ b/test/subset/data/tests/instantiate_colrv1.tests @@ -1,10 +1,12 @@ FONTS: Foldit.ttf +KalniaGlaze.ttf PROFILES: default.txt SUBSETS: +A * INSTANCES: