changeset 27906:1a06fa2fe13a

Don't error out in __magick_read__ if disable_range is true (bug #57528). * __magick_read__.cc (get_region_range): Add else if block to check whether input to function is an array object. If found, decode base, limit, and increment from array and then call Range constructor.
author Rik <rik@octave.org>
date Fri, 03 Jan 2020 15:30:39 -0800
parents d1862db3bffb
children c5f5f7044196
files libinterp/corefcn/__magick_read__.cc
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/__magick_read__.cc	Fri Jan 03 11:43:24 2020 -0800
+++ b/libinterp/corefcn/__magick_read__.cc	Fri Jan 03 15:30:39 2020 -0800
@@ -144,6 +144,7 @@
 get_region_range (const octave_value& region)
 {
   Range output;
+
   if (region.is_range ())
     output = region.range_value ();
   else if (region.is_scalar_type ())
@@ -151,6 +152,14 @@
       double value = region.scalar_value ();
       output = Range (value, value);
     }
+  else if (region.is_matrix_type ())
+    {
+      NDArray array = region.array_value ();
+      double base = array(0);
+      double limit = array(array.numel () - 1);
+      double incr = array(1) - base;
+      output = Range (base, limit, incr);
+    }
   else
     error ("__magick_read__: unknown datatype for Region option");