changeset 10947:dc74ce93cfc4

initialize GraphicsMagick in all __magick_* functions
author Jaroslav Hajek <highegg@gmail.com>
date Tue, 07 Sep 2010 12:38:35 +0200
parents 1094868ca10d
children 6b50fd2d4ca6
files src/ChangeLog src/DLD-FUNCTIONS/__magick_read__.cc
diffstat 2 files changed, 31 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2010-09-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (maybe_initialize_magick): New
+	helper function. Move initialization code & static variable here.
+	(F__magick_read__, F__magick_write__, F__magick_finfo__): Call it
+	here.
+
 2010-09-03  Jaroslav Hajek  <highegg@gmail.com>
 
 	* DLD-FUNCTIONS/cquad.cc: New source, courtesy by Pedro Gonnet.
--- a/src/DLD-FUNCTIONS/__magick_read__.cc
+++ b/src/DLD-FUNCTIONS/__magick_read__.cc
@@ -371,18 +371,9 @@
 
 #endif
 
-DEFUN_DLD (__magick_read__, args, nargout,
-  "-*- texinfo -*-\n\
-@deftypefn  {Function File} {@var{m} =} __magick_read__(@var{fname}, @var{index})\n\
-@deftypefnx {Function File} {[@var{m}, @var{colormap}] =} __magick_read__(@var{fname}, @var{index})\n\
-@deftypefnx {Function File} {[@var{m}, @var{colormap}, @var{alpha}] =} __magick_read__(@var{fname}, @var{index})\n\
-Read images with ImageMagick++.  In general you should not be using this\n\
-function.  Instead you should use @code{imread}.\n\
-@seealso{imread}\n\
-@end deftypefn")
+static void
+maybe_initialize_magick (void)
 {
-  octave_value_list output;
-
 #ifdef HAVE_MAGICK
 
   static bool initialized = false;
@@ -402,6 +393,24 @@
 
       initialized = true;
     }
+#endif
+}
+
+DEFUN_DLD (__magick_read__, args, nargout,
+  "-*- texinfo -*-\n\
+@deftypefn  {Function File} {@var{m} =} __magick_read__(@var{fname}, @var{index})\n\
+@deftypefnx {Function File} {[@var{m}, @var{colormap}] =} __magick_read__(@var{fname}, @var{index})\n\
+@deftypefnx {Function File} {[@var{m}, @var{colormap}, @var{alpha}] =} __magick_read__(@var{fname}, @var{index})\n\
+Read images with ImageMagick++.  In general you should not be using this\n\
+function.  Instead you should use @code{imread}.\n\
+@seealso{imread}\n\
+@end deftypefn")
+{
+  octave_value_list output;
+
+#ifdef HAVE_MAGICK
+
+  maybe_initialize_magick ();
 
   if (args.length () > 3 || args.length () < 1 || ! args(0).is_string ()
       || nargout > 3)
@@ -832,6 +841,8 @@
   octave_value_list retval;
 
 #ifdef HAVE_MAGICK
+  maybe_initialize_magick ();
+
   int nargin = args.length ();
 
   if (nargin > 2)
@@ -961,6 +972,8 @@
 
 #ifdef HAVE_MAGICK
 
+  maybe_initialize_magick ();
+
   if (args.length () < 1 || ! args (0).is_string ())
     {
       print_usage ();