| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
This commit adds support for the baseline-shift attribute for tags
"sub/super/baseline". We don't support percentages of the font size
or explicit lengths yet.
https://bugzilla.gnome.org/show_bug.cgi?id=340047
|
|
|
|
| |
There's no need to keep a variable around when nobody ever looks at it.
|
|
|
|
|
|
|
|
|
|
|
| |
And that concludes our rework of reference cylce detection. All code
that references other objects via IRIs will now call rsvg_acquire_node()
which itself avoids giving out the same node a second time until
rsvg_release_node() has been called.
This also means that rsvg_defs_lookup() is only used in two places now:
(1) by rsvg_acquire_node()
(2) by public API that allows operating on objects by id.
|
|
|
|
| |
We're almost there resolving everything lazily...
|
|
|
|
|
| |
This way, we resolve lazily only upon use and thereby can make use of
our amazing new cycle detection technology.
|
| |
|
| |
|
|
|
|
|
| |
Instead of immediately looking up the mask, store the reference and look
it up on use.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
them to Pango
If you have an SVG with
<text style="font-family: 'New Century Schoolbook';"> ... </text>
our CSS-parsing code simply passes the singly-quoted string to Pango. In turn,
Pango doesn't like the quotes because they are not part of the font's name.
This is a simple patch to remove single quotes from *all* style attributes, not
just strings (which is where the CSS spec allows them). We need a real CSS
parser, not something built out of g_strsplit().
|
|
|
|
|
|
|
|
|
|
|
| |
The part of rsvg_parse_style_pair() that validates the dash pattern, by seeing
if any actual dash length was generated, could leave a dangling pointer after
a g_free() if the dash pattern turned out to be invalid. Later, rsvg_state_inherit_run()
would try to g_free() this dangling pointer as well.
Found by Atte Kettunen's fuzz testing.
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
|
|
|
|
|
|
|
|
| |
There was a mixture of guint8*, guchar*, gchar*, etc. Use char* because that's
about as sane as we can get, and only cast where we can't change the public API
or where we must interface with other libraries. *Cough* xmlChar *cough*.
This removes a metric assload of compiler warnings, and I'm fine with that.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=731182
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=731182
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=672414
|
|
|
|
|
| |
Instead of converting back and forth, just use the mime types
directly.
|
| |
|
| |
|
|
|
|
|
|
| |
Wrap _rsvg_io_acquire_* in _rsvg_handle_acquire_* that first
checks whether the load should be allowed. For the moment, always allow
the load; more restricted policies will be introduced in a follow-up commit.
|
|
|
|
| |
Add rsvg-io.[ch], move the code there, clean it up, and adapt the callers.
|
|
|
|
|
|
|
|
|
|
| |
Support vertical writing text (writing-mode: tb-rl | tb)
http://www.w3.org/TR/SVG11/text.html#SettingInlineProgressionDirection
Bump pango dependency to 1.16.0 to use its vertical text APIs.
Currently, we ignore both glyph-orientation-vertical and
glyph-orientation-horizontal.
|
|
|
|
| |
Bug #664533.
|
|
|
|
|
|
|
|
|
|
|
|
| |
... and don't call g_strv_length() just to find out if length is == 2 !
==5735== 4 bytes in 1 blocks are definitely lost in loss record 18 of 356
==5735== at 0x402AD89: malloc (vg_replace_malloc.c:236)
==5735== by 0x4566BDA: standard_malloc (gmem.c:85)
==5735== by 0x4566F80: g_malloc (gmem.c:159)
==5735== by 0x4567282: g_malloc_n (gmem.c:361)
==5735== by 0x457DFCC: g_strsplit (gstrfuncs.c:2249)
==5735== by 0x4053934: rsvg_parse_style (rsvg-styles.c:919)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't leak the CRDocHandler.
==988== 104 (92 direct, 12 indirect) bytes in 1 blocks are definitely lost in loss record 4,805 of 5,382
==988== at 0x402AD89: malloc (vg_replace_malloc.c:236)
==988== by 0x4B40BDA: standard_malloc (gmem.c:85)
==988== by 0x4053A15: rsvg_parse_cssbuffer (rsvg-styles.c:1128)
==988== by 0x4056644: rsvg_style_handler_free (rsvg-base.c:90)
==988== by 0x4056BB9: rsvg_end_element (rsvg-base.c:681)
==988== by 0x49C28C1: xmlParseEndTag1 (parser.c:8356)
==988== by 0x49C9DEB: xmlParseTryOrFinish (parser.c:11154)
==988== by 0x49CAB24: xmlParseChunk (parser.c:11739)
==988== by 0x405A238: rsvg_handle_write (rsvg-base.c:1172)
|
|
|
|
|
|
|
| |
In all cases except one, the property bag does not need to store copies
of the attributes and values. So make the property bag store them by
reference, and add rsvg_property_bag_dup for the one case where we do
need to make a bag that owns the attributes and values.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=624820
|
| |
|
|
|
|
|
| |
I've checked this quite carefully, but it still might contain
stupid typo bugs ;-)
|
|
|
|
|
| |
Although it appears this property is only parsed, but not used
when rendering...
|
|
|
|
|
| |
Although it appears this property is only parsed, but not used
when rendering...
|
| |
|
| |
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=652213
|
|
|
|
|
| |
Callers don't expect it and things go bad...
https://bugzilla.gnome.org/show_bug.cgi?id=626802
|
| |
|
| |
|
|
|
|
| |
rsvg_state_current -> rsvg_current_state.
|
|
|
|
| |
Now we can get ancestor's font-size.
|
|
|
|
| |
Fix for bug #617163.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Fix for bug #61406.
RsvgState keeps style information with "!important" in hash table.
|
|
|
|
| |
Fix for bug #614643.
|
|
|
|
| |
Fix for bug #615701.
|
|
|
|
| |
Fix for bug #615715.
|
|
|
|
| |
Fix for bug #614704.
|
|
|
|
| |
Fix for 592207.
|