[repacker] default space to 0.
Since vector push() init's new objects to all zeros.
This commit is contained in:
parent
58facaade1
commit
a57ef8df7e
|
@ -40,7 +40,7 @@ struct graph_t
|
||||||
{
|
{
|
||||||
vertex_t () :
|
vertex_t () :
|
||||||
distance (0),
|
distance (0),
|
||||||
space (1),
|
space (0),
|
||||||
incoming_edges (0),
|
incoming_edges (0),
|
||||||
start (0),
|
start (0),
|
||||||
end (0),
|
end (0),
|
||||||
|
@ -338,7 +338,7 @@ struct graph_t
|
||||||
bool made_changes = false;
|
bool made_changes = false;
|
||||||
hb_set_t target_links;
|
hb_set_t target_links;
|
||||||
unsigned root_index = root_idx ();
|
unsigned root_index = root_idx ();
|
||||||
int64_t next_space = 1;
|
int64_t next_space = 0;
|
||||||
for (unsigned i = 0; i <= root_index; i++)
|
for (unsigned i = 0; i <= root_index; i++)
|
||||||
{
|
{
|
||||||
if (i == root_index && root_idx () > i)
|
if (i == root_index && root_idx () > i)
|
||||||
|
@ -441,6 +441,7 @@ struct graph_t
|
||||||
clone->obj.head = buffer->head;
|
clone->obj.head = buffer->head;
|
||||||
clone->obj.tail = buffer->tail;
|
clone->obj.tail = buffer->tail;
|
||||||
clone->distance = child.distance;
|
clone->distance = child.distance;
|
||||||
|
clone->space = child.space;
|
||||||
|
|
||||||
for (const auto& l : child.obj.links)
|
for (const auto& l : child.obj.links)
|
||||||
clone->obj.links.push (l);
|
clone->obj.links.push (l);
|
||||||
|
@ -642,8 +643,8 @@ struct graph_t
|
||||||
if (visited.has (link.objidx)) continue;
|
if (visited.has (link.objidx)) continue;
|
||||||
|
|
||||||
const auto& child = vertices_[link.objidx].obj;
|
const auto& child = vertices_[link.objidx].obj;
|
||||||
int64_t child_weight = child.tail - child.head +
|
int64_t child_weight = (child.tail - child.head) +
|
||||||
((int64_t) 1 << (link.width * 8)) * vertices_[link.objidx].space;
|
((int64_t) 1 << (link.width * 8)) * (vertices_[link.objidx].space + 1);
|
||||||
int64_t child_distance = next_distance + child_weight;
|
int64_t child_distance = next_distance + child_weight;
|
||||||
|
|
||||||
if (child_distance < vertices_[link.objidx].distance)
|
if (child_distance < vertices_[link.objidx].distance)
|
||||||
|
@ -874,7 +875,6 @@ hb_resolve_overflows (const hb_vector_t<hb_serialize_context_t::object_t *>& pac
|
||||||
|
|
||||||
sorted_graph.sort_shortest_distance ();
|
sorted_graph.sort_shortest_distance ();
|
||||||
|
|
||||||
|
|
||||||
if ((table_tag == HB_OT_TAG_GPOS
|
if ((table_tag == HB_OT_TAG_GPOS
|
||||||
|| table_tag == HB_OT_TAG_GSUB)
|
|| table_tag == HB_OT_TAG_GSUB)
|
||||||
&& sorted_graph.will_overflow ())
|
&& sorted_graph.will_overflow ())
|
||||||
|
|
Loading…
Reference in New Issue