diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-02-13 15:42:37 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-02-15 10:38:41 +0000 |
commit | 6c7378cbde5de3895d648b8aa89a6947b8831880 (patch) | |
tree | fe4e470f9bf2aba420603db4fd9403efbbd74cb6 /filter | |
parent | e9461ceb78c759e5f1cffbaad7b1b25491ed3807 (diff) |
filter: svg: optimizeGradientStops: fix STL assertion
Check that there is actually more than one element in maStops before
tweaking its first 2 elements (can be reproduced with fdo#60471 Tux.svg)
Change-Id: I7e6ffdf510bb590a9ea9e3782b30247b8fb46ed5
(cherry picked from commit 2f4bd9d44f8bc9e50cd4b1205fa53e0a15ce0954)
Reviewed-on: https://gerrit.libreoffice.org/2139
Reviewed-by: Miklos Vajna <vmiklos@suse.cz>
Tested-by: Miklos Vajna <vmiklos@suse.cz>
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/svg/svgreader.cxx | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/filter/source/svg/svgreader.cxx b/filter/source/svg/svgreader.cxx index c76f1176e54b..4d064c7093e0 100644 --- a/filter/source/svg/svgreader.cxx +++ b/filter/source/svg/svgreader.cxx @@ -377,7 +377,7 @@ struct AnnotatingVisitor bool hasGradientOpacity( const Gradient& rGradient ) { return - !rGradient.maStops.empty() && + (rGradient.maStops.size() > 1) && (maGradientStopVector[ rGradient.maStops[0]].maStopColor.a != 1.0 || maGradientStopVector[ @@ -417,6 +417,10 @@ struct AnnotatingVisitor } rGradient.maStops = aNewStops; + if (rGradient.maStops.size() < 2) + { + return; // can't optimize further... + } // axial gradient, maybe? if( rGradient.meType == Gradient::LINEAR && |