[autofit, pshinter] Use FT_OFFSET
.
This avoids ``` runtime error: applying zero offset to null pointer ``` warnings of clang's undefined behaviour sanitizer. * src/autofit/afcjk.c (af_cjk_hints_link_segments, af_cjk_hints_compute_edges, af_cjk_hints_compute_blue_edges, af_cjk_hint_edges, af_cjk_align_edge_points): Do it. * src/autofit/afhints.c (af_glyph_hints_align_edge_points, af_glyph_hints_align_strong_points): Ditto. * src/autofit/aflatin.c (af_latin_metrics_init_widths, af_latin_hints_link_segments, af_latin_hints_compute_edges, af_latin_hints_compute_blue_edges, af_latin_hint_edges): Ditto. * src/pshinter/pshalgo.c (psh_hint_table_init): Ditto.
This commit is contained in:
parent
afb4ca0151
commit
5aa2a5c34a
@ -843,7 +843,7 @@
|
||||
{
|
||||
AF_AxisHints axis = &hints->axis[dim];
|
||||
AF_Segment segments = axis->segments;
|
||||
AF_Segment segment_limit = segments + axis->num_segments;
|
||||
AF_Segment segment_limit = FT_OFFSET( segments, axis->num_segments );
|
||||
AF_Direction major_dir = axis->major_dir;
|
||||
AF_Segment seg1, seg2;
|
||||
FT_Pos len_threshold;
|
||||
@ -1005,7 +1005,7 @@
|
||||
AF_CJKAxis laxis = &((AF_CJKMetrics)hints->metrics)->axis[dim];
|
||||
|
||||
AF_Segment segments = axis->segments;
|
||||
AF_Segment segment_limit = segments + axis->num_segments;
|
||||
AF_Segment segment_limit = FT_OFFSET( segments, axis->num_segments );
|
||||
AF_Segment seg;
|
||||
|
||||
FT_Fixed scale;
|
||||
@ -1153,7 +1153,7 @@
|
||||
*/
|
||||
{
|
||||
AF_Edge edges = axis->edges;
|
||||
AF_Edge edge_limit = edges + axis->num_edges;
|
||||
AF_Edge edge_limit = FT_OFFSET( edges, axis->num_edges );
|
||||
AF_Edge edge;
|
||||
|
||||
|
||||
@ -1291,7 +1291,7 @@
|
||||
{
|
||||
AF_AxisHints axis = &hints->axis[dim];
|
||||
AF_Edge edge = axis->edges;
|
||||
AF_Edge edge_limit = edge + axis->num_edges;
|
||||
AF_Edge edge_limit = FT_OFFSET( edge, axis->num_edges );
|
||||
AF_CJKAxis cjk = &metrics->axis[dim];
|
||||
FT_Fixed scale = cjk->scale;
|
||||
FT_Pos best_dist0; /* initial threshold */
|
||||
@ -1798,7 +1798,7 @@
|
||||
{
|
||||
AF_AxisHints axis = &hints->axis[dim];
|
||||
AF_Edge edges = axis->edges;
|
||||
AF_Edge edge_limit = edges + axis->num_edges;
|
||||
AF_Edge edge_limit = FT_OFFSET( edges, axis->num_edges );
|
||||
FT_PtrDist n_edges;
|
||||
AF_Edge edge;
|
||||
AF_Edge anchor = NULL;
|
||||
@ -2177,7 +2177,7 @@
|
||||
{
|
||||
AF_AxisHints axis = & hints->axis[dim];
|
||||
AF_Edge edges = axis->edges;
|
||||
AF_Edge edge_limit = edges + axis->num_edges;
|
||||
AF_Edge edge_limit = FT_OFFSET( edges, axis->num_edges );
|
||||
AF_Edge edge;
|
||||
FT_Bool snapping;
|
||||
|
||||
|
@ -1316,7 +1316,7 @@
|
||||
{
|
||||
AF_AxisHints axis = & hints->axis[dim];
|
||||
AF_Segment segments = axis->segments;
|
||||
AF_Segment segment_limit = segments + axis->num_segments;
|
||||
AF_Segment segment_limit = FT_OFFSET( segments, axis->num_segments );
|
||||
AF_Segment seg;
|
||||
|
||||
|
||||
@ -1393,7 +1393,7 @@
|
||||
AF_Point point_limit = points + hints->num_points;
|
||||
AF_AxisHints axis = &hints->axis[dim];
|
||||
AF_Edge edges = axis->edges;
|
||||
AF_Edge edge_limit = edges + axis->num_edges;
|
||||
AF_Edge edge_limit = FT_OFFSET( edges, axis->num_edges );
|
||||
FT_UInt touch_flag;
|
||||
|
||||
|
||||
|
@ -200,7 +200,7 @@
|
||||
(AF_Dimension)dim );
|
||||
|
||||
seg = axhints->segments;
|
||||
limit = seg + axhints->num_segments;
|
||||
limit = FT_OFFSET( seg, axhints->num_segments );
|
||||
|
||||
for ( ; seg < limit; seg++ )
|
||||
{
|
||||
@ -1989,7 +1989,7 @@
|
||||
{
|
||||
AF_AxisHints axis = &hints->axis[dim];
|
||||
AF_Segment segments = axis->segments;
|
||||
AF_Segment segment_limit = segments + axis->num_segments;
|
||||
AF_Segment segment_limit = FT_OFFSET( segments, axis->num_segments );
|
||||
FT_Pos len_threshold, len_score, dist_score, max_width;
|
||||
AF_Segment seg1, seg2;
|
||||
|
||||
@ -2134,7 +2134,7 @@
|
||||
FT_Bool top_to_bottom_hinting = 0;
|
||||
|
||||
AF_Segment segments = axis->segments;
|
||||
AF_Segment segment_limit = segments + axis->num_segments;
|
||||
AF_Segment segment_limit = FT_OFFSET( segments, axis->num_segments );
|
||||
AF_Segment seg;
|
||||
|
||||
#if 0
|
||||
@ -2500,7 +2500,7 @@
|
||||
{
|
||||
AF_AxisHints axis = &hints->axis[AF_DIMENSION_VERT];
|
||||
AF_Edge edge = axis->edges;
|
||||
AF_Edge edge_limit = edge + axis->num_edges;
|
||||
AF_Edge edge_limit = FT_OFFSET( edge, axis->num_edges );
|
||||
AF_LatinAxis latin = &metrics->axis[AF_DIMENSION_VERT];
|
||||
FT_Fixed scale = latin->scale;
|
||||
|
||||
@ -2993,7 +2993,7 @@
|
||||
{
|
||||
AF_AxisHints axis = &hints->axis[dim];
|
||||
AF_Edge edges = axis->edges;
|
||||
AF_Edge edge_limit = edges + axis->num_edges;
|
||||
AF_Edge edge_limit = FT_OFFSET( edges, axis->num_edges );
|
||||
FT_PtrDist n_edges;
|
||||
AF_Edge edge;
|
||||
AF_Edge anchor = NULL;
|
||||
|
@ -188,7 +188,7 @@
|
||||
goto Exit;
|
||||
|
||||
table->max_hints = count;
|
||||
table->sort_global = table->sort + count;
|
||||
table->sort_global = FT_OFFSET( table->sort, count );
|
||||
table->num_hints = 0;
|
||||
table->num_zones = 0;
|
||||
table->zone = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user