Advertisement
ivandrofly

SOH in FixContinuationStyle.cs

Oct 16th, 2023 (edited)
2,951
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.11 KB | None | 0 0
  1.         private bool StartsWithName(string input, string language)
  2.         {
  3.             foreach (var name in GetLocalNames(language))
  4.             {
  5.                 if (!input.StartsWith(name, StringComparison.Ordinal))
  6.                 {
  7.                     continue;
  8.                 }
  9.  
  10.                 if (name.Length + 1 == input.Length)
  11.                 {
  12.                     continue;
  13.                 }
  14.  
  15.                 var charAfterName = input[name.Length];
  16.                 if (charAfterName == ' ' || charAfterName == ',' || charAfterName == ':')
  17.                 {
  18.                     return true;
  19.                 }
  20.             }
  21.  
  22.             return false;
  23.  
  24.             IEnumerable<string> GetLocalNames(string lang)
  25.             {
  26.                 if (_names == null)
  27.                 {
  28.                     var nameList = new NameList(Configuration.DictionariesDirectory, lang, Configuration.Settings.WordLists.UseOnlineNames, Configuration.Settings.WordLists.NamesUrl);
  29.                     _names = nameList.GetAllNames();
  30.                 }
  31.  
  32.                 return _names ?? Enumerable.Empty<string>();
  33.             }
  34.         }
  35.  
  36.  
  37.  
  38.         private bool StartsWithName(string input, string language)
  39.         {
  40.             if (_names == null)
  41.             {
  42.                 var nameList = new NameList(Configuration.DictionariesDirectory, language, Configuration.Settings.WordLists.UseOnlineNames, Configuration.Settings.WordLists.NamesUrl);
  43.                 _names = nameList.GetAllNames();
  44.  
  45.                 if (_names == null)
  46.                 {
  47.                     return false;
  48.                 }
  49.             }
  50.  
  51.             foreach (var name in _names)
  52.             {
  53.                 // WARNING: THIS LINE IS CAUSING TOO MUCH SOH (SMALL OBJECT HEAP)
  54.                 if (input.StartsWith(name + " ", StringComparison.Ordinal) || input.StartsWith(name + ",", StringComparison.Ordinal) || input.StartsWith(name + ":", StringComparison.Ordinal))
  55.                 {
  56.                     return true;
  57.                 }
  58.             }
  59.  
  60.             return false;
  61.         }
  62.  
  63.  
  64.  
  65. CONTEXT: SubtitleEdit - FixContinuationStyle.cs
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement