@@ -569,10 +569,10 @@ namespace ImVue {
569569 }
570570
571571 if (evaluation && std::strncmp (&str[i], " }}" , 2 ) == 0 ) {
572- scriptState->eval (&ss.str ()[0 ], &retval , fields, element->getContext ());
572+ Object object = scriptState->getObject (&ss.str ()[0 ], fields, element->getContext ());
573573 ss = std::stringstream ();
574574 evaluation = false ;
575- result << retval ;
575+ result << object. as <ImString>(). c_str () ;
576576 i++;
577577 continue ;
578578 }
@@ -714,10 +714,10 @@ namespace ImVue {
714714 typedef std::map<const char *, HandlerFactory*, CmpAttributeName> Handlers;
715715 Handlers mHandlers ;
716716
717- typedef std::vector<std::string > Inheritance;
717+ typedef std::vector<ImString > Inheritance;
718718 Inheritance mInheritance ;
719719
720- std::string mTag ;
720+ ImString mTag ;
721721 };
722722
723723 /* *
@@ -790,7 +790,7 @@ namespace ImVue {
790790 if (mTag == name) {
791791 return *this ;
792792 }
793- mInheritance .push_back (name);
793+ mInheritance .push_back (ImString ( name) );
794794 return *this ;
795795 }
796796 };
@@ -869,24 +869,7 @@ namespace ImVue {
869869 }
870870
871871 private:
872- void buildInheritance () {
873- mLayers .clear ();
874- mDirty = false ;
875-
876- for (ElementBuilders::iterator iter = mElementBuilders .begin (); iter != mElementBuilders .end (); ++iter) {
877- int layer = iter->second ->getLayer (this );
878- if (mLayers .count (layer) == 0 ) {
879- mLayers [layer] = ElementBuilders ();
880- }
881- mLayers [layer][iter->first ] = iter->second ;
882- }
883-
884- for (Layers::iterator iter = mLayers .begin (); iter != mLayers .end (); ++iter) {
885- for (ElementBuilders::iterator it = iter->second .begin (); it != iter->second .end (); ++it) {
886- it->second ->readInheritance (this );
887- }
888- }
889- }
872+ void buildInheritance ();
890873
891874 ElementBuilders mElementBuilders ;
892875
0 commit comments