summaryrefslogtreecommitdiff
path: root/media-gfx/synfig/files/02-fix-magickcore-s-exceptioninfo-0.patch
diff options
context:
space:
mode:
authoreroen2018-04-06 19:09:20 +0200
committerErik Moen2019-08-28 19:26:46 +0200
commite92044fafd4838d845cbc08093d9831adadd4174 (patch)
treed0a86601d084da594f1cb8b88a9a5fbd10ae0394 /media-gfx/synfig/files/02-fix-magickcore-s-exceptioninfo-0.patch
parent9a5aaaae3b2f88d0f32790adeecb5c18b072fd0d (diff)
downloaderoen-overlay-e92044fafd4838d845cbc08093d9831adadd4174.tar.gz
eroen-overlay-e92044fafd4838d845cbc08093d9831adadd4174.tar.bz2
eroen-overlay-e92044fafd4838d845cbc08093d9831adadd4174.tar.xz
synfig-1.2.1 - WIP new ebuild
Signed-off-by: Erik Moen <eroen-overlay@occam.eroen.eu>
Diffstat (limited to 'media-gfx/synfig/files/02-fix-magickcore-s-exceptioninfo-0.patch')
-rw-r--r--media-gfx/synfig/files/02-fix-magickcore-s-exceptioninfo-0.patch117
1 files changed, 117 insertions, 0 deletions
diff --git a/media-gfx/synfig/files/02-fix-magickcore-s-exceptioninfo-0.patch b/media-gfx/synfig/files/02-fix-magickcore-s-exceptioninfo-0.patch
new file mode 100644
index 00000000..cc433c4e
--- /dev/null
+++ b/media-gfx/synfig/files/02-fix-magickcore-s-exceptioninfo-0.patch
@@ -0,0 +1,117 @@
+Fix MagickCore's exceptionInfo implementation
+
+From: Matthew White <mehw.is.me@inventati.org>
+
+Since MagickCore version 7 deprecated methods have been removed.
+
+* synfig-core/src/modules/mod_magickpp/trgt_magickpp.cpp
+ (copy_image_list, ~magickpp_trgt): Rather than calling MagickCore's
+ GetExceptionInfo() deprecated method (removed in MagickCore version
+ 7), call AcquireExceptionInfo() and DestroyExceptionInfo() to init
+ and then clean exceptionInfo. Implement exceptionInfo as a pointer.
+---
+ .../src/modules/mod_magickpp/trgt_magickpp.cpp | 32 ++++++--------------
+ 1 file changed, 9 insertions(+), 23 deletions(-)
+
+diff --git a/synfig-core/src/modules/mod_magickpp/trgt_magickpp.cpp b/synfig-core/src/modules/mod_magickpp/trgt_magickpp.cpp
+index 312c5f3ed..8b4c00b57 100644
+--- a/synfig-core/src/modules/mod_magickpp/trgt_magickpp.cpp
++++ b/synfig-core/src/modules/mod_magickpp/trgt_magickpp.cpp
+@@ -54,35 +54,20 @@ SYNFIG_TARGET_SET_CVS_ID(magickpp_trgt,"$Id$");
+
+ /* === M E T H O D S ======================================================= */
+
+-/*
+- * WORKAROUND
+- *
+- * Mimics the hidden MagickCore's InitializeExceptionInfo() method.
+- */
+-namespace MagickCore {
+-static void InitializeExceptionInfo(ExceptionInfo *exception)
+-{
+- MagickCore::ExceptionInfo* exceptionInfo = AcquireExceptionInfo();
+- *exception = *exceptionInfo; // copy assignment, ExceptionInfo is a struct
+- MagickCore::DestroyExceptionInfo(exceptionInfo);
+-}
+-}
+-
+ template <class Container>
+ MagickCore::Image* copy_image_list(Container& container)
+ {
+ typedef typename Container::iterator Iter;
+ MagickCore::Image* previous = 0;
+ MagickCore::Image* first = NULL;
+- MagickCore::ExceptionInfo exceptionInfo;
+- MagickCore::InitializeExceptionInfo(&exceptionInfo);
++ MagickCore::ExceptionInfo* exceptionInfo = MagickCore::AcquireExceptionInfo();
+ for (Iter iter = container.begin(); iter != container.end(); ++iter)
+ {
+ MagickCore::Image* current;
+
+ try
+ {
+- current = CloneImage(iter->image(), 0, 0, Magick::MagickTrue, &exceptionInfo);
++ current = CloneImage(iter->image(), 0, 0, Magick::MagickTrue, exceptionInfo);
+
+ if (!first) first = current;
+
+@@ -97,13 +82,13 @@ MagickCore::Image* copy_image_list(Container& container)
+ }
+ }
+
++ exceptionInfo = MagickCore::DestroyExceptionInfo(exceptionInfo);
+ return first;
+ }
+
+ magickpp_trgt::~magickpp_trgt()
+ {
+- MagickCore::ExceptionInfo exceptionInfo;
+- MagickCore::InitializeExceptionInfo(&exceptionInfo);
++ MagickCore::ExceptionInfo* exceptionInfo = MagickCore::AcquireExceptionInfo();
+
+ try
+ {
+@@ -117,7 +102,7 @@ magickpp_trgt::~magickpp_trgt()
+ image.fileName(filename);
+ try
+ {
+- SetImageInfo(image.imageInfo(),Magick::MagickTrue,&exceptionInfo);
++ SetImageInfo(image.imageInfo(),Magick::MagickTrue,exceptionInfo);
+ can_adjoin = image.adjoin();
+ }
+ catch(Magick::Warning warning) {
+@@ -151,7 +136,7 @@ magickpp_trgt::~magickpp_trgt()
+ synfig::info("removing duplicate frames");
+ try
+ {
+- RemoveDuplicateLayers(&image_list, &exceptionInfo);
++ RemoveDuplicateLayers(&image_list, exceptionInfo);
+ }
+ catch(Magick::Warning warning) {
+ synfig::warning("exception '%s'", warning.what());
+@@ -163,7 +148,7 @@ magickpp_trgt::~magickpp_trgt()
+ synfig::info("optimizing layers");
+ try
+ {
+- image_list = OptimizeImageLayers(image_list,&exceptionInfo);
++ image_list = OptimizeImageLayers(image_list,exceptionInfo);
+ }
+ catch(Magick::Warning warning) {
+ synfig::warning("exception '%s'", warning.what());
+@@ -175,7 +160,7 @@ magickpp_trgt::~magickpp_trgt()
+ synfig::info("optimizing layer transparency");
+ try
+ {
+- OptimizeImageTransparency(image_list,&exceptionInfo);
++ OptimizeImageTransparency(image_list,exceptionInfo);
+ }
+ catch(Magick::Warning warning) {
+ synfig::warning("exception '%s'", warning.what());
+@@ -217,6 +202,7 @@ magickpp_trgt::~magickpp_trgt()
+ if (buffer1 != NULL) delete [] buffer1;
+ if (buffer2 != NULL) delete [] buffer2;
+ if (color_buffer != NULL) delete [] color_buffer;
++ exceptionInfo = MagickCore::DestroyExceptionInfo(exceptionInfo);
+ }
+
+ bool