> Hi Markos, > > i think that the flag "haveListType" is not reset correctly if the element > passes from > > haveTypedValue && haveTypedTypedValue && haveListType > to > haveTypedValue && haveTypedTypedValue && !haveListType > > I would add: > else > textChild->resetHaveListValue(); > near line 499 of pul_primitives.cpp > > since if the textchild has this flag true when it has not a list type it could > cause some bad crash in > void ElementNode::getTypedValue() > > Do you agree?
Yes, done, thanks! > > I dont't think the following is an issue but just to be sure. > If a node has the flag haveTypedValue true before the apply() and false > afterwards the haveListValue/haveEmptyValue flags could still be true since > they are not reset at line 503. > I verified that the store always check haveTypedValue first and then > haveListValue/haveEmptyValue. > However a third party could use the public haveListValue()/haveEmpty... > methods directly and have incorrect results. (if he expects them to have > useful results on an untyped element) > > What do you think? I think that haveListValue/haveEmptyValue have no meaning if haveTypedValue is false. Therefore, they should not be used in this case. What do you mean by "third party"? These methods do not appear in the store api, If somebody is programming within the simple store, they shouldn't be considered a third party (either they know what they are doing, or their code is going to be reviewed by somebody who does know). -- https://code.launchpad.net/~markos-za/zorba/bugs2/+merge/78834 Your team Zorba Coders is subscribed to branch lp:zorba. -- Mailing list: https://launchpad.net/~zorba-coders Post to : firstname.lastname@example.org Unsubscribe : https://launchpad.net/~zorba-coders More help : https://help.launchpad.net/ListHelp