mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2025-12-27 01:35:06 +01:00
Adding support for overlapping ranges to RangeMap.
When enabled, adding of a new range that overlaps with an existing one can be a successful operation. The range which ends at the higher address will be shrunk down by moving its start position to a higher address so that it does not overlap anymore. This change is required to fix http://crbug/611824. The actual fix will come in a separate CL. R=mmandlis@chromium.org Review URL: https://codereview.chromium.org/2029953003 .
This commit is contained in:
parent
8b7b28663f
commit
240ed57ee1
12 changed files with 598 additions and 89 deletions
|
|
@ -41,13 +41,14 @@
|
|||
#ifndef PROCESSOR_BASIC_CODE_MODULES_H__
|
||||
#define PROCESSOR_BASIC_CODE_MODULES_H__
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include "google_breakpad/processor/code_modules.h"
|
||||
#include "processor/linked_ptr.h"
|
||||
#include "processor/range_map.h"
|
||||
|
||||
namespace google_breakpad {
|
||||
|
||||
template<typename T> class linked_ptr;
|
||||
template<typename AddressType, typename EntryType> class RangeMap;
|
||||
|
||||
class BasicCodeModules : public CodeModules {
|
||||
public:
|
||||
// Creates a new BasicCodeModules object given any existing CodeModules
|
||||
|
|
@ -75,7 +76,7 @@ class BasicCodeModules : public CodeModules {
|
|||
|
||||
// The map used to contain each CodeModule, keyed by each CodeModule's
|
||||
// address range.
|
||||
RangeMap<uint64_t, linked_ptr<const CodeModule> > *map_;
|
||||
RangeMap<uint64_t, linked_ptr<const CodeModule> > map_;
|
||||
|
||||
private:
|
||||
// Disallow copy constructor and assignment operator.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue