Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1320)

Side by Side Diff: third_party/WebKit/Source/core/animation/UnderlyingValueOwner.cpp

Issue 2080623002: Revert "Remove OwnPtr from Blink." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/animation/UnderlyingValueOwner.h" 5 #include "core/animation/UnderlyingValueOwner.h"
6 6
7 #include <memory>
8
9 namespace blink { 7 namespace blink {
10 8
11 struct NullValueWrapper { 9 struct NullValueWrapper {
12 NullValueWrapper() : value(nullptr) {} 10 NullValueWrapper() : value(nullptr) {}
13 const InterpolationValue value; 11 const InterpolationValue value;
14 }; 12 };
15 13
16 const InterpolationValue& UnderlyingValueOwner::value() const 14 const InterpolationValue& UnderlyingValueOwner::value() const
17 { 15 {
18 DEFINE_STATIC_LOCAL(NullValueWrapper, nullValueWrapper, ()); 16 DEFINE_STATIC_LOCAL(NullValueWrapper, nullValueWrapper, ());
(...skipping 18 matching lines...) Expand all
37 } 35 }
38 36
39 void UnderlyingValueOwner::set(const InterpolationType& type, InterpolationValue && value) 37 void UnderlyingValueOwner::set(const InterpolationType& type, InterpolationValue && value)
40 { 38 {
41 ASSERT(value); 39 ASSERT(value);
42 m_type = &type; 40 m_type = &type;
43 m_valueOwner = std::move(value); 41 m_valueOwner = std::move(value);
44 m_value = &m_valueOwner; 42 m_value = &m_valueOwner;
45 } 43 }
46 44
47 void UnderlyingValueOwner::set(std::unique_ptr<TypedInterpolationValue> value) 45 void UnderlyingValueOwner::set(PassOwnPtr<TypedInterpolationValue> value)
48 { 46 {
49 if (value) 47 if (value)
50 set(value->type(), std::move(value->mutableValue())); 48 set(value->type(), std::move(value->mutableValue()));
51 else 49 else
52 set(nullptr); 50 set(nullptr);
53 } 51 }
54 52
55 void UnderlyingValueOwner::set(const TypedInterpolationValue* value) 53 void UnderlyingValueOwner::set(const TypedInterpolationValue* value)
56 { 54 {
57 if (value) 55 if (value)
58 set(value->type(), value->value()); 56 set(value->type(), value->value());
59 else 57 else
60 set(nullptr); 58 set(nullptr);
61 } 59 }
62 60
63 InterpolationValue& UnderlyingValueOwner::mutableValue() 61 InterpolationValue& UnderlyingValueOwner::mutableValue()
64 { 62 {
65 ASSERT(m_type && m_value); 63 ASSERT(m_type && m_value);
66 if (!m_valueOwner) { 64 if (!m_valueOwner) {
67 m_valueOwner = m_value->clone(); 65 m_valueOwner = m_value->clone();
68 m_value = &m_valueOwner; 66 m_value = &m_valueOwner;
69 } 67 }
70 return m_valueOwner; 68 return m_valueOwner;
71 } 69 }
72 70
73 } // namespace blink 71 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698