now i can login on win .net4.8, but just a little drop on a large (broken) OSD ocean. some of this changes are actually good even on good JIT. Failure seems to be on same code pattern, but same points seem to vary with each JIT compilation, sometimes work, others don't, others always fail, etc

This commit is contained in:
UbitUmarov
2019-07-30 23:26:29 +01:00
parent 185ed42123
commit 944a785a32
9 changed files with 366 additions and 310 deletions

View File

@@ -58,13 +58,13 @@ namespace OpenSim.Framework
public void Unpack(OSD data)
{
OSDMap map = (OSDMap)data;
if (map.ContainsKey("InboundVersion"))
InboundVersion = (float)map["InboundVersion"].AsReal();
if (map.ContainsKey("OutboundVersion"))
OutboundVersion = (float)map["OutboundVersion"].AsReal();
if (map.ContainsKey("WearablesCount"))
WearablesCount = map["WearablesCount"].AsInteger();
OSD tmpOSD;
if (map.TryGetValue("InboundVersion", out tmpOSD))
InboundVersion = (float)tmpOSD.AsReal();
if (map.TryGetValue("OutboundVersion", out tmpOSD))
OutboundVersion = (float)tmpOSD.AsReal();
if (map.TryGetValue("WearablesCount", out tmpOSD))
WearablesCount = tmpOSD.AsInteger();
}
}
}