|
|
|
@ -54,14 +54,14 @@ struct cvar |
|
|
|
|
|
|
|
|
|
bool decompile_tuple_variations (unsigned axis_count, |
|
|
|
|
unsigned point_count, |
|
|
|
|
hb_blob_t *blob, |
|
|
|
|
bool is_gvar, |
|
|
|
|
const hb_map_t *axes_old_index_tag_map, |
|
|
|
|
TupleVariationData::tuple_variations_t& tuple_variations /* OUT */) const |
|
|
|
|
{ |
|
|
|
|
hb_vector_t<unsigned> shared_indices; |
|
|
|
|
TupleVariationData::tuple_iterator_t iterator; |
|
|
|
|
unsigned var_data_length = tupleVariationData.get_size (axis_count); |
|
|
|
|
hb_bytes_t var_data_bytes = hb_bytes_t (reinterpret_cast<const char*> (get_tuple_var_data ()), var_data_length); |
|
|
|
|
hb_bytes_t var_data_bytes = blob->as_bytes ().sub_array (4); |
|
|
|
|
if (!TupleVariationData::get_tuple_iterator (var_data_bytes, axis_count, this, |
|
|
|
|
shared_indices, &iterator)) |
|
|
|
|
return false; |
|
|
|
@ -151,7 +151,8 @@ struct cvar |
|
|
|
|
unsigned point_count = hb_blob_get_length (cvt_blob) / FWORD::static_size; |
|
|
|
|
hb_blob_destroy (cvt_blob); |
|
|
|
|
|
|
|
|
|
if (!decompile_tuple_variations (axis_count, point_count, false, |
|
|
|
|
if (!decompile_tuple_variations (axis_count, point_count, |
|
|
|
|
c->source_blob, false, |
|
|
|
|
&(c->plan->axes_old_index_tag_map), |
|
|
|
|
tuple_variations)) |
|
|
|
|
return_trace (false); |
|
|
|
|