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

Side by Side Diff: Source/core/dom/Node.h

Issue 986113004: Oilpan: avoid disabling GC plugin checks over Node. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004-2011, 2014 Apple Inc. All rights reserved. 5 * Copyright (C) 2004-2011, 2014 Apple Inc. All rights reserved.
6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 WILL_HAVE_ALL_INSTANCES_ON_SAME_GC_HEAP(Node); 116 WILL_HAVE_ALL_INSTANCES_ON_SAME_GC_HEAP(Node);
117 117
118 #if ENABLE(OILPAN) 118 #if ENABLE(OILPAN)
119 #define NODE_BASE_CLASSES public EventTarget 119 #define NODE_BASE_CLASSES public EventTarget
120 #else 120 #else
121 // TreeShared should be the last to pack TreeShared::m_refCount and 121 // TreeShared should be the last to pack TreeShared::m_refCount and
122 // Node::m_nodeFlags on 64bit platforms. 122 // Node::m_nodeFlags on 64bit platforms.
123 #define NODE_BASE_CLASSES public EventTarget, public TreeShared<Node> 123 #define NODE_BASE_CLASSES public EventTarget, public TreeShared<Node>
124 #endif 124 #endif
125 125
126 class GC_PLUGIN_IGNORE("crbug.com/443854") Node : NODE_BASE_CLASSES { 126 class Node : NODE_BASE_CLASSES {
127 DEFINE_EVENT_TARGET_REFCOUNTING_WILL_BE_REMOVED(TreeShared<Node>); 127 DEFINE_EVENT_TARGET_REFCOUNTING_WILL_BE_REMOVED(TreeShared<Node>);
128 DEFINE_WRAPPERTYPEINFO(); 128 DEFINE_WRAPPERTYPEINFO();
129 friend class TreeScope; 129 friend class TreeScope;
130 friend class TreeScopeAdopter; 130 friend class TreeScopeAdopter;
131 public: 131 public:
132 enum NodeType { 132 enum NodeType {
133 ELEMENT_NODE = 1, 133 ELEMENT_NODE = 1,
134 ATTRIBUTE_NODE = 2, 134 ATTRIBUTE_NODE = 2,
135 TEXT_NODE = 3, 135 TEXT_NODE = 3,
136 CDATA_SECTION_NODE = 4, 136 CDATA_SECTION_NODE = 4,
(...skipping 23 matching lines...) Expand all
160 DOCUMENT_POSITION_CONTAINS = 0x08, 160 DOCUMENT_POSITION_CONTAINS = 0x08,
161 DOCUMENT_POSITION_CONTAINED_BY = 0x10, 161 DOCUMENT_POSITION_CONTAINED_BY = 0x10,
162 DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20, 162 DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20,
163 }; 163 };
164 164
165 #if ENABLE(OILPAN) 165 #if ENABLE(OILPAN)
166 // Node is now a GarbageCollected<EventTarget> instead of a GarbageCollected <Node>, which confuses Oilpan's 166 // Node is now a GarbageCollected<EventTarget> instead of a GarbageCollected <Node>, which confuses Oilpan's
167 // static type dispatching of typed heap for Nodes. We override GarbageColle cted<>'s operator new here, to put 167 // static type dispatching of typed heap for Nodes. We override GarbageColle cted<>'s operator new here, to put
168 // Node descendants into typed heap for Nodes. <http://crbug.com/443854> 168 // Node descendants into typed heap for Nodes. <http://crbug.com/443854>
169 using GarbageCollectedBase = EventTarget; 169 using GarbageCollectedBase = EventTarget;
170
171 GC_PLUGIN_IGNORE("crbug.com/443854")
170 void* operator new(size_t size) { return Heap::allocate<Node>(size); } 172 void* operator new(size_t size) { return Heap::allocate<Node>(size); }
171 #else // !ENABLE(OILPAN) 173 #else // !ENABLE(OILPAN)
172 // All Nodes are placed in their own heap partition for security. 174 // All Nodes are placed in their own heap partition for security.
173 // See http://crbug.com/246860 for detail. 175 // See http://crbug.com/246860 for detail.
174 void* operator new(size_t); 176 void* operator new(size_t);
175 void operator delete(void*); 177 void operator delete(void*);
176 #endif 178 #endif
177 179
178 static void dumpStatistics(); 180 static void dumpStatistics();
179 181
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after
901 } // namespace blink 903 } // namespace blink
902 904
903 #ifndef NDEBUG 905 #ifndef NDEBUG
904 // Outside the WebCore namespace for ease of invocation from gdb. 906 // Outside the WebCore namespace for ease of invocation from gdb.
905 void showNode(const blink::Node*); 907 void showNode(const blink::Node*);
906 void showTree(const blink::Node*); 908 void showTree(const blink::Node*);
907 void showNodePath(const blink::Node*); 909 void showNodePath(const blink::Node*);
908 #endif 910 #endif
909 911
910 #endif // Node_h 912 #endif // Node_h
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698