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= facts.length*3/4) facts = Arrays.copyOf(facts, size*2); } public Fact pop() { return facts[--size]; } }