| OLD | NEW |
| 1 /* | 1 /* |
| 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) |
| 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 | 74 |
| 75 CSSMutableStyleDeclaration::CSSMutableStyleDeclaration(CSSRule* parent, const CS
SProperty* const * properties, int numProperties) | 75 CSSMutableStyleDeclaration::CSSMutableStyleDeclaration(CSSRule* parent, const CS
SProperty* const * properties, int numProperties) |
| 76 : CSSStyleDeclaration(parent) | 76 : CSSStyleDeclaration(parent) |
| 77 , m_node(0) | 77 , m_node(0) |
| 78 , m_variableDependentValueCount(0) | 78 , m_variableDependentValueCount(0) |
| 79 , m_strictParsing(!parent || parent->useStrictParsing()) | 79 , m_strictParsing(!parent || parent->useStrictParsing()) |
| 80 #ifndef NDEBUG | 80 #ifndef NDEBUG |
| 81 , m_iteratorCount(0) | 81 , m_iteratorCount(0) |
| 82 #endif | 82 #endif |
| 83 { | 83 { |
| 84 m_properties.reserveCapacity(numProperties); | 84 m_properties.reserveInitialCapacity(numProperties); |
| 85 for (int i = 0; i < numProperties; ++i) { | 85 for (int i = 0; i < numProperties; ++i) { |
| 86 ASSERT(properties[i]); | 86 ASSERT(properties[i]); |
| 87 m_properties.append(*properties[i]); | 87 m_properties.append(*properties[i]); |
| 88 if (properties[i]->value()->isVariableDependentValue()) | 88 if (properties[i]->value()->isVariableDependentValue()) |
| 89 m_variableDependentValueCount++; | 89 m_variableDependentValueCount++; |
| 90 } | 90 } |
| 91 // FIXME: This allows duplicate properties. | 91 // FIXME: This allows duplicate properties. |
| 92 } | 92 } |
| 93 | 93 |
| 94 CSSMutableStyleDeclaration& CSSMutableStyleDeclaration::operator=(const CSSMutab
leStyleDeclaration& other) | 94 CSSMutableStyleDeclaration& CSSMutableStyleDeclaration::operator=(const CSSMutab
leStyleDeclaration& other) |
| (...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 695 | 695 |
| 696 if (m_properties.isEmpty()) | 696 if (m_properties.isEmpty()) |
| 697 return; | 697 return; |
| 698 | 698 |
| 699 // FIXME: This is always used with static sets and in that case constructing
the hash repeatedly is pretty pointless. | 699 // FIXME: This is always used with static sets and in that case constructing
the hash repeatedly is pretty pointless. |
| 700 HashSet<int> toRemove; | 700 HashSet<int> toRemove; |
| 701 for (unsigned i = 0; i < length; ++i) | 701 for (unsigned i = 0; i < length; ++i) |
| 702 toRemove.add(set[i]); | 702 toRemove.add(set[i]); |
| 703 | 703 |
| 704 Vector<CSSProperty> newProperties; | 704 Vector<CSSProperty> newProperties; |
| 705 newProperties.reserveCapacity(m_properties.size()); | 705 newProperties.reserveInitialCapacity(m_properties.size()); |
| 706 | 706 |
| 707 unsigned size = m_properties.size(); | 707 unsigned size = m_properties.size(); |
| 708 for (unsigned n = 0; n < size; ++n) { | 708 for (unsigned n = 0; n < size; ++n) { |
| 709 const CSSProperty& property = m_properties[n]; | 709 const CSSProperty& property = m_properties[n]; |
| 710 // Not quite sure if the isImportant test is needed but it matches the e
xisting behavior. | 710 // Not quite sure if the isImportant test is needed but it matches the e
xisting behavior. |
| 711 if (!property.isImportant()) { | 711 if (!property.isImportant()) { |
| 712 if (toRemove.contains(property.id())) | 712 if (toRemove.contains(property.id())) |
| 713 continue; | 713 continue; |
| 714 } | 714 } |
| 715 newProperties.append(property); | 715 newProperties.append(property); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 744 CSSProperty* CSSMutableStyleDeclaration::findPropertyWithId(int propertyID) | 744 CSSProperty* CSSMutableStyleDeclaration::findPropertyWithId(int propertyID) |
| 745 { | 745 { |
| 746 for (int n = m_properties.size() - 1 ; n >= 0; --n) { | 746 for (int n = m_properties.size() - 1 ; n >= 0; --n) { |
| 747 if (propertyID == m_properties[n].m_id) | 747 if (propertyID == m_properties[n].m_id) |
| 748 return &m_properties[n]; | 748 return &m_properties[n]; |
| 749 } | 749 } |
| 750 return 0; | 750 return 0; |
| 751 } | 751 } |
| 752 | 752 |
| 753 } // namespace WebCore | 753 } // namespace WebCore |
| OLD | NEW |