OLD | NEW |
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 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 DOCUMENT_POSITION_CONTAINED_BY = 0x10, | 163 DOCUMENT_POSITION_CONTAINED_BY = 0x10, |
164 DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20, | 164 DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20, |
165 }; | 165 }; |
166 | 166 |
167 #if ENABLE(OILPAN) | 167 #if ENABLE(OILPAN) |
168 // Override operator new to allocate Node subtype objects onto | 168 // Override operator new to allocate Node subtype objects onto |
169 // a dedicated heap. | 169 // a dedicated heap. |
170 GC_PLUGIN_IGNORE("crbug.com/443854") | 170 GC_PLUGIN_IGNORE("crbug.com/443854") |
171 void* operator new(size_t size) | 171 void* operator new(size_t size) |
172 { | 172 { |
173 return allocateObject(size); | 173 return allocateObject(size, false); |
174 } | 174 } |
175 static void* allocateObject(size_t size) | 175 static void* allocateObject(size_t size, bool isEager) |
176 { | 176 { |
177 ThreadState* state = ThreadStateFor<ThreadingTrait<Node>::Affinity>::sta
te(); | 177 ThreadState* state = ThreadStateFor<ThreadingTrait<Node>::Affinity>::sta
te(); |
178 return Heap::allocateOnHeapIndex(state, size, NodeHeapIndex, GCInfoTrait
<EventTarget>::index()); | 178 return Heap::allocateOnHeapIndex(state, size, isEager ? EagerSweepHeapIn
dex : NodeHeapIndex, GCInfoTrait<EventTarget>::index()); |
179 } | 179 } |
180 #else // !ENABLE(OILPAN) | 180 #else // !ENABLE(OILPAN) |
181 // All Nodes are placed in their own heap partition for security. | 181 // All Nodes are placed in their own heap partition for security. |
182 // See http://crbug.com/246860 for detail. | 182 // See http://crbug.com/246860 for detail. |
183 void* operator new(size_t); | 183 void* operator new(size_t); |
184 void operator delete(void*); | 184 void operator delete(void*); |
185 #endif | 185 #endif |
186 | 186 |
187 static void dumpStatistics(); | 187 static void dumpStatistics(); |
188 | 188 |
(...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
917 } // namespace blink | 917 } // namespace blink |
918 | 918 |
919 #ifndef NDEBUG | 919 #ifndef NDEBUG |
920 // Outside the WebCore namespace for ease of invocation from gdb. | 920 // Outside the WebCore namespace for ease of invocation from gdb. |
921 void showNode(const blink::Node*); | 921 void showNode(const blink::Node*); |
922 void showTree(const blink::Node*); | 922 void showTree(const blink::Node*); |
923 void showNodePath(const blink::Node*); | 923 void showNodePath(const blink::Node*); |
924 #endif | 924 #endif |
925 | 925 |
926 #endif // Node_h | 926 #endif // Node_h |
OLD | NEW |