OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef CONTENT_COMMON_DISCARDABLE_SHARED_MEMORY_HEAP_H_ | 5 #ifndef CONTENT_COMMON_DISCARDABLE_SHARED_MEMORY_HEAP_H_ |
6 #define CONTENT_COMMON_DISCARDABLE_SHARED_MEMORY_HEAP_H_ | 6 #define CONTENT_COMMON_DISCARDABLE_SHARED_MEMORY_HEAP_H_ |
7 | 7 |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/containers/hash_tables.h" | 9 #include "base/containers/hash_tables.h" |
10 #include "base/containers/linked_list.h" | 10 #include "base/containers/linked_list.h" |
(...skipping 12 matching lines...) Expand all Loading... | |
23 // is used to keep track of free blocks. | 23 // is used to keep track of free blocks. |
24 class CONTENT_EXPORT DiscardableSharedMemoryHeap { | 24 class CONTENT_EXPORT DiscardableSharedMemoryHeap { |
25 public: | 25 public: |
26 class CONTENT_EXPORT Span : public base::LinkNode<Span> { | 26 class CONTENT_EXPORT Span : public base::LinkNode<Span> { |
27 public: | 27 public: |
28 ~Span(); | 28 ~Span(); |
29 | 29 |
30 base::DiscardableSharedMemory* shared_memory() { return shared_memory_; } | 30 base::DiscardableSharedMemory* shared_memory() { return shared_memory_; } |
31 size_t start() const { return start_; } | 31 size_t start() const { return start_; } |
32 size_t length() const { return length_; } | 32 size_t length() const { return length_; } |
33 void set_is_locked(bool is_locked) { is_locked_ = is_locked; } | |
33 | 34 |
34 private: | 35 private: |
35 friend class DiscardableSharedMemoryHeap; | 36 friend class DiscardableSharedMemoryHeap; |
36 | 37 |
37 Span(base::DiscardableSharedMemory* shared_memory, | 38 Span(base::DiscardableSharedMemory* shared_memory, |
38 size_t start, | 39 size_t start, |
39 size_t length); | 40 size_t length); |
40 | 41 |
41 base::DiscardableSharedMemory* shared_memory_; | 42 base::DiscardableSharedMemory* shared_memory_; |
42 size_t start_; | 43 size_t start_; |
43 size_t length_; | 44 size_t length_; |
45 bool is_locked_; | |
reveman
2015/10/01 10:34:40
please initialize this to false in ctor.
ssid
2015/10/01 14:08:46
Done.
| |
44 | 46 |
45 DISALLOW_COPY_AND_ASSIGN(Span); | 47 DISALLOW_COPY_AND_ASSIGN(Span); |
46 }; | 48 }; |
47 | 49 |
48 explicit DiscardableSharedMemoryHeap(size_t block_size); | 50 explicit DiscardableSharedMemoryHeap(size_t block_size); |
49 ~DiscardableSharedMemoryHeap(); | 51 ~DiscardableSharedMemoryHeap(); |
50 | 52 |
51 // Grow heap using |shared_memory| and return a span for this new memory. | 53 // Grow heap using |shared_memory| and return a span for this new memory. |
52 // |shared_memory| must be aligned to the block size and |size| must be a | 54 // |shared_memory| must be aligned to the block size and |size| must be a |
53 // multiple of the block size. |deleted_callback| is called when | 55 // multiple of the block size. |deleted_callback| is called when |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
168 // is a free list of runs that consist of k blocks. The 256th entry is a | 170 // is a free list of runs that consist of k blocks. The 256th entry is a |
169 // free list of runs that have length >= 256 blocks. | 171 // free list of runs that have length >= 256 blocks. |
170 base::LinkedList<Span> free_spans_[256]; | 172 base::LinkedList<Span> free_spans_[256]; |
171 | 173 |
172 DISALLOW_COPY_AND_ASSIGN(DiscardableSharedMemoryHeap); | 174 DISALLOW_COPY_AND_ASSIGN(DiscardableSharedMemoryHeap); |
173 }; | 175 }; |
174 | 176 |
175 } // namespace content | 177 } // namespace content |
176 | 178 |
177 #endif // CONTENT_COMMON_DISCARDABLE_SHARED_MEMORY_HEAP_H_ | 179 #endif // CONTENT_COMMON_DISCARDABLE_SHARED_MEMORY_HEAP_H_ |
OLD | NEW |