]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/directed-graph.cc
release: 1.1.40
[lilypond.git] / flower / directed-graph.cc
index a08f4563819bfd67a9be069d44bbedb662ad1a9a..1eb6d8b4499c4c6314a184e416c8becc9d5cffd0 100644 (file)
@@ -3,7 +3,7 @@
 
   source file FlowerLib
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 #include "directed-graph.hh"
 Link_array<Directed_graph_node> const &
 Directed_graph_node::get_in_edge_arr() const
 {
-    return edge_in_l_arr_;
+  return edge_in_l_arr_;
 }
 
 Link_array<Directed_graph_node> const &
-Directed_graph_node::get_out_edge_arr()const
+Directed_graph_node::get_out_edge_arr() const
 {
-    return edge_out_l_arr_;
+  return edge_out_l_arr_;
 }
 
 /**
   Should not copy deps automatically
  */
-Directed_graph_node::Directed_graph_node(Directed_graph_node const&)
+Directed_graph_node::Directed_graph_node (Directed_graph_node const&)
 {
 }
 
 void
-Directed_graph_node::copy_edges_out(Directed_graph_node const &s)
+Directed_graph_node::copy_edges_out (Directed_graph_node const &s)
 {
-    for(int i=0; i < s.edge_out_l_arr_.size(); i++)
-       add(s.edge_out_l_arr_[i]);
+  for (int i=0; i < s.edge_out_l_arr_.size(); i++)
+    add_edge (s.edge_out_l_arr_[i]);
 }
 
 void
 Directed_graph_node::OK() const
 { 
 #ifndef NDEBUG
-    for (int i=0; i < edge_out_l_arr_.size(); i++) {
-       assert(edge_out_l_arr_[i]->
-              edge_in_l_arr_.find_l(this));
+  for (int i=0; i < edge_out_l_arr_.size(); i++) 
+    {
+      assert (edge_out_l_arr_[i]->
+             edge_in_l_arr_.find_l (this));
     }
-    for (int i=0; i < edge_in_l_arr_.size(); i++)
-       assert(edge_in_l_arr_[i]->contains_b( this));
+  for (int i=0; i < edge_in_l_arr_.size(); i++)
+    assert (edge_in_l_arr_[i]->contains_b (this));
 #endif
 }
 
 bool
-Directed_graph_node::contains_b(const Directed_graph_node *d)const
+Directed_graph_node::contains_b (const Directed_graph_node *d) const
 {
-    return edge_out_l_arr_.find_l((Directed_graph_node*)d);
+  return edge_out_l_arr_.find_l ((Directed_graph_node*)d);
 }
-    
+  
 void
-Directed_graph_node::remove_edge_out_idx(int i)
+Directed_graph_node::remove_edge_out_idx (int i)
 {
-    PARANOID_OK();
-    Directed_graph_node * d_l = edge_out_l_arr_.get(i);
+  PARANOID_OK();
+  Directed_graph_node * d_l = edge_out_l_arr_.get (i);
 
-    int j = d_l->edge_in_l_arr_.find_i(this);
-    assert(j>=0);
-    d_l->edge_in_l_arr_.unordered_del(j);
-    PARANOID_OK();
+  int j = d_l->edge_in_l_arr_.find_i (this);
+  assert (j>=0);
+  d_l->edge_in_l_arr_.unordered_del (j);
+  PARANOID_OK();
 }
 
 void
-Directed_graph_node::remove_edge_in(Directed_graph_node *d_l)
+Directed_graph_node::remove_edge_in (Directed_graph_node *d_l)
 {
-    PARANOID_OK();
-    d_l->remove_edge_out(this);
-    PARANOID_OK();
+  PARANOID_OK();
+  d_l->remove_edge_out (this);
+  PARANOID_OK();
 }
  
 void
 Directed_graph_node::remove_edge_out (Directed_graph_node *d_l)
 {
-    PARANOID_OK();
-    for (int i=0; i < edge_out_l_arr_.size(); ) {
-       if (edge_out_l_arr_[i]== d_l)
-           remove_edge_out_idx(i);
-       else
-           i++;
+  PARANOID_OK();
+  for (int i=0; i < edge_out_l_arr_.size();) 
+    {
+      if (edge_out_l_arr_[i]== d_l)
+       remove_edge_out_idx (i);
+      else
+       i++;
     }
-    PARANOID_OK();
+  PARANOID_OK();
 }
 bool
-Directed_graph_node::linked_b()const
+Directed_graph_node::linked_b() const
 {
-    return edge_out_l_arr_.size() || edge_in_l_arr_.size();
+  return edge_out_l_arr_.size() || edge_in_l_arr_.size ();
 }
 
 void
 Directed_graph_node::junk_links()
 {
-    edge_in_l_arr_.set_size(0);
-    edge_out_l_arr_.set_size(0);
+  edge_in_l_arr_.set_size (0);
+  edge_out_l_arr_.set_size (0);
 }
 
 
@@ -110,41 +112,41 @@ void
 Directed_graph_node::unlink()
 {
 #ifdef PARANOID
-       PARANOID_OK();
+  PARANOID_OK();
 
-       Link_array<Directed_graph_node> t = edge_out_l_arr_;
-       t.concat(edge_in_l_arr_);
+  Link_array<Directed_graph_node> t = edge_out_l_arr_;
+  t.concat (edge_in_l_arr_);
 #endif
 
-       while ( edge_out_l_arr_.size() )
-           remove_edge_out_idx(0);
+  while (edge_out_l_arr_.size())
+    remove_edge_out_idx (0);
        
-       while (edge_in_l_arr_.size() )
-           remove_edge_in(edge_in_l_arr_[0]);
+  while (edge_in_l_arr_.size())
+    remove_edge_in (edge_in_l_arr_[0]);
 
 #ifdef PARANOID
-       for (int i =0; i < t.size(); i++)
-           t[i]->OK();
+  for (int i =0; i < t.size(); i++)
+    t[i]->OK();
 #endif
 }
 
 Directed_graph_node::~Directed_graph_node()
 {
-    assert(!linked_b());
+  // assert (!linked_b());  // hampered by memfrobbing
 }
 
-    
+  
 void
-Directed_graph_node::add(Directed_graph_node* dep_l)
+Directed_graph_node::add_edge (Directed_graph_node* dep_l)
 {
-    PARANOID_OK();
-    if (!dep_l)
-       return ;
-    dep_l->edge_in_l_arr_.push(this);
-    edge_out_l_arr_.push(dep_l);
-    PARANOID_OK();
+  PARANOID_OK();
+  if (!dep_l)
+    return ;
+  dep_l->edge_in_l_arr_.push (this);
+  edge_out_l_arr_.push (dep_l);
+  PARANOID_OK();
 }
-    
+  
 
 Directed_graph_node::Directed_graph_node()
 {