Hello community, here is the log from the commit of package librsvg for openSUSE:Factory checked in at 2016-04-07 13:36:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/librsvg (Old) and /work/SRC/openSUSE:Factory/.librsvg.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "librsvg" Changes: -------- --- /work/SRC/openSUSE:Factory/librsvg/librsvg.changes 2016-01-12 16:11:31.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.librsvg.new/librsvg.changes 2016-04-07 13:36:28.000000000 +0200 @@ -1,0 +2,15 @@ +Sat Apr 2 09:58:17 UTC 2016 - [email protected] + +- Update to version 2.40.15: + + Librsvg now uses the Contributor Covenant Code of Conduct, + version 1.4, to which all contributors and maintainers are + expected to abide. Please see the code_of_conduct.md file for + details. + + Fixed builds on Visual Studio pre-2012. + + Fixed bgo#759084: Don't crash when filters don't actually + exist. + + Updated our autogen.sh to use modern autotools. + + Fixed bgo#761728: Memory leak in the PrimitiveComponentTransfer + filter. + +------------------------------------------------------------------- Old: ---- librsvg-2.40.13.tar.xz New: ---- librsvg-2.40.15.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ librsvg.spec ++++++ --- /var/tmp/diff_new_pack.V5N5f7/_old 2016-04-07 13:36:29.000000000 +0200 +++ /var/tmp/diff_new_pack.V5N5f7/_new 2016-04-07 13:36:29.000000000 +0200 @@ -17,7 +17,7 @@ Name: librsvg -Version: 2.40.13 +Version: 2.40.15 Release: 0 Summary: A Library for Rendering SVG Data License: LGPL-2.0+ and GPL-2.0+ ++++++ librsvg-2.40.13.tar.xz -> librsvg-2.40.15.tar.xz ++++++ ++++ 2155 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/ChangeLog new/librsvg-2.40.15/ChangeLog --- old/librsvg-2.40.13/ChangeLog 2016-01-08 02:44:51.000000000 +0100 +++ new/librsvg-2.40.15/ChangeLog 2016-04-02 02:50:36.000000000 +0200 @@ -1,3 +1,127 @@ +commit f4296d2b385fd7bf5b369a8ba249fb4c0fb87da8 +Author: Federico Mena Quintero <[email protected]> +Date: Wed Mar 30 19:48:56 2016 -0600 + + RsvgFilterPrimitive: use a single destructor for most subclasses + + Instead of duplicating code to free the superclass all over the place, + use a single function. + + Also, remove a bit of the 'upself' idiom - it's unreadable. + + rsvg-filter.c | 287 +++++++++++++++++++++++----------------------------------- + 1 file changed, 111 insertions(+), 176 deletions(-) + +commit 76ad48b8210168869cedb1419b1e49dcf2e064a1 +Author: Ron Hopper <[email protected]> +Date: Mon Feb 8 15:21:08 2016 -0500 + + RsvgFilterPrimitiveComponentTransfer: add destructor; fix memory leak + + https://bugzilla.gnome.org/show_bug.cgi?id=761728 + + rsvg-filter.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +commit 03c5bfcfee7736b1c29255f489053a0bd90ce714 +Author: Federico Mena Quintero <[email protected]> +Date: Wed Feb 10 19:12:30 2016 -0600 + + s/propegate/propagate + + gdk-pixbuf-loader/io-svg.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +commit 5dc85eb2a13f92ba3be32669e7f6e9178b1d643c +Author: Federico Mena Quintero <[email protected]> +Date: Wed Feb 10 19:05:40 2016 -0600 + + Bump version to 2.40.14 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit fcbb915d8594a246cace478095a9124aa0df60f1 +Author: Federico Mena Quintero <[email protected]> +Date: Wed Feb 10 19:00:37 2016 -0600 + + Update the Contributor Covenant to version 1.4 + + code_of_conduct.md | 80 +++++++++++++++++++++++++++++++++++------------------- + 1 file changed, 52 insertions(+), 28 deletions(-) + +commit 6eabff9d11d9111a9565ae4cdeed841157308737 +Author: Javier Jardón <[email protected]> +Date: Mon Feb 8 13:15:25 2016 +0000 + + autogen.sh: Replace deprecated gnome-autogen.sh with standard autotools + + See https://wiki.gnome.org/Projects/GnomeCommon/Migration + + autogen.sh | 61 +++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 29 insertions(+), 32 deletions(-) + +commit 7948f3b862a8c43c68de0951927e3a3402a580f9 +Author: Federico Mena Quintero <[email protected]> +Date: Fri Jan 29 19:19:52 2016 -0600 + + Add a code of conduct, the Contributor Covenant 1.3.0 + + http://contributor-covenant.org + + README | 2 ++ + code_of_conduct.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 52 insertions(+) + +commit d937c691678803ceda6be701587d997ccd03a1da +Author: Benjamin Otte <[email protected]> +Date: Fri Jan 29 12:49:55 2016 +0100 + + Don't crash when filters don't exist + + We put a new surface on the stack if a filter existed by name but we + didn't pop it if the name didn't resolve to a real filter. + + New test: crash/bug759084.svg + + https://bugzilla.gnome.org/show_bug.cgi?id=759084 + + rsvg-cairo-draw.c | 6 +++--- + tests/fixtures/crash/bug759084.svg | 9 +++++++++ + 2 files changed, 12 insertions(+), 3 deletions(-) + +commit 91e50fe393a25eeff7c5e4430d5666362bce0283 +Author: Benjamin Otte <[email protected]> +Date: Thu Dec 10 22:59:30 2015 +0100 + + filter: Remove unused variables + + rsvg-filter.c | 30 ------------------------------ + 1 file changed, 30 deletions(-) + +commit 2ae18d05e654b1130fa7397b316d270be1707450 +Author: Chun-wei Fan <[email protected]> +Date: Thu Jan 21 18:13:54 2016 +0800 + + Visual Studio builds: Fix pre-Visual Studio 2012 builds + + A recent commit made use of the C99 function isnan(), which is not + supported directly in pre-2013 Visual Studio. Earlier Visual Studio + however does provide _isnan() which does what we will need, so add a + fallback math.h in build/win32/vs9 that defines isnan() and includes the + stock math.h, and make the projects include this math.h. + + This header is copied to the build/win32/vs[10|11] during 'make dist', as + Visual Studio 2010 and 2012 will need this as well. + + build/win32/vs10/Makefile.am | 6 ++++- + build/win32/vs10/rsvg-build-defines.props | 2 +- + build/win32/vs11/Makefile.am | 6 ++++- + build/win32/vs9/Makefile.am | 1 + + build/win32/vs9/math.h | 39 ++++++++++++++++++++++++++++++ + build/win32/vs9/rsvg-build-defines.vsprops | 2 +- + 6 files changed, 52 insertions(+), 4 deletions(-) + commit a12e7b90e7b9fa6a6a325f39fb409722b06a6735 Author: Federico Mena Quintero <[email protected]> Date: Thu Jan 7 19:37:34 2016 -0600 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/NEWS new/librsvg-2.40.15/NEWS --- old/librsvg-2.40.13/NEWS 2016-01-08 02:43:51.000000000 +0100 +++ new/librsvg-2.40.15/NEWS 2016-04-02 02:49:59.000000000 +0200 @@ -1,3 +1,16 @@ +Version 2.40.15 +- Apologies for the lack of 2.40.14. I mistakenly tagged the + repository before updating the NEWS file. +- librsvg now uses the Contributor Covenant Code of Conduct, + version 1.4, to which all contributors and maintainers are expected + to abide. Please see the code_of_conduct.md file for details. +- Chun-wei Fan fixed builds on Visual Studio pre-2012. +- Fixed bgo#759084 - Don't crash when filters don't actually exist + Fix by Benjamin Otte. +- Javier Jardón updated our autogen.sh to use modern autotools. +- Fixed bgo#761728 - Memory leak in the PrimitiveComponentTransfer + filter. Fix by Ron Hopper. + Version 2.40.13 - Chun-wei Fan and Paolo Borelli fixed the Windows build. - Menner added basic support for the "baseline-shift" attribute in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/README new/librsvg-2.40.15/README --- old/librsvg-2.40.13/README 2015-04-16 02:24:40.000000000 +0200 +++ new/librsvg-2.40.15/README 2016-01-30 02:16:20.000000000 +0100 @@ -1,3 +1,5 @@ This is librsvg - A high performance SVG rendering library associated with the Gnome Project. Please report bugs at http://bugzilla.gnome.org/enter_bug.cgi?product=librsvg + +There is a code of conduct for contributors to librsvg; please see the file code_of_conduct.md. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/build/win32/vs10/Makefile.am new/librsvg-2.40.15/build/win32/vs10/Makefile.am --- old/librsvg-2.40.13/build/win32/vs10/Makefile.am 2015-10-08 00:25:45.000000000 +0200 +++ new/librsvg-2.40.15/build/win32/vs10/Makefile.am 2016-01-21 16:52:34.000000000 +0100 @@ -3,7 +3,8 @@ rsvg.vcxproj.filters \ rsvg-convert.vcxproj \ rsvg-convert.vcxproj.filters \ - rsvg-install.props + rsvg-install.props \ + math.h EXTRA_DIST = \ librsvg.sln \ @@ -27,6 +28,9 @@ $(CPP) -P - <$(top_srcdir)/build/win32/vs10/rsvg-install.propsin >$@ rm rsvg.vs10.headers +math.h: $(top_srcdir)/build/win32/vs9/math.h + cp $< $@ + DISTCLEANFILES = $(GENERATED_ITEMS) -include $(top_srcdir)/git.mk diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/build/win32/vs10/math.h new/librsvg-2.40.15/build/win32/vs10/math.h --- old/librsvg-2.40.13/build/win32/vs10/math.h 1970-01-01 01:00:00.000000000 +0100 +++ new/librsvg-2.40.15/build/win32/vs10/math.h 2016-04-01 23:21:54.000000000 +0200 @@ -0,0 +1,39 @@ +/* librsvg - SVG rendering library + * Copyright (C) 2015 Chun-wei Fan <[email protected]> + * + * Author: Chun-wei Fan <[email protected]> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <float.h> + +/* include the system's math.h */ +#include <../include/math.h> +#include <glib.h> + +#if (_MSC_VER < 1800) +/* it seems of the supported compilers only + * MSVC does not have isnan(), but it does + * have _isnan() which does the same as isnan() + */ +#ifndef __MSVC_ISNAN_FALLBACK__ +#define __MSVC_ISNAN_FALLBACK__ +static inline gboolean +isnan (double x) +{ + return _isnan (x); +} +#endif /* __MSVC_ISNAN_FALLBACK__ */ +#endif /* _MSC_VER < 1800 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/build/win32/vs10/rsvg-build-defines.props new/librsvg-2.40.15/build/win32/vs10/rsvg-build-defines.props --- old/librsvg-2.40.13/build/win32/vs10/rsvg-build-defines.props 2016-01-05 20:44:05.000000000 +0100 +++ new/librsvg-2.40.15/build/win32/vs10/rsvg-build-defines.props 2016-01-21 16:52:34.000000000 +0100 @@ -5,7 +5,7 @@ </ImportGroup> <PropertyGroup Label="UserMacros"> <LibRsvgCFlags>G_LOG_DOMAIN="librsvg";RSVG_DISABLE_DEPRECATION_WARNINGS;RSVG_COMPILATION</LibRsvgCFlags> - <LibRsvgIncPath>$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\libcroco-0.6;$(GlibEtcInstallRoot)\include\libxml2</LibRsvgIncPath> + <LibRsvgIncPath>$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\libcroco-0.6;$(GlibEtcInstallRoot)\include\libxml2;.\</LibRsvgIncPath> <LibRsvgLibs>pangocairo-1.0.lib;pango-1.0.lib;croco-0.6.lib;libxml2.lib</LibRsvgLibs> <IntlLib>intl.lib</IntlLib> <Gtk3IncPath>$(GlibEtcInstallRoot)\include\gtk-3.0;$(GlibEtcInstallRoot)\include\atk-1.0;$(LibRsvgIncPath)</Gtk3IncPath> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/build/win32/vs11/Makefile.am new/librsvg-2.40.15/build/win32/vs11/Makefile.am --- old/librsvg-2.40.13/build/win32/vs11/Makefile.am 2015-10-08 00:25:45.000000000 +0200 +++ new/librsvg-2.40.15/build/win32/vs11/Makefile.am 2016-01-21 16:52:34.000000000 +0100 @@ -13,7 +13,8 @@ rsvg-install.vcxproj \ rsvg-view-3.vcxproj \ rsvg-view-3.vcxproj.filters \ - README.txt + README.txt \ + math.h DISTCLEANFILES = $(EXTRA_DIST) @@ -22,3 +23,6 @@ MSVC_VER_LONG = 2012 include $(top_srcdir)/build/Makefile-newvs.am + +math.h: $(top_srcdir)/build/win32/vs9/math.h + cp $< $@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/build/win32/vs11/math.h new/librsvg-2.40.15/build/win32/vs11/math.h --- old/librsvg-2.40.13/build/win32/vs11/math.h 1970-01-01 01:00:00.000000000 +0100 +++ new/librsvg-2.40.15/build/win32/vs11/math.h 2016-04-01 23:21:54.000000000 +0200 @@ -0,0 +1,39 @@ +/* librsvg - SVG rendering library + * Copyright (C) 2015 Chun-wei Fan <[email protected]> + * + * Author: Chun-wei Fan <[email protected]> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <float.h> + +/* include the system's math.h */ +#include <../include/math.h> +#include <glib.h> + +#if (_MSC_VER < 1800) +/* it seems of the supported compilers only + * MSVC does not have isnan(), but it does + * have _isnan() which does the same as isnan() + */ +#ifndef __MSVC_ISNAN_FALLBACK__ +#define __MSVC_ISNAN_FALLBACK__ +static inline gboolean +isnan (double x) +{ + return _isnan (x); +} +#endif /* __MSVC_ISNAN_FALLBACK__ */ +#endif /* _MSC_VER < 1800 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/build/win32/vs9/Makefile.am new/librsvg-2.40.15/build/win32/vs9/Makefile.am --- old/librsvg-2.40.13/build/win32/vs9/Makefile.am 2015-10-08 00:25:45.000000000 +0200 +++ new/librsvg-2.40.15/build/win32/vs9/Makefile.am 2016-01-21 16:52:34.000000000 +0100 @@ -15,6 +15,7 @@ rsvg-install.vcproj \ rsvg-view-3.vcproj \ README.txt \ + math.h \ $(GENERATED_ITEMS) rsvg-install.vsprops: $(top_srcdir)/build/win32/vs9/rsvg-install.vspropsin rsvg.headers diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/build/win32/vs9/math.h new/librsvg-2.40.15/build/win32/vs9/math.h --- old/librsvg-2.40.13/build/win32/vs9/math.h 1970-01-01 01:00:00.000000000 +0100 +++ new/librsvg-2.40.15/build/win32/vs9/math.h 2016-01-21 16:52:34.000000000 +0100 @@ -0,0 +1,39 @@ +/* librsvg - SVG rendering library + * Copyright (C) 2015 Chun-wei Fan <[email protected]> + * + * Author: Chun-wei Fan <[email protected]> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <float.h> + +/* include the system's math.h */ +#include <../include/math.h> +#include <glib.h> + +#if (_MSC_VER < 1800) +/* it seems of the supported compilers only + * MSVC does not have isnan(), but it does + * have _isnan() which does the same as isnan() + */ +#ifndef __MSVC_ISNAN_FALLBACK__ +#define __MSVC_ISNAN_FALLBACK__ +static inline gboolean +isnan (double x) +{ + return _isnan (x); +} +#endif /* __MSVC_ISNAN_FALLBACK__ */ +#endif /* _MSC_VER < 1800 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/build/win32/vs9/rsvg-build-defines.vsprops new/librsvg-2.40.15/build/win32/vs9/rsvg-build-defines.vsprops --- old/librsvg-2.40.13/build/win32/vs9/rsvg-build-defines.vsprops 2016-01-05 20:44:05.000000000 +0100 +++ new/librsvg-2.40.15/build/win32/vs9/rsvg-build-defines.vsprops 2016-01-21 16:52:34.000000000 +0100 @@ -21,7 +21,7 @@ /> <UserMacro Name="LibRsvgIncPath" - Value="$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\libcroco-0.6;$(GlibEtcInstallRoot)\include\libxml2" + Value="$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\libcroco-0.6;$(GlibEtcInstallRoot)\include\libxml2;.\" /> <UserMacro Name="Gtk3IncPath" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/config.h.win32 new/librsvg-2.40.15/config.h.win32 --- old/librsvg-2.40.13/config.h.win32 2015-12-02 21:27:37.000000000 +0100 +++ new/librsvg-2.40.15/config.h.win32 2016-04-02 02:50:29.000000000 +0200 @@ -64,7 +64,7 @@ #define PACKAGE_NAME "RSVG" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "RSVG 2.40.13" +#define PACKAGE_STRING "RSVG 2.40.15" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "librsvg" @@ -73,13 +73,13 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "2.40.13" +#define PACKAGE_VERSION "2.40.15" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "2.40.13" +#define VERSION "2.40.15" /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/configure.ac new/librsvg-2.40.15/configure.ac --- old/librsvg-2.40.13/configure.ac 2015-12-02 02:18:33.000000000 +0100 +++ new/librsvg-2.40.15/configure.ac 2016-04-02 02:50:08.000000000 +0200 @@ -1,6 +1,6 @@ m4_define([rsvg_major_version],[2]) m4_define([rsvg_minor_version],[40]) -m4_define([rsvg_micro_version],[13]) +m4_define([rsvg_micro_version],[15]) m4_define([rsvg_extra_version],[]) m4_define([rsvg_version],[rsvg_major_version.rsvg_minor_version.rsvg_micro_version()rsvg_extra_version]) m4_define([rsvg_lt_version_info],m4_eval(rsvg_major_version + rsvg_minor_version):rsvg_micro_version:rsvg_minor_version) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/doc/html/index.html new/librsvg-2.40.15/doc/html/index.html --- old/librsvg-2.40.13/doc/html/index.html 2016-01-08 02:44:53.000000000 +0100 +++ new/librsvg-2.40.15/doc/html/index.html 2016-04-02 02:50:39.000000000 +0200 @@ -15,7 +15,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">RSVG Libary Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - For RSVG version 2.40.13 + For RSVG version 2.40.15 . The latest version of this documentation can be found on-line at the <a class="ulink" href="http://library.gnome.org/devel/rsvg/index.html" target="_top">GNOME Library</a>. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/doc/version.xml new/librsvg-2.40.15/doc/version.xml --- old/librsvg-2.40.13/doc/version.xml 2015-12-02 21:27:37.000000000 +0100 +++ new/librsvg-2.40.15/doc/version.xml 2016-04-02 02:50:29.000000000 +0200 @@ -1 +1 @@ -2.40.13 +2.40.15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/gdk-pixbuf-loader/io-svg.c new/librsvg-2.40.15/gdk-pixbuf-loader/io-svg.c --- old/librsvg-2.40.13/gdk-pixbuf-loader/io-svg.c 2015-04-16 02:24:40.000000000 +0200 +++ new/librsvg-2.40.15/gdk-pixbuf-loader/io-svg.c 2016-02-11 02:12:18.000000000 +0100 @@ -52,7 +52,7 @@ } RsvgLoaderErrorReasons; static void -rsvg_propegate_error (GError ** err, +rsvg_propagate_error (GError ** err, const char * reason, gint code) { @@ -118,7 +118,7 @@ context->handle = rsvg_handle_new (); if (!context->handle) { - rsvg_propegate_error (error, _("Error displaying image"), ERROR_DISPLAYING_IMAGE); + rsvg_propagate_error (error, _("Error displaying image"), ERROR_DISPLAYING_IMAGE); return FALSE; } @@ -126,12 +126,12 @@ } if (!context->handle) { - rsvg_propegate_error (error, _("Error displaying image"), ERROR_DISPLAYING_IMAGE); + rsvg_propagate_error (error, _("Error displaying image"), ERROR_DISPLAYING_IMAGE); return FALSE; } if (!rsvg_handle_write (context->handle, buf, size, error)) { - rsvg_propegate_error (error, _("Error writing"), ERROR_WRITING); + rsvg_propagate_error (error, _("Error writing"), ERROR_WRITING); return FALSE; } @@ -149,7 +149,7 @@ *error = NULL; if (!context->handle) { - rsvg_propegate_error (error, _("Error displaying image"), ERROR_DISPLAYING_IMAGE); + rsvg_propagate_error (error, _("Error displaying image"), ERROR_DISPLAYING_IMAGE); return FALSE; } @@ -163,7 +163,7 @@ g_object_unref (pixbuf); } else { - rsvg_propegate_error (error, _("Error displaying image"), ERROR_DISPLAYING_IMAGE); + rsvg_propagate_error (error, _("Error displaying image"), ERROR_DISPLAYING_IMAGE); result = FALSE; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/librsvg-features.h new/librsvg-2.40.15/librsvg-features.h --- old/librsvg-2.40.13/librsvg-features.h 2015-12-02 21:27:36.000000000 +0100 +++ new/librsvg-2.40.15/librsvg-features.h 2016-04-02 02:50:29.000000000 +0200 @@ -7,8 +7,8 @@ #define LIBRSVG_MAJOR_VERSION (2) #define LIBRSVG_MINOR_VERSION (40) -#define LIBRSVG_MICRO_VERSION (13) -#define LIBRSVG_VERSION "2.40.13" +#define LIBRSVG_MICRO_VERSION (15) +#define LIBRSVG_VERSION "2.40.15" #define LIBRSVG_CHECK_VERSION(major,minor,micro) \ (LIBRSVG_MAJOR_VERSION > (major) || \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/m4/introspection.m4 new/librsvg-2.40.15/m4/introspection.m4 --- old/librsvg-2.40.13/m4/introspection.m4 1970-01-01 01:00:00.000000000 +0100 +++ new/librsvg-2.40.15/m4/introspection.m4 2016-02-11 02:06:02.000000000 +0100 @@ -0,0 +1,96 @@ +dnl -*- mode: autoconf -*- +dnl Copyright 2009 Johan Dahlin +dnl +dnl This file is free software; the author(s) gives unlimited +dnl permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl + +# serial 1 + +m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([LT_INIT],[$0])dnl setup libtool first + + dnl enable/disable introspection + m4_if([$2], [require], + [dnl + enable_introspection=yes + ],[dnl + AC_ARG_ENABLE(introspection, + AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], + [Enable introspection for this build]),, + [enable_introspection=auto]) + ])dnl + + AC_MSG_CHECKING([for gobject-introspection]) + + dnl presence/version checking + AS_CASE([$enable_introspection], + [no], [dnl + found_introspection="no (disabled, use --enable-introspection to enable)" + ],dnl + [yes],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0],, + AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], + found_introspection=yes, + AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) + ],dnl + [auto],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) + dnl Canonicalize enable_introspection + enable_introspection=$found_introspection + ],dnl + [dnl + AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) + ])dnl + + AC_MSG_RESULT([$found_introspection]) + + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= + INTROSPECTION_GENERATE= + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + fi + AC_SUBST(INTROSPECTION_SCANNER) + AC_SUBST(INTROSPECTION_COMPILER) + AC_SUBST(INTROSPECTION_GENERATE) + AC_SUBST(INTROSPECTION_GIRDIR) + AC_SUBST(INTROSPECTION_TYPELIBDIR) + AC_SUBST(INTROSPECTION_CFLAGS) + AC_SUBST(INTROSPECTION_LIBS) + AC_SUBST(INTROSPECTION_MAKEFILE) + + AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") +]) + + +dnl Usage: +dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) + +AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) +]) + +dnl Usage: +dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) + + +AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) +]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/m4/pkg.m4 new/librsvg-2.40.15/m4/pkg.m4 --- old/librsvg-2.40.13/m4/pkg.m4 1970-01-01 01:00:00.000000000 +0100 +++ new/librsvg-2.40.15/m4/pkg.m4 2016-02-11 02:06:02.000000000 +0100 @@ -0,0 +1,214 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant <[email protected]>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES + + +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_INSTALLDIR + + +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_NOARCH_INSTALLDIR + + +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])# PKG_CHECK_VAR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/rsvg-cairo-draw.c new/librsvg-2.40.15/rsvg-cairo-draw.c --- old/librsvg-2.40.13/rsvg-cairo-draw.c 2016-01-07 23:12:03.000000000 +0100 +++ new/librsvg-2.40.15/rsvg-cairo-draw.c 2016-01-30 00:59:21.000000000 +0100 @@ -819,10 +819,10 @@ cairo_surface_t *output; filter = rsvg_acquire_node (ctx, state->filter); - if (filter && RSVG_NODE_TYPE (filter) == RSVG_NODE_TYPE_FILTER) { - output = render->surfaces_stack->data; - render->surfaces_stack = g_list_delete_link (render->surfaces_stack, render->surfaces_stack); + output = render->surfaces_stack->data; + render->surfaces_stack = g_list_delete_link (render->surfaces_stack, render->surfaces_stack); + if (filter && RSVG_NODE_TYPE (filter) == RSVG_NODE_TYPE_FILTER) { needs_destroy = TRUE; surface = rsvg_filter_render ((RsvgFilter *) filter, output, ctx, &render->bbox, "2103"); /* Don't destroy the output surface, it's owned by child_cr */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/rsvg-filter.c new/librsvg-2.40.15/rsvg-filter.c --- old/librsvg-2.40.13/rsvg-filter.c 2015-10-22 16:45:11.000000000 +0200 +++ new/librsvg-2.40.15/rsvg-filter.c 2016-03-31 03:47:45.000000000 +0200 @@ -45,10 +45,6 @@ struct _RsvgFilterPrimitiveOutput { cairo_surface_t *surface; RsvgIRect bounds; - gboolean Rused; - gboolean Gused; - gboolean Bused; - gboolean Aused; }; typedef struct _RsvgFilterContext RsvgFilterContext; @@ -68,6 +64,34 @@ typedef struct _RsvgFilterPrimitive RsvgFilterPrimitive; +/* We don't have real subclassing here. If you derive something from + * RsvgFilterPrimitive, and don't need any special code to free your + * RsvgFilterPrimitiveFoo structure, you can just set + * + * foo_filter->super.super.free = rsvg_filter_primitive_free; + * + * for the destructor. Otherwise, create a custom destructor like this: + * + * foo_filter->super.super.free = &rsvg_filter_primitive_foo_free; + * + * ... + * + * static void + * rsvg_filter_primitive_foo_free (RsvgNode *self) + * { + * RsvgFilterPrimitiveFoo *foo; + * + * foo = (RsvgFilterPrimitiveFoo *) self; + * g_free (foo->my_custom_stuff); + * g_free (foo->more_custom_stuff); + * ... etc ... + * + * rsvg_filter_primitive_free (self); + * } + * + * That last call to rsvg_filter_primitive_free() will free the base RsvgFilterPrimitive's own fields, + * and your whole structure itself, via _rsvg_node_free(). + */ struct _RsvgFilterPrimitive { RsvgNode super; RsvgLength x, y, width, height; @@ -81,6 +105,18 @@ /*************************************************************/ static void +rsvg_filter_primitive_free (RsvgNode *self) +{ + RsvgFilterPrimitive *primitive; + + primitive = (RsvgFilterPrimitive *) self; + g_string_free (primitive->in, TRUE); + g_string_free (primitive->result, TRUE); + + _rsvg_node_free (self); +} + +static void rsvg_filter_primitive_render (RsvgFilterPrimitive * self, RsvgFilterContext * ctx) { self->render (self, ctx); @@ -502,10 +538,6 @@ rsvg_filter_fix_coordinate_system (ctx, rsvg_current_state (context), bounds); ctx->lastresult.surface = cairo_surface_reference (source); - ctx->lastresult.Rused = 1; - ctx->lastresult.Gused = 1; - ctx->lastresult.Bused = 1; - ctx->lastresult.Aused = 1; ctx->lastresult.bounds = rsvg_filter_primitive_get_bounds (NULL, ctx); for (i = 0; i < 4; i++) @@ -560,10 +592,6 @@ RsvgFilterContext * ctx) { RsvgFilterPrimitiveOutput output; - output.Rused = 1; - output.Gused = 1; - output.Bused = 1; - output.Aused = 1; output.bounds.x0 = 0; output.bounds.y0 = 0; output.bounds.x1 = ctx->width; @@ -668,26 +696,20 @@ if (!strcmp (name->str, "SourceGraphic")) { output.surface = cairo_surface_reference (ctx->source_surface); - output.Rused = output.Gused = output.Bused = output.Aused = 1; return output; } else if (!strcmp (name->str, "BackgroundImage")) { output.surface = rsvg_filter_get_bg (ctx); if (output.surface) cairo_surface_reference (output.surface); - output.Rused = output.Gused = output.Bused = output.Aused = 1; return output; } else if (!strcmp (name->str, "") || !strcmp (name->str, "none")) { output = ctx->lastresult; cairo_surface_reference (output.surface); return output; } else if (!strcmp (name->str, "SourceAlpha")) { - output.Rused = output.Gused = output.Bused = 0; - output.Aused = 1; output.surface = surface_get_alpha (ctx->source_surface, ctx); return output; } else if (!strcmp (name->str, "BackgroundAlpha")) { - output.Rused = output.Gused = output.Bused = 0; - output.Aused = 1; output.surface = surface_get_alpha (rsvg_filter_get_bg (ctx), ctx); return output; } @@ -954,12 +976,11 @@ static void rsvg_filter_primitive_blend_free (RsvgNode * self) { - RsvgFilterPrimitiveBlend *upself; - upself = (RsvgFilterPrimitiveBlend *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - g_string_free (upself->in2, TRUE); - _rsvg_node_free (self); + RsvgFilterPrimitiveBlend *blend; + blend = (RsvgFilterPrimitiveBlend *) self; + g_string_free (blend->in2, TRUE); + + rsvg_filter_primitive_free (self); } static void @@ -1014,8 +1035,8 @@ filter->super.result = g_string_new ("none"); filter->super.x.factor = filter->super.y.factor = filter->super.width.factor = filter->super.height.factor = 'n'; - filter->super.render = &rsvg_filter_primitive_blend_render; - filter->super.super.free = &rsvg_filter_primitive_blend_free; + filter->super.render = rsvg_filter_primitive_blend_render; + filter->super.super.free = rsvg_filter_primitive_blend_free; filter->super.super.set_atts = rsvg_filter_primitive_blend_set_atts; return (RsvgNode *) filter; } @@ -1167,13 +1188,12 @@ static void rsvg_filter_primitive_convolve_matrix_free (RsvgNode * self) { - RsvgFilterPrimitiveConvolveMatrix *upself; + RsvgFilterPrimitiveConvolveMatrix *convolve; - upself = (RsvgFilterPrimitiveConvolveMatrix *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - g_free (upself->KernelMatrix); - _rsvg_node_free (self); + convolve = (RsvgFilterPrimitiveConvolveMatrix *) self; + g_free (convolve->KernelMatrix); + + rsvg_filter_primitive_free (self); } static void @@ -1282,8 +1302,8 @@ filter->dy = 0; filter->preservealpha = FALSE; filter->edgemode = 0; - filter->super.render = &rsvg_filter_primitive_convolve_matrix_render; - filter->super.super.free = &rsvg_filter_primitive_convolve_matrix_free; + filter->super.render = rsvg_filter_primitive_convolve_matrix_render; + filter->super.super.free = rsvg_filter_primitive_convolve_matrix_free; filter->super.super.set_atts = rsvg_filter_primitive_convolve_matrix_set_atts; return (RsvgNode *) filter; } @@ -1894,17 +1914,6 @@ } static void -rsvg_filter_primitive_gaussian_blur_free (RsvgNode * self) -{ - RsvgFilterPrimitiveGaussianBlur *upself; - - upself = (RsvgFilterPrimitiveGaussianBlur *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - _rsvg_node_free (self); -} - -static void rsvg_filter_primitive_gaussian_blur_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPropertyBag * atts) { @@ -1945,8 +1954,8 @@ filter->super.height.factor = 'n'; filter->sdx = 0; filter->sdy = 0; - filter->super.render = &rsvg_filter_primitive_gaussian_blur_render; - filter->super.super.free = &rsvg_filter_primitive_gaussian_blur_free; + filter->super.render = rsvg_filter_primitive_gaussian_blur_render; + filter->super.super.free = rsvg_filter_primitive_free; filter->super.super.set_atts = rsvg_filter_primitive_gaussian_blur_set_atts; return (RsvgNode *) filter; } @@ -2026,10 +2035,6 @@ cairo_surface_mark_dirty (output); out.surface = output; - out.Rused = 1; - out.Gused = 1; - out.Bused = 1; - out.Aused = 1; out.bounds = boundarys; rsvg_filter_store_output (self->result, out, ctx); @@ -2039,17 +2044,6 @@ } static void -rsvg_filter_primitive_offset_free (RsvgNode * self) -{ - RsvgFilterPrimitiveOffset *upself; - - upself = (RsvgFilterPrimitiveOffset *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - _rsvg_node_free (self); -} - -static void rsvg_filter_primitive_offset_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPropertyBag * atts) { const char *value; @@ -2091,8 +2085,8 @@ filter->super.height.factor = 'n'; filter->dy = _rsvg_css_parse_length ("0"); filter->dx = _rsvg_css_parse_length ("0"); - filter->super.render = &rsvg_filter_primitive_offset_render; - filter->super.super.free = &rsvg_filter_primitive_offset_free; + filter->super.render = rsvg_filter_primitive_offset_render; + filter->super.super.free = rsvg_filter_primitive_free; filter->super.super.set_atts = rsvg_filter_primitive_offset_set_atts; return (RsvgNode *) filter; } @@ -2146,10 +2140,10 @@ static void rsvg_filter_primitive_merge_free (RsvgNode * self) { - RsvgFilterPrimitiveMerge *upself; + RsvgFilterPrimitiveMerge *merge; - upself = (RsvgFilterPrimitiveMerge *) self; - g_string_free (upself->super.result, TRUE); + merge = (RsvgFilterPrimitiveMerge *) self; + g_string_free (merge->super.result, TRUE); _rsvg_node_free (self); } @@ -2187,8 +2181,8 @@ filter->super.result = g_string_new ("none"); filter->super.x.factor = filter->super.y.factor = filter->super.width.factor = filter->super.height.factor = 'n'; - filter->super.render = &rsvg_filter_primitive_merge_render; - filter->super.super.free = &rsvg_filter_primitive_merge_free; + filter->super.render = rsvg_filter_primitive_merge_render; + filter->super.super.free = rsvg_filter_primitive_merge_free; filter->super.super.set_atts = rsvg_filter_primitive_merge_set_atts; return (RsvgNode *) filter; @@ -2209,9 +2203,11 @@ static void rsvg_filter_primitive_merge_node_free (RsvgNode * self) { - RsvgFilterPrimitive *upself; - upself = (RsvgFilterPrimitive *) self; - g_string_free (upself->in, TRUE); + RsvgFilterPrimitive *merge_node; + + merge_node = (RsvgFilterPrimitive *) self; + g_string_free (merge_node->in, TRUE); + _rsvg_node_free (self); } @@ -2229,7 +2225,7 @@ _rsvg_node_init (&filter->super, RSVG_NODE_TYPE_FILTER_PRIMITIVE_MERGE_NODE); filter->in = g_string_new ("none"); filter->super.free = rsvg_filter_primitive_merge_node_free; - filter->render = &rsvg_filter_primitive_merge_node_render; + filter->render = rsvg_filter_primitive_merge_node_render; filter->super.set_atts = rsvg_filter_primitive_merge_node_set_atts; return (RsvgNode *) filter; } @@ -2343,14 +2339,12 @@ static void rsvg_filter_primitive_colour_matrix_free (RsvgNode * self) { - RsvgFilterPrimitiveColourMatrix *upself; + RsvgFilterPrimitiveColourMatrix *matrix; - upself = (RsvgFilterPrimitiveColourMatrix *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - if (upself->KernelMatrix) - g_free (upself->KernelMatrix); - _rsvg_node_free (self); + matrix = (RsvgFilterPrimitiveColourMatrix *) self; + g_free (matrix->KernelMatrix); + + rsvg_filter_primitive_free (self); } static void @@ -2477,8 +2471,8 @@ filter->super.x.factor = filter->super.y.factor = filter->super.width.factor = filter->super.height.factor = 'n'; filter->KernelMatrix = NULL; - filter->super.render = &rsvg_filter_primitive_colour_matrix_render; - filter->super.super.free = &rsvg_filter_primitive_colour_matrix_free; + filter->super.render = rsvg_filter_primitive_colour_matrix_render; + filter->super.super.free = rsvg_filter_primitive_colour_matrix_free; filter->super.super.set_atts = rsvg_filter_primitive_colour_matrix_set_atts; return (RsvgNode *) filter; @@ -2711,10 +2705,9 @@ filter->super.in = g_string_new ("none"); filter->super.x.factor = filter->super.y.factor = filter->super.width.factor = filter->super.height.factor = 'n'; - filter->super.render = &rsvg_filter_primitive_component_transfer_render; - + filter->super.render = rsvg_filter_primitive_component_transfer_render; + filter->super.super.free = rsvg_filter_primitive_free; filter->super.super.set_atts = rsvg_filter_primitive_component_transfer_set_atts; - return (RsvgNode *) filter; } @@ -2884,17 +2877,6 @@ } static void -rsvg_filter_primitive_erode_free (RsvgNode * self) -{ - RsvgFilterPrimitiveErode *upself; - - upself = (RsvgFilterPrimitiveErode *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - _rsvg_node_free (self); -} - -static void rsvg_filter_primitive_erode_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPropertyBag * atts) { const char *value; @@ -2942,8 +2924,8 @@ filter->rx = 0; filter->ry = 0; filter->mode = 0; - filter->super.render = &rsvg_filter_primitive_erode_render; - filter->super.super.free = &rsvg_filter_primitive_erode_free; + filter->super.render = rsvg_filter_primitive_erode_render; + filter->super.super.free = rsvg_filter_primitive_free; filter->super.super.set_atts = rsvg_filter_primitive_erode_set_atts; return (RsvgNode *) filter; } @@ -3113,13 +3095,12 @@ static void rsvg_filter_primitive_composite_free (RsvgNode * self) { - RsvgFilterPrimitiveComposite *upself; + RsvgFilterPrimitiveComposite *composite; - upself = (RsvgFilterPrimitiveComposite *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - g_string_free (upself->in2, TRUE); - _rsvg_node_free (self); + composite = (RsvgFilterPrimitiveComposite *) self; + g_string_free (composite->in2, TRUE); + + rsvg_filter_primitive_free (self); } static void @@ -3188,8 +3169,8 @@ filter->k2 = 0; filter->k3 = 0; filter->k4 = 0; - filter->super.render = &rsvg_filter_primitive_composite_render; - filter->super.super.free = &rsvg_filter_primitive_composite_free; + filter->super.render = rsvg_filter_primitive_composite_render; + filter->super.super.free = rsvg_filter_primitive_composite_free; filter->super.super.set_atts = rsvg_filter_primitive_composite_set_atts; return (RsvgNode *) filter; } @@ -3237,10 +3218,6 @@ cairo_surface_mark_dirty (output); out.surface = output; - out.Rused = 1; - out.Gused = 1; - out.Bused = 1; - out.Aused = 1; out.bounds = boundarys; rsvg_filter_store_output (self->result, out, ctx); @@ -3249,17 +3226,6 @@ } static void -rsvg_filter_primitive_flood_free (RsvgNode * self) -{ - RsvgFilterPrimitive *upself; - - upself = (RsvgFilterPrimitive *) self; - g_string_free (upself->result, TRUE); - g_string_free (upself->in, TRUE); - _rsvg_node_free (self); -} - -static void rsvg_filter_primitive_flood_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPropertyBag * atts) { const char *value, *id = NULL; @@ -3291,8 +3257,8 @@ filter->in = g_string_new ("none"); filter->result = g_string_new ("none"); filter->x.factor = filter->y.factor = filter->width.factor = filter->height.factor = 'n'; - filter->render = &rsvg_filter_primitive_flood_render; - filter->super.free = &rsvg_filter_primitive_flood_free; + filter->render = rsvg_filter_primitive_flood_render; + filter->super.free = rsvg_filter_primitive_free; filter->super.set_atts = rsvg_filter_primitive_flood_set_atts; return (RsvgNode *) filter; } @@ -3432,13 +3398,12 @@ static void rsvg_filter_primitive_displacement_map_free (RsvgNode * self) { - RsvgFilterPrimitiveDisplacementMap *upself; + RsvgFilterPrimitiveDisplacementMap *dmap; - upself = (RsvgFilterPrimitiveDisplacementMap *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - g_string_free (upself->in2, TRUE); - _rsvg_node_free (self); + dmap = (RsvgFilterPrimitiveDisplacementMap *) self; + g_string_free (dmap->in2, TRUE); + + rsvg_filter_primitive_free (self); } static void @@ -3490,8 +3455,8 @@ filter->xChannelSelector = ' '; filter->yChannelSelector = ' '; filter->scale = 0; - filter->super.render = &rsvg_filter_primitive_displacement_map_render; - filter->super.super.free = &rsvg_filter_primitive_displacement_map_free; + filter->super.render = rsvg_filter_primitive_displacement_map_render; + filter->super.super.free = rsvg_filter_primitive_displacement_map_free; filter->super.super.set_atts = rsvg_filter_primitive_displacement_map_set_atts; return (RsvgNode *) filter; } @@ -3813,17 +3778,6 @@ } static void -rsvg_filter_primitive_turbulence_free (RsvgNode * self) -{ - RsvgFilterPrimitiveTurbulence *upself; - - upself = (RsvgFilterPrimitiveTurbulence *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - _rsvg_node_free (self); -} - -static void rsvg_filter_primitive_turbulence_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPropertyBag * atts) { @@ -3877,8 +3831,8 @@ filter->bDoStitching = 0; filter->bFractalSum = 0; feTurbulence_init (filter); - filter->super.render = &rsvg_filter_primitive_turbulence_render; - filter->super.super.free = &rsvg_filter_primitive_turbulence_free; + filter->super.render = rsvg_filter_primitive_turbulence_render; + filter->super.super.free = rsvg_filter_primitive_free; filter->super.super.set_atts = rsvg_filter_primitive_turbulence_set_atts; return (RsvgNode *) filter; } @@ -4039,10 +3993,6 @@ op.surface = output; op.bounds = boundarys; - op.Rused = 1; - op.Gused = 1; - op.Bused = 1; - op.Aused = 1; rsvg_filter_store_output (self->result, op, ctx); @@ -4052,16 +4002,14 @@ static void rsvg_filter_primitive_image_free (RsvgNode * self) { - RsvgFilterPrimitiveImage *upself; + RsvgFilterPrimitiveImage *image; - upself = (RsvgFilterPrimitiveImage *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); + image = (RsvgFilterPrimitiveImage *) self; - if (upself->href) - g_string_free (upself->href, TRUE); + if (image->href) + g_string_free (image->href, TRUE); - _rsvg_node_free (self); + rsvg_filter_primitive_free (self); } static void @@ -4105,8 +4053,8 @@ filter->super.result = g_string_new ("none"); filter->super.x.factor = filter->super.y.factor = filter->super.width.factor = filter->super.height.factor = 'n'; - filter->super.render = &rsvg_filter_primitive_image_render; - filter->super.super.free = &rsvg_filter_primitive_image_free; + filter->super.render = rsvg_filter_primitive_image_render; + filter->super.super.free = rsvg_filter_primitive_image_free; filter->super.super.set_atts = rsvg_filter_primitive_image_set_atts; filter->href = NULL; return (RsvgNode *) filter; @@ -4634,17 +4582,6 @@ } static void -rsvg_filter_primitive_diffuse_lighting_free (RsvgNode * self) -{ - RsvgFilterPrimitiveDiffuseLighting *upself; - - upself = (RsvgFilterPrimitiveDiffuseLighting *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - _rsvg_node_free (self); -} - -static void rsvg_filter_primitive_diffuse_lighting_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPropertyBag * atts) { @@ -4695,8 +4632,8 @@ filter->dx = 1; filter->dy = 1; filter->lightingcolour = 0xFFFFFFFF; - filter->super.render = &rsvg_filter_primitive_diffuse_lighting_render; - filter->super.super.free = &rsvg_filter_primitive_diffuse_lighting_free; + filter->super.render = rsvg_filter_primitive_diffuse_lighting_render; + filter->super.super.free = rsvg_filter_primitive_free; filter->super.super.set_atts = rsvg_filter_primitive_diffuse_lighting_set_atts; return (RsvgNode *) filter; } @@ -4825,17 +4762,6 @@ } static void -rsvg_filter_primitive_specular_lighting_free (RsvgNode * self) -{ - RsvgFilterPrimitiveSpecularLighting *upself; - - upself = (RsvgFilterPrimitiveSpecularLighting *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - _rsvg_node_free (self); -} - -static void rsvg_filter_primitive_specular_lighting_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPropertyBag * atts) { @@ -4885,8 +4811,8 @@ filter->specularConstant = 1; filter->specularExponent = 1; filter->lightingcolour = 0xFFFFFFFF; - filter->super.render = &rsvg_filter_primitive_specular_lighting_render; - filter->super.super.free = &rsvg_filter_primitive_specular_lighting_free; + filter->super.render = rsvg_filter_primitive_specular_lighting_render; + filter->super.super.free = rsvg_filter_primitive_free; filter->super.super.set_atts = rsvg_filter_primitive_specular_lighting_set_atts; return (RsvgNode *) filter; } @@ -4962,17 +4888,6 @@ } static void -rsvg_filter_primitive_tile_free (RsvgNode * self) -{ - RsvgFilterPrimitiveTile *upself; - - upself = (RsvgFilterPrimitiveTile *) self; - g_string_free (upself->super.result, TRUE); - g_string_free (upself->super.in, TRUE); - _rsvg_node_free (self); -} - -static void rsvg_filter_primitive_tile_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPropertyBag * atts) { const char *value; @@ -5008,8 +4923,8 @@ filter->super.result = g_string_new ("none"); filter->super.x.factor = filter->super.y.factor = filter->super.width.factor = filter->super.height.factor = 'n'; - filter->super.render = &rsvg_filter_primitive_tile_render; - filter->super.super.free = &rsvg_filter_primitive_tile_free; + filter->super.render = rsvg_filter_primitive_tile_render; + filter->super.super.free = rsvg_filter_primitive_free; filter->super.super.set_atts = rsvg_filter_primitive_tile_set_atts; return (RsvgNode *) filter; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/librsvg-2.40.13/tests/fixtures/crash/bug759084.svg new/librsvg-2.40.15/tests/fixtures/crash/bug759084.svg --- old/librsvg-2.40.13/tests/fixtures/crash/bug759084.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/librsvg-2.40.15/tests/fixtures/crash/bug759084.svg 2016-01-30 00:59:21.000000000 +0100 @@ -0,0 +1,9 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10"> + <defs> + <filter id="filter"> + </filter> + </defs> + <g filter="url(#filter)"> + <rect fill="red" width="10" height="10" filter="url(#doesnotexist)" /> + </g> +</svg>
