-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 3.1.1
-
Component/s: Validating Parser (XML Schema)
-
Labels:None
-
Environment:Not relevant, C++ syntax problem
ContentSpecType.cpp says at about line 260:
if ((fType & 0x0f) == ContentSpecNode::Choice)
{ max = max * (maxFirst > maxSecond) ? maxFirst : maxSecond; }Thanks to operator precedence max evaluates either to maxFirst or maxSecond, but never to max*maxFirst or max*maxSecond.
Adding parenthesis makes this do the right thing:
max = max * ((maxFirst > maxSecond) ? maxFirst : maxSecond);