Merge pull request #191 from nthykier/gh-190-optimizeTransform-IndexError
Avoid crashing on "scale(1)" (short for "scale(1, 1)")
This commit is contained in:
commit
47f918e696
3 changed files with 19 additions and 1 deletions
|
|
@ -2966,7 +2966,9 @@ def optimizeTransform(transform):
|
||||||
# y1 * uniformscalefactor2
|
# y1 * uniformscalefactor2
|
||||||
prevArgs[1] *= currArgs[0]
|
prevArgs[1] *= currArgs[0]
|
||||||
del transform[i]
|
del transform[i]
|
||||||
if prevArgs[0] == prevArgs[1] == 1:
|
# if prevArgs is [1] or [1, 1], then it is effectively an
|
||||||
|
# identity matrix and can be removed.
|
||||||
|
if prevArgs[0] == 1 and (len(prevArgs) == 1 or prevArgs[1] == 1):
|
||||||
# Identity scale!
|
# Identity scale!
|
||||||
i -= 1
|
i -= 1
|
||||||
del transform[i]
|
del transform[i]
|
||||||
|
|
|
||||||
11
testscour.py
11
testscour.py
|
|
@ -2304,6 +2304,17 @@ class TransformIdentityTranslate(unittest.TestCase):
|
||||||
'Transform containing identity translation not removed')
|
'Transform containing identity translation not removed')
|
||||||
|
|
||||||
|
|
||||||
|
class TransformIdentityScale(unittest.TestCase):
|
||||||
|
|
||||||
|
def runTest(self):
|
||||||
|
try:
|
||||||
|
doc = scourXmlFile('unittests/transform-scale-is-identity.svg')
|
||||||
|
except IndexError:
|
||||||
|
self.fail("scour failed to handled scale(1) [See GH#190]")
|
||||||
|
self.assertEqual(doc.getElementsByTagName('line')[0].getAttribute('scale'), '',
|
||||||
|
'Transform containing identity translation not removed')
|
||||||
|
|
||||||
|
|
||||||
class DuplicateGradientsUpdateStyle(unittest.TestCase):
|
class DuplicateGradientsUpdateStyle(unittest.TestCase):
|
||||||
|
|
||||||
def runTest(self):
|
def runTest(self):
|
||||||
|
|
|
||||||
5
unittests/transform-scale-is-identity.svg
Normal file
5
unittests/transform-scale-is-identity.svg
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="-9 0 9 9">
|
||||||
|
<line stroke="rgba(255,0,0,0.5)" y1="9" x1="9" transform="scale(1 1) scale(1)"/>
|
||||||
|
<line stroke="rgba(0,0,255,0.5)" y1="9" x1="9"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 268 B |
Loading…
Add table
Add a link
Reference in a new issue