diff options
-rw-r--r-- | svgio/source/svgreader/svgstyleattributes.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx b/svgio/source/svgreader/svgstyleattributes.cxx index 511872ec7f1e..67219e7060a8 100644 --- a/svgio/source/svgreader/svgstyleattributes.cxx +++ b/svgio/source/svgreader/svgstyleattributes.cxx @@ -949,7 +949,7 @@ namespace svgio basegfx::B2DRange aClipRange; const SvgMarkerNode* pPrepared = 0; - if(pStart) + if(pStart && a==0) { if(prepare_singleMarker(aMarkerPrimitives, aMarkerTransform, aClipRange, *pStart)) { @@ -958,20 +958,22 @@ namespace svgio } } - if(pMid && nMarkerCount > 2) + if(pMid) { if(pMid == pPrepared || prepare_singleMarker(aMarkerPrimitives, aMarkerTransform, aClipRange, *pMid)) { pPrepared = pMid; + const sal_uInt32 nFirstIndex(a==0 ? 1 : 0); + const sal_uInt32 nLastIndex(a==nCount-1 ? nMarkerCount-1 : nMarkerCount); - for(sal_uInt32 b(1); b < nMarkerCount - 1; b++) + for(sal_uInt32 b(nFirstIndex); b < nLastIndex; b++) { add_singleMarker(rTarget, aMarkerPrimitives, aMarkerTransform, aClipRange, *pPrepared, aCandidate, b); } } } - if(pEnd) + if(pEnd && a==nCount-1) { if(pEnd == pPrepared || prepare_singleMarker(aMarkerPrimitives, aMarkerTransform, aClipRange, *pEnd)) { |