SVG code calls fooBaseValue() many times when it should call foo() Now that the old broken SVGAnimated* code is removed as part of bug 10490, it has become obvious how many times the SVG code uses the wrong value (base vs. anim) for its calculations. Before base and anim values were actually stored separately. Now they are stored together until animation is enabled, at which point their storage is separate, until the element stops animating again. Someone needs to do a search for all uses of BaseValue() and make sure that those callsites really need access to the baseVal instead of the animVal. There are basically only 3 sections of c++ code which should ever need access to the baseValues. Those are: 1. attribute parsing code (always should use setFooBaseValue()) 2. animation code (may need to use fooBaseValue() to retrieve the base value for animation-related calculations). 3. SVG DOM bindings. JSSVGAnimated* bindings will need to call fooBaseValue() and setFooBaseValue()
For those who are familiar with the SVG spec, this should be a very easy fix.
Created attachment 10450 [details] remove bogus fooBaseValue() calls
Created attachment 10453 [details] Include some related cleanup, while we're at it.
Comment on attachment 10453 [details] Include some related cleanup, while we're at it. r=me