diff --git a/Projects/Server/Insensitive.cs b/Projects/Server/Insensitive.cs index c46c0a6e4..8156b85a1 100644 --- a/Projects/Server/Insensitive.cs +++ b/Projects/Server/Insensitive.cs @@ -25,45 +25,20 @@ namespace Server { public static class Insensitive { - public static IComparer Comparer{ get; } = StringComparer.OrdinalIgnoreCase; + public static IComparer Comparer { get; } = StringComparer.OrdinalIgnoreCase; public static int Compare(string a, string b) => Comparer.Compare(a, b); - public static bool Equals(string a, string b) - { - if (a == null && b == null) - return true; - if (a == null || b == null || a.Length != b.Length) - return false; + public static bool Equals(string a, string b) => + a == null && b == null || a != null && b != null && a.Length == b.Length && Comparer.Compare(a, b) == 0; - return Comparer.Compare(a, b) == 0; - } + public static bool StartsWith(string a, string b) => + a != null && b != null && a.Length >= b.Length && Comparer.Compare(a.Substring(0, b.Length), b) == 0; - public static bool StartsWith(string a, string b) - { - if (a == null || b == null || a.Length < b.Length) - return false; + public static bool EndsWith(string a, string b) => + a != null && b != null && a.Length >= b.Length && Comparer.Compare(a.Substring(a.Length - b.Length), b) == 0; - return Comparer.Compare(a.Substring(0, b.Length), b) == 0; - } - - public static bool EndsWith(string a, string b) - { - if (a == null || b == null || a.Length < b.Length) - return false; - - return Comparer.Compare(a.Substring(a.Length - b.Length), b) == 0; - } - - public static bool Contains(string a, string b) - { - if (a == null || b == null || a.Length < b.Length) - return false; - - a = a.ToLower(); - b = b.ToLower(); - - return a.IndexOf(b) >= 0; - } + public static bool Contains(string a, string b) => + a != null && b != null && a.Length >= b.Length && a.IndexOf(b, StringComparison.OrdinalIgnoreCase) >= 0; } } diff --git a/Projects/Server/Main.cs b/Projects/Server/Main.cs index db8a9a209..53a975885 100644 --- a/Projects/Server/Main.cs +++ b/Projects/Server/Main.cs @@ -474,8 +474,8 @@ namespace Server m_Signal.WaitOne(); Task.WaitAll( - Task.Run(() => Mobile.ProcessDeltaQueue()), - Task.Run(() => Item.ProcessDeltaQueue()) + Task.Run(Mobile.ProcessDeltaQueue), + Task.Run(Item.ProcessDeltaQueue) ); Timer.Slice(); diff --git a/Projects/Server/Network/MessagePump.cs b/Projects/Server/Network/MessagePump.cs index 30243de09..0919630d9 100644 --- a/Projects/Server/Network/MessagePump.cs +++ b/Projects/Server/Network/MessagePump.cs @@ -48,8 +48,8 @@ namespace Server.Network public void DoWork() { - int count = m_WorkQueue.Count; - while (count-- > 0) + int count = 0; + while (!m_WorkQueue.IsEmpty && count++ < 250) { if (!m_WorkQueue.TryDequeue(out Work work)) break;