summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTaekyun Kim <tkq.kim@samsung.com>2011-10-17 19:09:11 +0900
committerTaekyun Kim <tkq.kim@samsung.com>2011-10-17 20:43:16 +0900
commit592d00ed636207e0e605aac4d9acdea6ab95816c (patch)
tree552640b9536146786a956fed7a66a330905b5d09
parent9ba19a6444dcb4a51bf7cc520a1a93fdbb58e07a (diff)
spans: Fix the size of the span buffer for tor scan converterspans
X coordinate of a span can range between xmin and xmax. So we have to allocate (xmax - xmin + 1) slots for spans.
-rw-r--r--src/cairo-tor-scan-converter.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/cairo-tor-scan-converter.c b/src/cairo-tor-scan-converter.c
index b001bbd6..d6ea7789 100644
--- a/src/cairo-tor-scan-converter.c
+++ b/src/cairo-tor-scan-converter.c
@@ -1428,12 +1428,15 @@ glitter_scan_converter_reset(
int xmax, int ymax)
{
glitter_status_t status;
+ int max_num_spans;
converter->xmin = 0; converter->xmax = 0;
converter->ymin = 0; converter->ymax = 0;
- if (xmax - xmin > ARRAY_LENGTH(converter->spans_embedded)) {
- converter->spans = _cairo_malloc_ab (xmax - xmin,
+ max_num_spans = xmax - xmin + 1;
+
+ if (max_num_spans > ARRAY_LENGTH(converter->spans_embedded)) {
+ converter->spans = _cairo_malloc_ab (max_num_spans,
sizeof (cairo_half_open_span_t));
if (unlikely (converter->spans == NULL))
return _cairo_error (CAIRO_STATUS_NO_MEMORY);