| OLD | NEW |
| 1 // Copyright 2014 Google Inc. All Rights Reserved. | 1 // Copyright 2014 Google Inc. All Rights Reserved. |
| 2 // | 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
| 6 // | 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // | 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| (...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 // allocator makes use of the process heap. The process heap may itself | 426 // allocator makes use of the process heap. The process heap may itself |
| 427 // be locked when we try to use this, hence a deadlock can occur. This ends | 427 // be locked when we try to use this, hence a deadlock can occur. This ends |
| 428 // up being a null terminated array of HeapInterface*. | 428 // up being a null terminated array of HeapInterface*. |
| 429 // Under lock_. | 429 // Under lock_. |
| 430 HeapInterface** locked_heaps_; | 430 HeapInterface** locked_heaps_; |
| 431 | 431 |
| 432 // Indicates if we use page protection to prevent invalid accesses to a block. | 432 // Indicates if we use page protection to prevent invalid accesses to a block. |
| 433 bool enable_page_protections_; | 433 bool enable_page_protections_; |
| 434 | 434 |
| 435 // The registry cache that we use to store the allocation stack ID of the | 435 // The registry cache that we use to store the allocation stack ID of the |
| 436 // corrupt block for which we've already reported an error. | 436 // corrupt block for which we've already reported an error. This isn't used |
| 437 RegistryCache corrupt_block_registry_cache_; | 437 // in processes where registry access is blocked (ie, Chrome renderers). |
| 438 std::unique_ptr<RegistryCache> corrupt_block_registry_cache_; |
| 438 | 439 |
| 439 private: | 440 private: |
| 440 // Background thread that takes care of trimming the quarantine | 441 // Background thread that takes care of trimming the quarantine |
| 441 // asynchronously. | 442 // asynchronously. |
| 442 base::Lock deferred_free_thread_lock_; | 443 base::Lock deferred_free_thread_lock_; |
| 443 // Under deferred_free_thread_lock_. | 444 // Under deferred_free_thread_lock_. |
| 444 std::unique_ptr<DeferredFreeThread> deferred_free_thread_; | 445 std::unique_ptr<DeferredFreeThread> deferred_free_thread_; |
| 445 | 446 |
| 446 DISALLOW_COPY_AND_ASSIGN(BlockHeapManager); | 447 DISALLOW_COPY_AND_ASSIGN(BlockHeapManager); |
| 447 }; | 448 }; |
| 448 | 449 |
| 449 } // namespace heap_managers | 450 } // namespace heap_managers |
| 450 } // namespace asan | 451 } // namespace asan |
| 451 } // namespace agent | 452 } // namespace agent |
| 452 | 453 |
| 453 #endif // SYZYGY_AGENT_ASAN_HEAP_MANAGERS_BLOCK_HEAP_MANAGER_H_ | 454 #endif // SYZYGY_AGENT_ASAN_HEAP_MANAGERS_BLOCK_HEAP_MANAGER_H_ |
| OLD | NEW |