private SpanFilterResult GetCachedResult(IndexReader reader) { object coreKey = reader.FieldCacheKey; object delCoreKey = reader.HasDeletions ? reader.DeletesCacheKey : coreKey; SpanFilterResult result = cache.Get(reader, coreKey, delCoreKey); if (result != null) { hitCount++; return(result); } missCount++; result = filter.BitSpans(reader); cache.Put(coreKey, delCoreKey, result); return(result); }
private SpanFilterResult GetCachedResult(IndexReader reader) { SpanFilterResult result = null; if (cache == null) { cache = new SupportClass.WeakHashTable(); } lock (cache.SyncRoot) { // check cache result = (SpanFilterResult)cache[reader]; if (result == null) { result = filter.BitSpans(reader); cache[reader] = result; } } return(result); }
private SpanFilterResult GetCachedResult(IndexReader reader) { SpanFilterResult result = null; if (cache == null) { cache = new System.Collections.Hashtable(); } lock (cache.SyncRoot) { // check cache result = (SpanFilterResult)cache[reader]; if (result == null) { result = filter.BitSpans(reader); cache[reader] = result; } } return(result); }