Assert in SymbolManager::AddString
Posted: 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:
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:
Code: Select all
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++