B2017-081: crash on insert of supplemental information (cached item was of wrong type)
This commit is contained in:
parent
9e93a16c7b
commit
944cd18c6b
@ -194,11 +194,21 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
return string.Format("{0}~{1}~{2}", _ItemID, MenuTitle, ToolTip);
|
return string.Format("{0}~{1}~{2}", _ItemID, MenuTitle, ToolTip);
|
||||||
}
|
}
|
||||||
|
private static ItemInfo GetCorrectItemInfoType(int itemId)
|
||||||
|
{
|
||||||
|
using (ItemInfo itm = ItemInfo.Get(itemId))
|
||||||
|
{
|
||||||
|
if (itm.IsProcedure) return ProcedureInfo.Get(itemId);
|
||||||
|
if (itm.IsSection) return SectionInfo.Get(itemId);
|
||||||
|
if (itm.IsStep) return StepInfo.Get(itemId);
|
||||||
|
}
|
||||||
|
return ItemInfo.Get(itemId);
|
||||||
|
}
|
||||||
public static MostRecentItem ParseString(string str)
|
public static MostRecentItem ParseString(string str)
|
||||||
{
|
{
|
||||||
string[] parts = str.Split("~".ToCharArray());
|
string[] parts = str.Split("~".ToCharArray());
|
||||||
int itemID = int.Parse(parts[0]);
|
int itemID = int.Parse(parts[0]);
|
||||||
ItemInfo item = ItemInfo.Get(itemID);
|
ItemInfo item = GetCorrectItemInfoType(itemID);
|
||||||
if (item == null) return null;
|
if (item == null) return null;
|
||||||
if (parts.Length > 1 && parts[1] != item.Path && !RetainBadMRIs())
|
if (parts.Length > 1 && parts[1] != item.Path && !RetainBadMRIs())
|
||||||
return null; // Path doesn't match
|
return null; // Path doesn't match
|
||||||
|
Loading…
x
Reference in New Issue
Block a user