Exemplo n.º 1
0
        public StkId Get(ref TValue key)
        {
            if (key.Tt == (int)LuaType.LUA_TNIL)
            {
                return(TheNilValue);
            }

            if (IsPositiveInteger(ref key))
            {
                return(GetInt((int)key.NValue));
            }

            if (key.Tt == (int)LuaType.LUA_TSTRING)
            {
                return(GetStr(key.SValue()));
            }

            var h = key.GetHashCode();

            for (var node = GetHashNode(h); node != null; node = node.Next)
            {
                if (node.Key.V == key)
                {
                    { return(node.Val); }
                }
            }

            return(TheNilValue);
        }
Exemplo n.º 2
0
        private HNode GetHashNode(ref TValue v)
        {
            if (IsPositiveInteger(ref v))
            {
                return(GetHashNode((int)v.NValue));
            }

            if (v.TtIsString())
            {
                return(GetHashNode(v.SValue().GetHashCode()));
            }

            return(GetHashNode(v.GetHashCode()));
        }
Exemplo n.º 3
0
		public StkId Get(ref TValue key)
		{
			if(key.Tt == (int)LuaType.LUA_TNIL) { return TheNilValue; }

			if(IsPositiveInteger(ref key))
				{ return GetInt((int)key.NValue); }

			if(key.Tt == (int)LuaType.LUA_TSTRING)
				{ return GetStr(key.SValue()); }

			var h = key.GetHashCode();
			for(var node = GetHashNode(h); node != null; node = node.Next) {
				if(node.Key.V == key) {
					{ return node.Val; }
				}
			}

			return TheNilValue;
		}
Exemplo n.º 4
0
        private HNode GetHashNode(ref TValue v)
        {
            if(IsPositiveInteger(ref v)) { return GetHashNode((int)v.NValue); }

            if(v.TtIsString()) { return GetHashNode(v.SValue().GetHashCode()); }

            return GetHashNode(v.GetHashCode());
        }