Browse Source

block calc works

Kolja Strohm 6 years ago
parent
commit
358dbecb2a
2 changed files with 5 additions and 5 deletions
  1. 1 1
      src/bk/BlockCalc.java
  2. 4 4
      src/graph/LayeredNode.java

+ 1 - 1
src/bk/BlockCalc.java

@@ -250,7 +250,7 @@ public class BlockCalc implements AlgorithmStage {
             public ControlFlow runForward(Memory m) {
             public ControlFlow runForward(Memory m) {
                 LayeredGraphNode v = m.<ArrayList<ArrayList<LayeredGraphNode>>>read( "L", MemoryType.LOCAL ).get( m.read( "i", MemoryType.LOCAL ) ).get( m.read( "k", MemoryType.LOCAL ) );
                 LayeredGraphNode v = m.<ArrayList<ArrayList<LayeredGraphNode>>>read( "L", MemoryType.LOCAL ).get( m.read( "i", MemoryType.LOCAL ) ).get( m.read( "k", MemoryType.LOCAL ) );
                 LayeredGraphNode old = v.getAlign( LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
                 LayeredGraphNode old = v.getAlign( LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
-                v.setAlign( v.getAlign( LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) ), LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
+                v.setAlign( v.getRoot( LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) ), LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
                 actions.push( (Memory mem) -> {
                 actions.push( (Memory mem) -> {
                     v.setAlign( old, LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
                     v.setAlign( old, LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
                 });
                 });

+ 4 - 4
src/graph/LayeredNode.java

@@ -841,7 +841,7 @@ public class LayeredNode implements LayeredGraphNode {
         ArrayList<LayeredGraphEdge> result = new ArrayList<>();
         ArrayList<LayeredGraphEdge> result = new ArrayList<>();
         for( LayeredGraphEdge e : edges )
         for( LayeredGraphEdge e : edges )
         {
         {
-            if( e.getSources().contains( n ) )
+            if( e.getSources().contains( n ) && !result.contains( e ) )
                 result.add( e );
                 result.add( e );
         }
         }
         return result;
         return result;
@@ -852,7 +852,7 @@ public class LayeredNode implements LayeredGraphNode {
         ArrayList<LayeredGraphEdge> result = new ArrayList<>();
         ArrayList<LayeredGraphEdge> result = new ArrayList<>();
         for( LayeredGraphEdge e : edges )
         for( LayeredGraphEdge e : edges )
         {
         {
-            if( e.getTargets().contains( n ) )
+            if( e.getTargets().contains( n ) && !result.contains( e ) )
                 result.add( e );
                 result.add( e );
         }
         }
         return result;
         return result;
@@ -868,7 +868,7 @@ public class LayeredNode implements LayeredGraphNode {
         {
         {
         	for( LayeredGraphEdge e : unsorted )
         	for( LayeredGraphEdge e : unsorted )
             {
             {
-                if( e.getTargets().contains( node ) )
+                if( e.getTargets().contains( node ) && !result.contains( e ) )
                 	result.add( e );
                 	result.add( e );
             }
             }
         }
         }
@@ -885,7 +885,7 @@ public class LayeredNode implements LayeredGraphNode {
         {
         {
         	for( LayeredGraphEdge e : unsorted )
         	for( LayeredGraphEdge e : unsorted )
             {
             {
-                if( e.getSources().contains( node ) )
+                if( e.getSources().contains( node ) && !result.contains( e ) )
                 	result.add( e );
                 	result.add( e );
             }
             }
         }
         }