| Description | Issue for BugSplat report 1944 (https://app.bugsplat.com/v2/crash?database=Noesis&id=1944).
See attached videos for reproduction steps. DataTemplates don't need to be default templates, to cause these crashes.
Crash 1: Opening the context menu on an item.
App.StudioTool.exe!Editor::ResourceMapper::GetAvailableResources::__l35::<lambda>(const char * __formal, Noesis::BaseComponent * value) Line 1017
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ResourceMapper.cpp(1017)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(char const *,Noesis::BaseComponent *)>::FunctorStub<void <lambda>(const char *, Noesis::BaseComponent *)>::Invoke(const void * this_, const char * && <args_0>, Noesis::BaseComponent * && <args_1>) Line 277
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(277)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(char const *,Noesis::BaseComponent *)>::Base::Invoke(const char * && <args_0>, Noesis::BaseComponent * && <args_1>) Line 86
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(86)
App.StudioTool.exe!Noesis::Delegate<void __cdecl(char const *,Noesis::BaseComponent *)>::operator()(const char * <args_0>, Noesis::BaseComponent * <args_1>) Line 737
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(737)
App.StudioTool.exe!Noesis::ResourceDictionary::EnumKeyValues(const Noesis::Delegate<void __cdecl(char const *,Noesis::BaseComponent *)> & callback) Line 144
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Gui\Core\Src\ResourceDictionary.cpp(144)
App.StudioTool.exe!Editor::ResourceMapper::GetAvailableResources(Editor::XamlDocument * document, Editor::Scope * scope, Noesis::NodeObject * element, Noesis::Vector<Editor::Resource *,0> & resources, const Noesis::Type * resourceType, bool skipTargetTypeCheck, const Noesis::Type * manualTargetType, const Noesis::Vector<Noesis::FixedString<24>,0> & skipFiles) Line 965
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ResourceMapper.cpp(965)
App.StudioTool.exe!Editor::XamlDocument::BuildStylesTemplatesMenu(Noesis::NodeObject * elementNode, Editor::DelegateCommand * createTemplate, Editor::DelegateCommand * editTemplate, Editor::DelegateCommand * removeTemplate, Editor::DelegateCommand * applyTemplate, Editor::DelegateCommand * createItemContainerTemplate, Editor::DelegateCommand * editItemContainerTemplate, Editor::DelegateCommand * removeItemContainerTemplate, Editor::DelegateCommand * applyItemContainerTemplate, Editor::DelegateCommand * createStyle, Editor::DelegateCommand * editStyle, Editor::DelegateCommand * removeStyle, Editor::DelegateCommand * applyStyle, Editor::Scope * targetScope) Line 736
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\XamlDocument.cpp(736)
App.StudioTool.exe!Editor::XamlDocument::OnContextMenuOpening(Noesis::BaseComponent * captureMousePositionParam) Line 2554
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\XamlDocument.cpp(2554)
Crash 2: Selecting a dictionary which contains a DataTemplate which has a deleted DataType
App.StudioTool.exe!Noesis::BaseVector<char const *>::operator[](unsigned int i) Line 135
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\NSTL\Include\NsCore\Vector.inl(135)
App.StudioTool.exe!Noesis::SymbolManager::GetString(unsigned int index) Line 147
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Src\Symbol.cpp(147)
App.StudioTool.exe!Noesis::Symbol::Str() Line 62
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Symbol.inl(62)
App.StudioTool.exe!Noesis::Type::GetName() Line 24
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Src\Type.cpp(24)
App.StudioTool.exe!Editor::ResourceListItem::GetIsKeyTargetType() Line 246
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ResourceListItem.cpp(246)
App.StudioTool.exe!Noesis::TypePropertyFunction<Editor::ResourceListItem,bool>::ByCopy::GetCopy(bool(const Editor::ResourceListItem::*)() getter, const void * ptr, void * dest) Line 128
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\TypePropertyImpl.inl(128)
App.StudioTool.exe!Noesis::TypePropertyFunction<Editor::ResourceListItem,bool>::Get(const void * ptr, void * dest) Line 181
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\TypePropertyImpl.inl(181)
App.StudioTool.exe!Noesis::PropGet<bool>(const Noesis::TypeProperty * type, const void * ptr, Noesis::Int2Type<1> __formal) Line 48
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\TypeProperty.inl(48)
App.StudioTool.exe!Noesis::PropGet<bool>(const Noesis::TypeProperty * type, const void * ptr) Line 56
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\TypeProperty.inl(56)
App.StudioTool.exe!Noesis::GetComponent<bool>(const Noesis::TypeProperty * prop, const void * ptr, Noesis::Int2Type<0> __formal) Line 35
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\TypePropertyUtil.h(35)
App.StudioTool.exe!Noesis::GetComponent<bool>(const Noesis::TypeProperty * prop, const void * ptr) Line 56
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\TypePropertyUtil.h(56)
App.StudioTool.exe!Noesis::TypePropertyFunction<Editor::ResourceListItem,bool>::GetComponent(const void * ptr) Line 159
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\TypePropertyImpl.inl(159)
App.StudioTool.exe!Noesis::BindingExpression::GetValue(const Noesis::BindingExpression::WeakPathElement & element, const Noesis::Type * & valueType) Line 1126
at C:\Source\Noesis\NoesisStudio_Debugging\NoesisSDK\Native\Src\Packages\Gui\Core\Src\BindingExpression.cpp(1126)
|
|---|