1 19 20 package soot.util; 21 import soot.*; 22 23 public final class SharedBitSetCache { 24 public SharedBitSetCache( Singletons.Global g ) {} 25 public static SharedBitSetCache v() { return G.v().soot_util_SharedBitSetCache(); } 26 27 public static final int size = 32749; 29 public BitVector[] cache = new BitVector[size]; 30 public BitVector[] orAndAndNotCache = new BitVector[size]; 31 32 public BitVector canonicalize( BitVector set ) { 33 int hash = set.hashCode(); 34 if( hash < 0 ) hash = -hash; 35 hash %= size; 36 if( cache[hash] == null || !cache[hash].equals(set) ) { 37 return cache[hash] = set; 38 } 39 return cache[hash]; 40 } 41 } 42 | Popular Tags |