kpark
Topic Author
Posts: 1
Joined: 25 May 2023, 00:45

Assert in SymbolManager::AddString

25 May 2023, 01:14

Hello,

I am hitting this assert: NS_ASSERT(sym <= 0xffff); in the symbol manager. This seems to be happening when I have some MultiBindingExpressions that get reapplied.

What happens when the number of symbols exceed 0xffff and why do the multibindings get reapplied?

Here is the stack trace:
 Noesis::SymbolManager::AddString(const char * str) Line 71	C++
 Noesis::Symbol::Symbol(const char * str) Line 46	C++
 Noesis::DependencyProperty::Create<Noesis::Ptr<Noesis::BaseComponent>>(const char * name, const Noesis::Type * type, const Noesis::TypeClass * ownerType, Noesis::PropertyMetadata * metadata, bool(*)(const void *) validate, Noesis::PropertyAccess access) Line 57	C++
 Noesis::PropertyListener::PropertyListener() Line 37	C++
 Noesis::BindingListener::Register(Noesis::BindingMode defaultMode) Line 139	C++
 Noesis::MultiBindingExpression::Register() Line 357	C++
 Noesis::MultiBindingExpression::MultiBindingExpression(Noesis::MultiBinding * binding, Noesis::DependencyObject * targetObject, const Noesis::DependencyProperty * targetProperty) Line 100	C++
 Noesis::MultiBindingExpression::Reapply(Noesis::DependencyObject * targetObject, const Noesis::DependencyProperty * targetProperty) Line 212	C++
 Noesis::DependencyObject::Init() Line 453	C++
 Noesis::InitComponent(Noesis::IComponentInitializer * component, bool doInit) Line 41	C++
 Noesis::BaseUICollection::Init() Line 51	C++
 Noesis::Panel::OnInit() Line 142	C++
 Noesis::Grid::OnInit() Line 163	C++
 Noesis::DependencyObject::Init() Line 410	C++
 Noesis::InitComponent(Noesis::IComponentInitializer * component, bool doInit) Line 41	C++
 Noesis::FrameworkElement::OnInit() Line 1621	C++
 Noesis::DependencyObject::Init() Line 410	C++
 Noesis::InitComponent(Noesis::IComponentInitializer * component, bool doInit) Line 41	C++
 Noesis::BaseUICollection::Init() Line 51	C++
 Noesis::Panel::OnInit() Line 142	C++
 Noesis::Grid::OnInit() Line 163	C++
 Noesis::DependencyObject::Init() Line 410	C++
 Noesis::InitComponent(Noesis::IComponentInitializer * component, bool doInit) Line 41	C++
 Noesis::FrameworkElement::SetSingleVisualChild(Noesis::Visual * child) Line 1412	C++
 Noesis::FrameworkElement::ApplyTemplate() Line 640	C++
 Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2127	C++
 Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 607	C++
 Noesis::FrameworkElement::MeasureOverride(const Noesis::Size & availableSize) Line 1506	C++
 Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2168	C++
 Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 607	C++
 Noesis::Border::MeasureOverride(const Noesis::Size & availableSize) Line 212	C++
 Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2168	C++
 Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 607	C++
 Noesis::FrameworkElement::MeasureOverride(const Noesis::Size & availableSize) Line 1506	C++
 Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2168	C++
 Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 607	C++
 Noesis::FrameworkElement::MeasureOverride(const Noesis::Size & availableSize) Line 1506	C++
 Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2168	C++
 Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 607	C++
 Noesis::Grid::SimpleMeasure(const Noesis::Size & availableSize) Line 308	C++
 Noesis::Grid::MeasureOverride(const Noesis::Size & availableSize) Line 259	C++
 Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2168	C++
 Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 607	C++
 Noesis::FrameworkElement::MeasureOverride(const Noesis::Size & availableSize) Line 1506	C++
 Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2168	C++
 Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 607	C++
 Noesis::FrameworkElement::MeasureOverride(const Noesis::Size & availableSize) Line 1506	C++
 Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2168	C++
 Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 607	C++
 
User avatar
jsantos
Site Admin
Posts: 3747
Joined: 20 Jan 2012, 17:18
Contact:

Re: Assert in SymbolManager::AddString

25 May 2023, 14:14

That's an unexpected high number for symbols. Could you please report this in the tracker and help us to reproduce it? Thank you

Who is online

Users browsing this forum: Bing [Bot] and 1 guest