changeset 18566:548643c76a88 stable

Use OCTAVE_QUIT between each image frame to allow Control-C during Image IO.
author Carnë Draug <carandraug@octave.org>
date Mon, 10 Mar 2014 17:21:20 +0000
parents 5c868bed3f43
children bfb735b70978
files libinterp/dldfcn/__magick_read__.cc
diffstat 1 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/dldfcn/__magick_read__.cc	Thu Mar 06 14:40:48 2014 -0500
+++ b/libinterp/dldfcn/__magick_read__.cc	Mon Mar 10 17:21:20 2014 +0000
@@ -224,6 +224,7 @@
   octave_idx_type idx = 0;
   for (octave_idx_type frame = 0; frame < nFrames; frame++)
     {
+      OCTAVE_QUIT;
       imvec[frameidx(frame)].getConstPixels (col_start, row_start,
                                              col_cache, row_cache);
 
@@ -428,6 +429,7 @@
         octave_idx_type idx = 0;
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             const Magick::PixelPacket *pix
               = imvec[frameidx(frame)].getConstPixels (col_start, row_start,
                                                        col_cache, row_cache);
@@ -455,6 +457,7 @@
         octave_idx_type idx = 0;
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             const Magick::PixelPacket *pix
               = imvec[frameidx(frame)].getConstPixels (col_start, row_start,
                                                        col_cache, row_cache);
@@ -484,6 +487,7 @@
         const octave_idx_type frame_stride  = colour_stride * 3;
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             const Magick::PixelPacket *pix
               = imvec[frameidx(frame)].getConstPixels (col_start, row_start,
                                                        col_cache, row_cache);
@@ -525,6 +529,7 @@
         octave_idx_type a_idx = 0;
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             const Magick::PixelPacket *pix
               = imvec[frameidx(frame)].getConstPixels (col_start, row_start,
                                                        col_cache, row_cache);
@@ -561,6 +566,7 @@
         const octave_idx_type frame_stride  = colour_stride * 4;
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             const Magick::PixelPacket *pix
               = imvec[frameidx(frame)].getConstPixels (col_start, row_start,
                                                        col_cache, row_cache);
@@ -604,6 +610,7 @@
         octave_idx_type a_idx = 0;
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             const Magick::PixelPacket *pix
               = imvec[frameidx(frame)].getConstPixels (col_start, row_start,
                                                        col_cache, row_cache);
@@ -922,6 +929,7 @@
 
   for (octave_idx_type frame = 0; frame < nFrames; frame++)
     {
+      OCTAVE_QUIT;
       Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth,
                                                 Magick::PaletteType,
                                                 Magick::PseudoClass);
@@ -977,6 +985,7 @@
   octave_idx_type img_idx = 0;
   for (octave_idx_type frame = 0; frame < nFrames; frame++)
     {
+      OCTAVE_QUIT;
       // For some reason, we can't set the type to Magick::BilevelType or
       // the output image will be black, changing to white has no effect.
       // However, this will still work fine and a binary image will be
@@ -1071,6 +1080,7 @@
       {
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth,
                                                       type,
                                                       Magick::DirectClass);
@@ -1100,6 +1110,7 @@
       {
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth,
                                                       type,
                                                       Magick::DirectClass);
@@ -1134,6 +1145,7 @@
         const octave_idx_type B_offset = nCols * nRows * 2;
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth,
                                                       type,
                                                       Magick::DirectClass);
@@ -1168,6 +1180,7 @@
         const octave_idx_type B_offset = nCols * nRows * 2;
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth,
                                                       type,
                                                       Magick::DirectClass);
@@ -1205,6 +1218,7 @@
         const octave_idx_type K_offset = nCols * nRows * 3;
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth,
                                                       type,
                                                       Magick::DirectClass);
@@ -1241,6 +1255,7 @@
         const octave_idx_type K_offset = nCols * nRows * 3;
         for (octave_idx_type frame = 0; frame < nFrames; frame++)
           {
+            OCTAVE_QUIT;
             Magick::Image m_img = init_enconde_image (nCols, nRows, bitdepth,
                                                       type,
                                                       Magick::DirectClass);
@@ -1880,6 +1895,7 @@
 
   for (octave_idx_type frame = 0; frame < nFrames; frame++)
     {
+      OCTAVE_QUIT;
       octave_scalar_map info_frame (template_info);
       const Magick::Image img = imvec[frame];