psppire-output-view: Use correct enumeration type in call.
[pspp] / src / libpspp / abt.c
index 74b2ceb387f54d04e669cfbadb7eb4e7589c89a3..ae746183021203605efa169e6989c7cc05844ec3 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2007 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #include <config.h>
 #endif
 
-#include <libpspp/abt.h>
+#include "libpspp/abt.h"
 
 #include <stdbool.h>
 
-#include <libpspp/assertion.h>
+#include "libpspp/cast.h"
+#include "libpspp/assertion.h"
 
 static struct abt_node **down_link (struct abt *, struct abt_node *);
 static struct abt_node *skew (struct abt *, struct abt_node *);
@@ -145,8 +146,8 @@ insert_relative (struct abt *abt, const struct abt_node *p, bool after,
           p = p->down[dir];
           dir = !after;
         }
-      ((struct abt_node *) p)->down[dir] = node;
-      node->up = (struct abt_node *) p;
+      CONST_CAST (struct abt_node *, p)->down[dir] = node;
+      node->up = CONST_CAST (struct abt_node *, p);
       abt_reaugmented (abt, node);
     }
 
@@ -280,7 +281,7 @@ abt_find (const struct abt *abt, const struct abt_node *target)
     {
       cmp = abt->compare (target, p, abt->aux);
       if (cmp == 0)
-        return (struct abt_node *) p;
+        return CONST_CAST (struct abt_node *, p);
     }
 
   return NULL;
@@ -307,7 +308,7 @@ abt_next (const struct abt *abt, const struct abt_node *p)
       p = p->down[1];
       while (p->down[0] != NULL)
         p = p->down[0];
-      return (struct abt_node *) p;
+      return CONST_CAST (struct abt_node *, p);
     }
 }
 
@@ -332,7 +333,7 @@ abt_prev (const struct abt *abt, const struct abt_node *p)
       p = p->down[0];
       while (p->down[1] != NULL)
         p = p->down[1];
-      return (struct abt_node *) p;
+      return CONST_CAST (struct abt_node *, p);
     }
 }
 
@@ -350,7 +351,7 @@ void
 abt_reaugmented (const struct abt *abt, struct abt_node *p)
 {
   for (; p != NULL; p = p->up)
-    abt->reaugment (p, p->down[0], p->down[1], abt->aux);
+    abt->reaugment (p, abt->aux);
 }
 
 /* Moves P around in ABT to compensate for its key having
@@ -451,8 +452,8 @@ skew (struct abt *abt, struct abt_node *a)
       b->up = a->up;
       a->up = b;
 
-      abt->reaugment (a, a->down[0], a->down[1], abt->aux);
-      abt->reaugment (b, b->down[0], b->down[1], abt->aux);
+      abt->reaugment (a, abt->aux);
+      abt->reaugment (b, abt->aux);
 
       return b;
     }
@@ -482,8 +483,8 @@ split (struct abt *abt, struct abt_node *a)
 
       b->level++;
 
-      abt->reaugment (a, a->down[0], a->down[1], abt->aux);
-      abt->reaugment (b, b->down[0], b->down[1], abt->aux);
+      abt->reaugment (a, abt->aux);
+      abt->reaugment (b, abt->aux);
 
       return b;
     }