OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 30 matching lines...) Expand all Loading... |
41 class ListItemPropertyTraits<SVGPathSeg> { | 41 class ListItemPropertyTraits<SVGPathSeg> { |
42 public: | 42 public: |
43 typedef SVGPathSeg ItemPropertyType; | 43 typedef SVGPathSeg ItemPropertyType; |
44 // FIXME: Currently SVGPathSegitself is a tear-off. | 44 // FIXME: Currently SVGPathSegitself is a tear-off. |
45 typedef SVGPathSeg ItemTearOffType; | 45 typedef SVGPathSeg ItemTearOffType; |
46 | 46 |
47 static PassRefPtrWillBeRawPtr<ItemPropertyType> getValueForInsertionFromTear
Off(PassRefPtrWillBeRawPtr<ItemTearOffType> passNewItem, SVGElement* contextElem
ent, const QualifiedName& attributeName) | 47 static PassRefPtrWillBeRawPtr<ItemPropertyType> getValueForInsertionFromTear
Off(PassRefPtrWillBeRawPtr<ItemTearOffType> passNewItem, SVGElement* contextElem
ent, const QualifiedName& attributeName) |
48 { | 48 { |
49 ASSERT(attributeName == SVGNames::dAttr); | 49 ASSERT(attributeName == SVGNames::dAttr); |
50 RefPtrWillBeRawPtr<ItemTearOffType> newItem = passNewItem; | 50 RefPtrWillBeRawPtr<ItemTearOffType> newItem = passNewItem; |
| 51 |
| 52 // Spec: If newItem is already in a list, then a new SVGPathSeg object i
s created with the same values as newItem and this item is inserted into the lis
t. |
| 53 // Otherwise, newItem itself is inserted into the list. |
| 54 // https://svgwg.org/svg2-draft/paths.html#InterfaceSVGPathSegList |
| 55 if (newItem->ownerList()) |
| 56 newItem = newItem->clone(); |
| 57 |
51 newItem->setContextElement(contextElement); | 58 newItem->setContextElement(contextElement); |
52 return newItem.release(); | 59 return newItem.release(); |
53 } | 60 } |
54 | 61 |
55 static PassRefPtrWillBeRawPtr<ItemTearOffType> createTearOff(PassRefPtrWillB
eRawPtr<ItemPropertyType> passValue, SVGElement* contextElement, PropertyIsAnimV
alType, const QualifiedName&) | 62 static PassRefPtrWillBeRawPtr<ItemTearOffType> createTearOff(PassRefPtrWillB
eRawPtr<ItemPropertyType> passValue, SVGElement* contextElement, PropertyIsAnimV
alType, const QualifiedName&) |
56 { | 63 { |
57 RefPtrWillBeRawPtr<SVGPathSeg> value = passValue; | 64 RefPtrWillBeRawPtr<SVGPathSeg> value = passValue; |
58 value->setContextElement(contextElement); | 65 value->setContextElement(contextElement); |
59 return value.release(); | 66 return value.release(); |
60 } | 67 } |
(...skipping 10 matching lines...) Expand all Loading... |
71 } | 78 } |
72 | 79 |
73 private: | 80 private: |
74 SVGPathSegListTearOff(PassRefPtrWillBeRawPtr<SVGPathSegList> target, SVGElem
ent* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedNam
e& attributeName = QualifiedName::null()) | 81 SVGPathSegListTearOff(PassRefPtrWillBeRawPtr<SVGPathSegList> target, SVGElem
ent* contextElement, PropertyIsAnimValType propertyIsAnimVal, const QualifiedNam
e& attributeName = QualifiedName::null()) |
75 : SVGListPropertyTearOffHelper<SVGPathSegListTearOff, SVGPathSegList>(ta
rget, contextElement, propertyIsAnimVal, attributeName) { } | 82 : SVGListPropertyTearOffHelper<SVGPathSegListTearOff, SVGPathSegList>(ta
rget, contextElement, propertyIsAnimVal, attributeName) { } |
76 }; | 83 }; |
77 | 84 |
78 } // namespace blink | 85 } // namespace blink |
79 | 86 |
80 #endif // SVGPathSegListTearOff_h | 87 #endif // SVGPathSegListTearOff_h |
OLD | NEW |