changeset 1412:6097878fbd46

* intervals.c (traverse_intervals): New parameter `depth'. Increment this when passing recursively.
author Joseph Arceneaux <jla@gnu.org>
date Wed, 14 Oct 1992 23:12:09 +0000
parents 0b98dbec0738
children 527af9fa8676
files src/intervals.c
diffstat 1 files changed, 6 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/intervals.c	Wed Oct 14 23:10:56 1992 +0000
+++ b/src/intervals.c	Wed Oct 14 23:12:09 1992 +0000
@@ -173,29 +173,25 @@
 static int idepth;
 static int zero_length;
 
-static int depth;
-
 /* Traverse an interval tree TREE, performing FUNCTION on each node.
 
    Perhaps we should pass the depth as an argument. */
 
 void
-traverse_intervals (tree, position, function)
+traverse_intervals (tree, position, depth, function)
      INTERVAL tree;
-     int position;
+     int position, depth;
      void (* function) ();
 {
   if (NULL_INTERVAL_P (tree))
     return;
 
-  depth++;
-  traverse_intervals (tree->left, position, function);
+  traverse_intervals (tree->left, position, depth + 1, function);
   position += LEFT_TOTAL_LENGTH (tree);
   tree->position = position;
   (*function) (tree);
   position += LENGTH (tree);
-  traverse_intervals (tree->right, position, function);
-  depth--;
+  traverse_intervals (tree->right, position, depth + 1,  function);
 }
 
 #if 0
@@ -221,7 +217,7 @@
   icount = 0;
   search_interval = i;
   found_interval = NULL_INTERVAL;
-  traverse_intervals (tree, 1, &check_for_interval);
+  traverse_intervals (tree, 1, 0, &check_for_interval);
   return found_interval;
 }
 
@@ -243,7 +239,7 @@
   icount = 0;
   idepth = 0;
   zero_length = 0;
-  traverse_intervals (i, 1, &inc_interval_count);
+  traverse_intervals (i, 1, 0, &inc_interval_count);
 
   return icount;
 }