summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix reallocation of path buffer length to cope with differng path lengthsVincent Sanders2015-08-231-21/+41
|
* Ensure path generation does not overrun allocated storage.Vincent Sanders2015-01-151-6/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes bug #2251 which was caused by the svg: <svg width="11" height="11" id="support-entry-icon" y="3389"><g><g><path fill-rule="evenodd" clip-rule="evenodd" fill="#D6D6D6" d="M0,0v11h11V0H0z M10,10H1V1h9V10z M9,3H2v1h7V3z M9,5H2v1h7V5z M9,7H2v1h7V7z"/></g></g></svg> The svg was causing more path elements to be generated in the internal representation than space was allocated for and overrunning heap blocks. The path element parsing was using a fixed size allocation for the path elements and never bounds checked. Further it did not cope with zero length paths (which the spec says are permitted). It was also grossly overallocating for the common case. This changes the path element array to be bounds checked and then extended if required, the initial allocation is generally sufficient and in testing very few resizes occurred. The reallocation strategy grows the element storage by 2.5 each time this means even in the degenerate case very few reallocations are required. In testing no more than a single reallocation has been observed. The final path element array will always be reallocted to the minimum required size. This reduces overall memory usage which is useful with complex scenes.
* fix parsing of whitespace in transform operatorsVincent Sanders2014-10-231-18/+18
| | | | | | | | The SVG spec for the transform attribute allows whitespace in places that were causing the %n specifier in the ssanf to return 0 as the match failed before it completed the parse. http://www.w3.org/TR/SVG/coords.html#TransformAttribute
* Fix relative move commands following a path close.Paul Mecklenburg2014-10-101-0/+7
| | | | | | | | | Both 'M' and 'm' are moves and therefore start a new (sub)path. In either case the location should be cached so that a later 'close path' (z or Z) knows the location it is returning to. The location is not written to 'p', since it is assumed that the client code remembers. If the next move is relative (lowercase), then it's important that last_x, last_y were correctly updated while processing Z/z.
* Hopefully silence warnings about inlines and non inlines calling oneDaniel Silverstone2014-04-261-0/+9
| | | | another.
* Fix to use list_size accessor.Michael Drake2013-08-231-1/+1
|
* Minor tidyup.Michael Drake2013-08-231-10/+7
|
* Move gradient logging to svgtiny_gradient.c, and suppress when not debugging ↵Michael Drake2013-08-232-2/+5
| | | | gradients.
* Fix leak of gradient dom strings.Michael Drake2013-08-231-35/+189
|
* Suppress most gradient debug.Michael Drake2013-08-221-0/+18
|
* Explicitly check if r0 or r1 are NaN, as if they are, on x86 the function ↵Chris Young2013-01-051-1/+7
| | | | evaluates as 0 (which is already handled), but on PPC the function evaluates to a negative value, causing the following for loop to become infinite.
* Handle empty text nodes correctly.John-Mark Bell2012-12-311-3/+7
|
* Drop const, as this can't work with libdom.John-Mark Bell2012-12-301-6/+6
|
* Replace dom_string_length with dom_string_byte_length -- faster and more correctDaniel Silverstone2012-11-032-23/+12
|
* Void myself unpleasantly in order to satisfy RISC OS toolchainDaniel Silverstone2012-11-032-3/+5
|
* Clean up properlyDaniel Silverstone2012-11-031-1/+9
|
* The library now buildsDaniel Silverstone2012-11-035-75/+163
|
* More work towards libdom conversionDaniel Silverstone2012-11-034-118/+173
|
* Parse textDaniel Silverstone2012-11-032-19/+67
|
* Make more svg elements parse againDaniel Silverstone2012-11-033-59/+139
|
* More work to bring svgtiny into the libdom eraDaniel Silverstone2012-11-033-53/+138
|
* Begin conversion to libdomDaniel Silverstone2012-11-032-44/+102
|
* Update to new NSBUILD infrastructureDaniel Silverstone2012-06-291-1/+1
| | | | svn path=/trunk/libsvgtiny/; revision=14010
* sed in BeOS still doesn't handle -i, so use a temporary file since RiscOS ↵François Revel2011-03-211-2/+3
| | | | | | doesn't know pipes. svn path=/trunk/libsvgtiny/; revision=12121
* s/strndup/svgtiny_strndupJohn Mark Bell2011-01-022-2/+3
| | | | svn path=/trunk/libsvgtiny/; revision=11186
* Use built-in strndup if the platform we're targetting doesn't have oneJohn Mark Bell2010-12-293-2/+26
| | | | svn path=/trunk/libsvgtiny/; revision=11140
* Split the string for stroke-width like it's done for the other attributes so ↵James Bursa2010-09-241-1/+3
| | | | | | svgtiny_parse_length doesn't get confused about the remainder of the string. Contributed by Peter Korsgaard. svn path=/trunk/libsvgtiny/; revision=10837
* More of the C89... really do test it please!François Revel2010-01-021-37/+59
| | | | svn path=/trunk/libsvgtiny/; revision=9772
* Lots of C89, please test...François Revel2010-01-021-29/+57
| | | | svn path=/trunk/libsvgtiny/; revision=9771
* Round stroke widths to nearest integer instead of down, and force to 1 if it ↵James Bursa2009-11-281-2/+4
| | | | | | would be rounded to 0. svn path=/trunk/libsvgtiny/; revision=9707
* Implement <ellipse> element. Improve error handling for <circle>.James Bursa2009-11-281-18/+109
| | | | svn path=/trunk/libsvgtiny/; revision=9706
* Despite M_PI being #defined in math.h, and math.h being #included, in certainChris Young2009-11-221-0/+3
| | | | | | circumstances it doesn't get #defined. Catch this. svn path=/trunk/libsvgtiny/; revision=9701
* Start implementing arcs in paths. Fix crash when an empty path has a ↵James Bursa2009-11-221-2/+27
| | | | | | gradient fill. svn path=/trunk/libsvgtiny/; revision=9682
* gperf -> .c rule. This isn't in the core buildsystem as nothing else ↵John Mark Bell2009-08-241-0/+8
| | | | | | requires this. We can migrate it when needed. svn path=/trunk/libsvgtiny/; revision=9425
* Squash warningsJohn Mark Bell2009-08-243-4/+13
| | | | svn path=/trunk/libsvgtiny/; revision=9423
* Missed makefileJohn Mark Bell2009-08-241-0/+4
| | | | svn path=/trunk/libsvgtiny/; revision=9422
* Beginnings of port to core buildsystemJohn Mark Bell2009-08-245-0/+2105
svn path=/trunk/libsvgtiny/; revision=9419