Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
cairo
cairo
Commits
03a820b1
Commit
03a820b1
authored
Dec 15, 2020
by
Heiko Lewin
Browse files
Fix mask usage in image-compositor
parent
e22d7212
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/cairo-image-compositor.c
View file @
03a820b1
...
...
@@ -2610,14 +2610,14 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
unsigned
num_spans
)
{
cairo_image_span_renderer_t
*
r
=
abstract_renderer
;
uint8_t
*
m
;
uint8_t
*
m
,
*
base
=
(
uint8_t
*
)
pixman_image_get_data
(
r
->
mask
)
;
int
x0
;
if
(
num_spans
==
0
)
return
CAIRO_STATUS_SUCCESS
;
x0
=
spans
[
0
].
x
;
m
=
r
->
_buf
;
m
=
base
;
do
{
int
len
=
spans
[
1
].
x
-
spans
[
0
].
x
;
if
(
len
>=
r
->
u
.
composite
.
run_length
&&
spans
[
0
].
coverage
==
0xff
)
{
...
...
@@ -2655,7 +2655,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
spans
[
0
].
x
,
y
,
spans
[
1
].
x
-
spans
[
0
].
x
,
h
);
m
=
r
->
_buf
;
m
=
base
;
x0
=
spans
[
1
].
x
;
}
else
if
(
spans
[
0
].
coverage
==
0x0
)
{
if
(
spans
[
0
].
x
!=
x0
)
{
...
...
@@ -2684,7 +2684,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
#endif
}
m
=
r
->
_buf
;
m
=
base
;
x0
=
spans
[
1
].
x
;
}
else
{
*
m
++
=
spans
[
0
].
coverage
;
...
...
test/Makefile.sources
View file @
03a820b1
...
...
@@ -34,6 +34,7 @@ test_sources = \
bug-source-cu.c
\
bug-extents.c
\
bug-seams.c
\
bug-image-compositor.c
\
caps.c
\
checkerboard.c
\
caps-joins.c
\
...
...
test/bug-image-compositor.c
0 → 100644
View file @
03a820b1
#include
"cairo-test.h"
static
cairo_test_status_t
draw
(
cairo_t
*
cr
,
int
width
,
int
height
)
{
cairo_set_source_rgb
(
cr
,
0
.,
0
.,
0
.);
cairo_paint
(
cr
);
cairo_set_source_rgb
(
cr
,
1
.,
1
.,
1
.);
cairo_set_line_width
(
cr
,
1
.);
cairo_pattern_t
*
p
=
cairo_pattern_create_linear
(
0
,
0
,
width
,
height
);
cairo_pattern_add_color_stop_rgb
(
p
,
0
,
0
.
99
,
1
,
1
);
cairo_pattern_add_color_stop_rgb
(
p
,
1
,
1
,
1
,
1
);
cairo_set_source
(
cr
,
p
);
cairo_move_to
(
cr
,
0
.
5
,
-
1
);
for
(
int
i
=
0
;
i
<
width
;
i
+=
3
)
{
cairo_rel_line_to
(
cr
,
2
,
2
);
cairo_rel_line_to
(
cr
,
1
,
-
2
);
}
cairo_set_operator
(
cr
,
CAIRO_OPERATOR_SOURCE
);
cairo_stroke
(
cr
);
cairo_pattern_destroy
(
p
);
return
CAIRO_TEST_SUCCESS
;
}
CAIRO_TEST
(
bug_image_compositor
,
"Crash in image-compositor"
,
"stroke, stress"
,
/* keywords */
NULL
,
/* requirements */
10000
,
1
,
NULL
,
draw
)
test/reference/bug-image-compositor.ref.png
0 → 100644
View file @
03a820b1
185 Bytes
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment