changeset 32034:43e4c7f59889

maint: merge stable to default
author Rik <rik@octave.org>
date Tue, 18 Apr 2023 11:26:31 -0700
parents 99c6403da856 (current diff) 1824e0ee4088 (diff)
children 80fef9315743
files libinterp/corefcn/graphics.cc
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/graphics.cc	Tue Apr 18 15:11:04 2023 +0200
+++ b/libinterp/corefcn/graphics.cc	Tue Apr 18 11:26:31 2023 -0700
@@ -7883,6 +7883,7 @@
     return;
 
   // minor ticks between, above, and below min and max ticks
+  const int MAX_MINOR_TICKS = 1000;
   int n = (is_logscale ? 8 : 4);
   double mult_below = (is_logscale ? tmp_ticks(1) / tmp_ticks(0) : 1);
   double mult_above = (is_logscale ? tmp_ticks(n_ticks-1) / tmp_ticks(n_ticks-2)
@@ -7892,6 +7893,9 @@
   int n_below = static_cast<int> (std::floor ((tmp_ticks(0)-lo_lim) / d_below));
   if (n_below < 0)
     n_below = 0;
+  else if (n_below > MAX_MINOR_TICKS)
+    n_below = MAX_MINOR_TICKS;
+
   int n_between = n * (n_ticks - 1);
   double d_above = (tmp_ticks(n_ticks-1) - tmp_ticks(n_ticks-2)) * mult_above
                    / (n+1);
@@ -7899,6 +7903,8 @@
                                   / d_above));
   if (n_above < 0)
     n_above = 0;
+  else if (n_above > MAX_MINOR_TICKS)
+    n_above = MAX_MINOR_TICKS;
 
   Matrix tmp_mticks (1, n_below + n_between + n_above);
   for (int i = 0; i < n_below; i++)