--- src/autofit/afcjk.c +++ src/autofit/afcjk.c @@ -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 = axis->num_segments == 0 ? segments : 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 = axis->num_segments == 0 ? segments : 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 = axis->num_edges == 0 ? edges : 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 = axis->num_edges == 0 ? edge : 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 = axis->num_edges == 0 ? edges : 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 = axis->num_edges == 0 ? edges : edges + axis->num_edges; AF_Edge edge; FT_Bool snapping; --- src/autofit/afhints.c +++ src/autofit/afhints.c @@ -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 = axis->num_segments == 0 ? segments : 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 = axis->num_edges == 0 ? edges : edges + axis->num_edges; FT_UInt touch_flag; --- src/autofit/aflatin.c +++ src/autofit/aflatin.c @@ -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 = axis->num_segments == 0 ? segments : 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 = axis->num_segments == 0 ? segments : 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 = axis->num_edges == 0 ? edge : 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 = axis->num_edges == 0 ? edges : edges + axis->num_edges; FT_PtrDist n_edges; AF_Edge edge; AF_Edge anchor = NULL; --- src/truetype/ttgxvar.c +++ src/truetype/ttgxvar.c @@ -964,7 +964,7 @@ /* in the OpenType specification. */ varData = &itemStore->varData[outerIndex]; - deltaSet = &varData->deltaSet[varData->regionIdxCount * innerIndex]; + deltaSet = varData->regionIdxCount * innerIndex == 0 ? varData->deltaSet : &varData->deltaSet[varData->regionIdxCount * innerIndex]; /* outer loop steps through master designs to be blended */ for ( master = 0; master < varData->regionIdxCount; master++ )