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); }
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())); }
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; }
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()); }