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

Side by Side Diff: third_party/WebKit/Source/core/style/DataRef.h

Issue 2345543002: debugging for crbug.com/646539
Patch Set: 3 TUs, 2 .h Created 4 years, 3 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 /* 1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2005, 2008 Apple Inc. All rights reserved. 5 * Copyright (C) 2003, 2005, 2008 Apple Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 21 matching lines...) Expand all
32 template <typename T> class DataRef { 32 template <typename T> class DataRef {
33 USING_FAST_MALLOC(DataRef); 33 USING_FAST_MALLOC(DataRef);
34 public: 34 public:
35 const T* get() const { return m_data.get(); } 35 const T* get() const { return m_data.get(); }
36 36
37 const T& operator*() const { return *get(); } 37 const T& operator*() const { return *get(); }
38 const T* operator->() const { return get(); } 38 const T* operator->() const { return get(); }
39 39
40 T* access() 40 T* access()
41 { 41 {
42 if (!m_data->hasOneRef())
43 m_data = m_data->copy();
44 return m_data.get(); 42 return m_data.get();
45 } 43 }
46 44
47 void init() 45 void init()
48 { 46 {
49 ASSERT(!m_data); 47 ASSERT(!m_data);
50 m_data = T::create(); 48 m_data = T::create();
51 } 49 }
52 50
53 bool operator==(const DataRef<T>& o) const 51 bool operator==(const DataRef<T>& o) const
(...skipping 11 matching lines...) Expand all
65 } 63 }
66 64
67 void operator=(std::nullptr_t) { m_data = nullptr; } 65 void operator=(std::nullptr_t) { m_data = nullptr; }
68 private: 66 private:
69 RefPtr<T> m_data; 67 RefPtr<T> m_data;
70 }; 68 };
71 69
72 } // namespace blink 70 } // namespace blink
73 71
74 #endif // DataRef_h 72 #endif // DataRef_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/style/ComputedStyle.cpp ('k') | third_party/WebKit/Source/core/style/StyleRareInheritedData.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698