-package org.simantics.scl.runtime.chr;\r
-\r
-import java.util.Arrays;\r
-\r
-class PriorityContainer {\r
- private static final boolean CLEANUP_ENABLED = true;\r
- \r
- final int priority;\r
- Fact[] facts = new Fact[4];\r
- int size;\r
-\r
- public PriorityContainer(int priority) {\r
- this.priority = priority;\r
- }\r
- \r
- public void push(Fact item) {\r
- if(size == facts.length)\r
- increaseCapacity();\r
- facts[size++] = item;\r
- }\r
-\r
- private void increaseCapacity() {\r
- if(CLEANUP_ENABLED) {\r
- // Cleanup dead facts\r
- int j=0;\r
- for(int i=0;i<size;++i) {\r
- Fact fact = facts[i];\r
- if(fact.isAlive())\r
- facts[j++] = fact;\r
- }\r
- size = j;\r
- }\r
- \r
- // Resize if necessary\r
- if(size >= facts.length*3/4)\r
- facts = Arrays.copyOf(facts, size*2);\r
- }\r
-\r
- public Fact pop() {\r
- return facts[--size];\r
- }\r
-}\r
+package org.simantics.scl.runtime.chr;
+
+import java.util.Arrays;
+
+class PriorityContainer {
+ private static final boolean CLEANUP_ENABLED = true;
+
+ final int priority;
+ Fact[] facts = new Fact[4];
+ int size;
+
+ public PriorityContainer(int priority) {
+ this.priority = priority;
+ }
+
+ public void push(Fact item) {
+ if(size == facts.length)
+ increaseCapacity();
+ facts[size++] = item;
+ }
+
+ private void increaseCapacity() {
+ if(CLEANUP_ENABLED) {
+ // Cleanup dead facts
+ int j=0;
+ for(int i=0;i<size;++i) {
+ Fact fact = facts[i];
+ if(fact.isAlive())
+ facts[j++] = fact;
+ }
+ size = j;
+ }
+
+ // Resize if necessary
+ if(size >= facts.length*3/4)
+ facts = Arrays.copyOf(facts, size*2);
+ }
+
+ public Fact pop() {
+ return facts[--size];
+ }
+}