OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_FREELIST_H_ | 5 #ifndef VM_FREELIST_H_ |
6 #define VM_FREELIST_H_ | 6 #define VM_FREELIST_H_ |
7 | 7 |
| 8 #include "platform/assert.h" |
8 #include "vm/allocation.h" | 9 #include "vm/allocation.h" |
9 #include "vm/assert.h" | |
10 #include "vm/raw_object.h" | 10 #include "vm/raw_object.h" |
11 | 11 |
12 namespace dart { | 12 namespace dart { |
13 | 13 |
14 // FreeListElement describes a freelist element that has the same size | 14 // FreeListElement describes a freelist element that has the same size |
15 // as the smallest raw object. It uses the class_ field to point to a fake map | 15 // as the smallest raw object. It uses the class_ field to point to a fake map |
16 // to enable basic traversing of the heap and to identify the type of freelist | 16 // to enable basic traversing of the heap and to identify the type of freelist |
17 // element. It reuses the second word of the raw object to keep a next_ | 17 // element. It reuses the second word of the raw object to keep a next_ |
18 // pointer to chain elements of the list together. For objects larger than the | 18 // pointer to chain elements of the list together. For objects larger than the |
19 // minimal object size, the size of the element is embedded in the element at | 19 // minimal object size, the size of the element is embedded in the element at |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 void SplitElementAfterAndEnqueue(FreeListElement* element, intptr_t size); | 98 void SplitElementAfterAndEnqueue(FreeListElement* element, intptr_t size); |
99 | 99 |
100 FreeListElement* free_lists_[kNumLists + 1]; | 100 FreeListElement* free_lists_[kNumLists + 1]; |
101 | 101 |
102 DISALLOW_COPY_AND_ASSIGN(FreeList); | 102 DISALLOW_COPY_AND_ASSIGN(FreeList); |
103 }; | 103 }; |
104 | 104 |
105 } // namespace dart | 105 } // namespace dart |
106 | 106 |
107 #endif // VM_FREELIST_H_ | 107 #endif // VM_FREELIST_H_ |
OLD | NEW |