void SVGMotionSMILAnimationFunction::CheckKeyPoints() { if (!HasAttr(nsGkAtoms::keyPoints)) return; // attribute is ignored for calcMode="paced" (even if it's got errors) if (GetCalcMode() == CALC_PACED) { SetKeyPointsErrorFlag(false); } if (mKeyPoints.IsEmpty()) { // keyPoints attr is set, but array is empty => it failed preliminary checks SetKeyPointsErrorFlag(true); return; } // Nothing else to check -- we can catch all keyPoints errors elsewhere. // - Formatting & range issues will be caught in SetKeyPoints, and will // result in an empty mKeyPoints array, which will drop us into the error // case above. // - Number-of-entries issues will be caught in CheckKeyTimes (and flagged // as a problem with |keyTimes|), since we use our keyPoints entries to // populate the "values" list, and that list's count gets passed to // CheckKeyTimes. }
void SVGMotionSMILAnimationFunction::UnsetKeyPoints() { mKeyPoints.Clear(); SetKeyPointsErrorFlag(false); mHasChanged = true; }
void SVGMotionSMILAnimationFunction::CheckKeyPoints() { if (!HasAttr(nsGkAtoms::keyPoints)) return; // attribute is ignored for calcMode="paced" (even if it's got errors) if (GetCalcMode() == CALC_PACED) { SetKeyPointsErrorFlag(false); } if (mKeyPoints.Length() != mKeyTimes.Length()) { // there must be exactly as many keyPoints as keyTimes SetKeyPointsErrorFlag(true); return; } // Nothing else to check -- we can catch all keyPoints errors elsewhere. // - Formatting & range issues will be caught in SetKeyPoints, and will // result in an empty mKeyPoints array, which will drop us into the error // case above. }