Example #1
0
        public IFn getMethod(object dispatchVal)
        {
            if (_cachedHierarchy != _hierarchy.deref())
            {
                ResetCache();
            }

            IFn targetFn = (IFn)_methodCache.valAt(dispatchVal);

            if (targetFn != null)
            {
                return(targetFn);
            }

            targetFn = FindAndCacheBestMethod(dispatchVal);
            if (targetFn != null)
            {
                return(targetFn);
            }

            targetFn = (IFn)MethodTable.valAt(_defaultDispatchVal);
            return(targetFn);
        }