SVGLength needs to be passed around as value, not by pointer, just like it's done for SVGMatrix* -> AffineTransform, or SVGPoint/SVGRect. Also it's unnecessary to store both a value and a valueInSpecifiedUnits object in SVGLength itself, this can be changed. The only problem is that the JS put() problems have to be fixed in POD types first, that's also done in the patch I'm attaching soon.
Created attachment 11824 [details] First patch, not ready for review yet This patch compiles & links, but it still has some subtle bugs related to coordinate handling & fractions, and the new JS put() logic doesn't seem to work reliable yet. It doesn't crash but clearle shows memory corruption (ie. createSVGNumber() returns some weird 9.38E30 values....) I just want to keep the patch here so Rob & others can have a look at it, too.
Created attachment 11846 [details] Second patch, not ready for review yet Now that JS SVG POD types are fixed, SVGLength can be converted, finally. This patch is complete, compiles & links, but still has some issues with two tests (svg length fraction handling). This is likely, as SVGLength has been completely rewritten :-) I'll try to fix them tomorrow... Attaching patch for early birds..
Created attachment 11880 [details] No regressions These changes to Niko's patch should fix the regressions. Cheers, Rob.
Created attachment 11885 [details] Updated patch Finally a complete patch, with no regressions! :-) Credits go to Rob for fixing the last (very important!) regression, which I was unable to find for quite some days...
Created attachment 11889 [details] Updated patch II We still found a problem when manually testing, uploading latest patch for Rob & Oliver.
Created attachment 11893 [details] Final patch All regressions fixed now! :-)
Landed in r18267.