OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
738 SMILTime clockValue = parseClockValue(value); | 738 SMILTime clockValue = parseClockValue(value); |
739 m_cachedRepeatDur = clockValue <= 0 ? SMILTime::unresolved() : clockValue; | 739 m_cachedRepeatDur = clockValue <= 0 ? SMILTime::unresolved() : clockValue; |
740 return m_cachedRepeatDur; | 740 return m_cachedRepeatDur; |
741 } | 741 } |
742 | 742 |
743 // So a count is not really a time but let just all pretend we did not notice. | 743 // So a count is not really a time but let just all pretend we did not notice. |
744 SMILTime SVGSMILElement::repeatCount() const | 744 SMILTime SVGSMILElement::repeatCount() const |
745 { | 745 { |
746 if (m_cachedRepeatCount != invalidCachedTime) | 746 if (m_cachedRepeatCount != invalidCachedTime) |
747 return m_cachedRepeatCount; | 747 return m_cachedRepeatCount; |
| 748 SMILTime computedRepeatCount = SMILTime::unresolved(); |
748 const AtomicString& value = fastGetAttribute(SVGNames::repeatCountAttr); | 749 const AtomicString& value = fastGetAttribute(SVGNames::repeatCountAttr); |
749 if (value.isNull()) | 750 if (!value.isNull()) { |
750 return SMILTime::unresolved(); | 751 DEFINE_STATIC_LOCAL(const AtomicString, indefiniteValue, ("indefinite",
AtomicString::ConstructFromLiteral)); |
751 | 752 if (value == indefiniteValue) { |
752 DEFINE_STATIC_LOCAL(const AtomicString, indefiniteValue, ("indefinite", Atom
icString::ConstructFromLiteral)); | 753 computedRepeatCount = SMILTime::indefinite(); |
753 if (value == indefiniteValue) | 754 } else { |
754 return SMILTime::indefinite(); | 755 bool ok; |
755 bool ok; | 756 double result = value.string().toDouble(&ok); |
756 double result = value.string().toDouble(&ok); | 757 if (ok && result > 0) |
757 return m_cachedRepeatCount = ok && result > 0 ? result : SMILTime::unresolve
d(); | 758 computedRepeatCount = result; |
| 759 } |
| 760 } |
| 761 m_cachedRepeatCount = computedRepeatCount; |
| 762 return m_cachedRepeatCount; |
758 } | 763 } |
759 | 764 |
760 SMILTime SVGSMILElement::maxValue() const | 765 SMILTime SVGSMILElement::maxValue() const |
761 { | 766 { |
762 if (m_cachedMax != invalidCachedTime) | 767 if (m_cachedMax != invalidCachedTime) |
763 return m_cachedMax; | 768 return m_cachedMax; |
764 const AtomicString& value = fastGetAttribute(SVGNames::maxAttr); | 769 const AtomicString& value = fastGetAttribute(SVGNames::maxAttr); |
765 SMILTime result = parseClockValue(value); | 770 SMILTime result = parseClockValue(value); |
766 return m_cachedMax = (result.isUnresolved() || result < 0) ? SMILTime::indef
inite() : result; | 771 return m_cachedMax = (result.isUnresolved() || result < 0) ? SMILTime::indef
inite() : result; |
767 } | 772 } |
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1312 if (eventType == "repeatn") { | 1317 if (eventType == "repeatn") { |
1313 unsigned repeatEventCount = m_repeatEventCountList.first(); | 1318 unsigned repeatEventCount = m_repeatEventCountList.first(); |
1314 m_repeatEventCountList.remove(0); | 1319 m_repeatEventCountList.remove(0); |
1315 dispatchEvent(RepeatEvent::create(eventType, repeatEventCount)); | 1320 dispatchEvent(RepeatEvent::create(eventType, repeatEventCount)); |
1316 } else { | 1321 } else { |
1317 dispatchEvent(Event::create(eventType)); | 1322 dispatchEvent(Event::create(eventType)); |
1318 } | 1323 } |
1319 } | 1324 } |
1320 | 1325 |
1321 } | 1326 } |
OLD | NEW |