changeset 3720:5d0ed3ca5910

new patch for stable-octave package
author John W. Eaton <jwe@octave.org>
date Sun, 05 Oct 2014 11:12:39 -0400
parents 9caae5336e92
children 933b99febcf1
files dist-files.mk src/stable-octave-3-fixes.patch
diffstat 2 files changed, 65 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/dist-files.mk	Sun Oct 05 11:15:06 2014 -0400
+++ b/dist-files.mk	Sun Oct 05 11:12:39 2014 -0400
@@ -565,6 +565,7 @@
   stable-octave-1-fixes.patch \
   stable-octave-1-gnulib-isatty.patch \
   stable-octave-2-winbelloff.patch \
+  stable-octave-3-fixes.patch \
   stable-octave.mk \
   suitesparse-1.patch \
   suitesparse.mk \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/stable-octave-3-fixes.patch	Sun Oct 05 11:12:39 2014 -0400
@@ -0,0 +1,64 @@
+# HG changeset patch
+# User John W. Eaton <jwe@octave.org>
+# Date 1412519047 14400
+#      Sun Oct 05 10:24:07 2014 -0400
+# Branch stable
+# Node ID 3ffb8f53e94019084321d065390f4d4e215fd465
+# Parent  432ffa35de136a5dfd2a717a598750b62e6944f9
+use correct HDF5 size for octave_idx_type on Windows-64 (bug #43101)
+
+* ls-hdf5.h: Define H5T_NATIVE_IDX to H5T_NATIVE_INT64 when using
+64-bit indexing.
+
+diff --git a/libinterp/corefcn/ls-hdf5.h b/libinterp/corefcn/ls-hdf5.h
+--- a/libinterp/corefcn/ls-hdf5.h
++++ b/libinterp/corefcn/ls-hdf5.h
+@@ -204,7 +204,7 @@
+                       const char *attr_name, void *buf);
+ 
+ #ifdef USE_64_BIT_IDX_T
+-#define H5T_NATIVE_IDX H5T_NATIVE_LONG
++#define H5T_NATIVE_IDX H5T_NATIVE_INT64
+ #else
+ #define H5T_NATIVE_IDX H5T_NATIVE_INT
+ #endif
+# HG changeset patch
+# User John W. Eaton <jwe@octave.org>
+# Date 1412520111 14400
+#      Sun Oct 05 10:41:51 2014 -0400
+# Branch stable
+# Node ID 0279c601b49ce5d539b1ae938e8ec562b63f1ced
+# Parent  3ffb8f53e94019084321d065390f4d4e215fd465
+compute for loop indices consistently with range element results
+
+* pt-eval.cc (tree_evaluator::visit_simple_for_command): Use
+Range::elem instead of compuiting elements directly.  This change
+appears to fix obscure test failures in eig.cc-tst on 64-bit Windows
+systems.  See also task #13313.
+
+diff --git a/libinterp/parse-tree/pt-eval.cc b/libinterp/parse-tree/pt-eval.cc
+--- a/libinterp/parse-tree/pt-eval.cc
++++ b/libinterp/parse-tree/pt-eval.cc
+@@ -336,21 +336,10 @@
+         Range rng = rhs.range_value ();
+ 
+         octave_idx_type steps = rng.nelem ();
+-        double b = rng.base ();
+-        double increment = rng.inc ();
+ 
+         for (octave_idx_type i = 0; i < steps; i++)
+           {
+-            // Use multiplication here rather than declaring a
+-            // temporary variable outside the loop and using
+-            //
+-            //   tmp_val += increment
+-            //
+-            // to avoid problems with limited precision.  Also, this
+-            // is consistent with the way Range::matrix_value is
+-            // implemented.
+-
+-            octave_value val (b + i * increment);
++            octave_value val (rng.elem (i));
+ 
+             ult.assign (octave_value::op_asn_eq, val);
+