summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2022-03-09 21:29:36 +0100
committerSlávek Banko <slavek.banko@axis.cz>2022-03-09 22:30:17 +0100
commit4df3893c309d00e3710cbf8def6309c9af0abbd8 (patch)
tree0dd70d1435810a7a6a9ca4155f92549b3ca62a7d
parentbeb97c21901cc710fbd864ea6b68cb5aa56f802c (diff)
downloadtdelibs-4df3893c309d00e3710cbf8def6309c9af0abbd8.tar.gz
tdelibs-4df3893c309d00e3710cbf8def6309c9af0abbd8.zip
svgicons: Prevent a crash in case of a problem with the SVG image.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
-rw-r--r--tdecore/svgicons/ksvgiconpainter.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/tdecore/svgicons/ksvgiconpainter.cpp b/tdecore/svgicons/ksvgiconpainter.cpp
index e0e2a2ce9..9eaf81665 100644
--- a/tdecore/svgicons/ksvgiconpainter.cpp
+++ b/tdecore/svgicons/ksvgiconpainter.cpp
@@ -217,6 +217,10 @@ public:
return;
ArtRender *render = art_render_new(0, 0, m_width, m_height, m_buffer, m_rowstride, 3, 8, ART_ALPHA_SEPARATE, 0);
+ if(!render)
+ {
+ return;
+ }
art_render_svp(render, svp);
art_render_mask_solid(render, (opacity << 8) + opacity + (opacity >> 7));
@@ -475,6 +479,10 @@ public:
linear->c = -(x1n * linear->a + y1n * linear->b);
ArtRender *render = art_render_new(0, 0, m_width, m_height, m_buffer, m_rowstride, 3, 8, ART_ALPHA_SEPARATE, 0);
+ if(!render)
+ {
+ return;
+ }
art_render_svp(render, svp);
art_render_gradient_linear(render, linear, ART_FILTER_HYPER);
@@ -546,6 +554,10 @@ public:
art_affine_invert(radial->affine, aff1);
ArtRender *render = art_render_new(0, 0, m_width, m_height, m_buffer, m_rowstride, 3, 8, ART_ALPHA_SEPARATE, 0);
+ if(!render)
+ {
+ render;
+ }
art_render_svp(render, svp);
art_render_gradient_radial(render, radial, ART_FILTER_HYPER);