diff options
Diffstat (limited to 'contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp')
| -rw-r--r-- | contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp | 28 | 
1 files changed, 25 insertions, 3 deletions
diff --git a/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp b/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp index 306af1d1ef6b..85d9dbb8c7df 100644 --- a/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp +++ b/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp @@ -35,14 +35,36 @@ void StringsAndChecksumsRef::initializeStrings(    assert(SR.kind() == DebugSubsectionKind::StringTable);    assert(!Strings && "Found a string table even though we already have one!"); -  OwnedStrings = llvm::make_unique<DebugStringTableSubsectionRef>(); +  OwnedStrings = std::make_shared<DebugStringTableSubsectionRef>();    consumeError(OwnedStrings->initialize(SR.getRecordData()));    Strings = OwnedStrings.get();  } +void StringsAndChecksumsRef::reset() { +  resetStrings(); +  resetChecksums(); +} + +void StringsAndChecksumsRef::resetStrings() { +  OwnedStrings.reset(); +  Strings = nullptr; +} + +void StringsAndChecksumsRef::resetChecksums() { +  OwnedChecksums.reset(); +  Checksums = nullptr; +} + +void StringsAndChecksumsRef::setStrings( +    const DebugStringTableSubsectionRef &StringsRef) { +  OwnedStrings = std::make_shared<DebugStringTableSubsectionRef>(); +  *OwnedStrings = StringsRef; +  Strings = OwnedStrings.get(); +} +  void StringsAndChecksumsRef::setChecksums(      const DebugChecksumsSubsectionRef &CS) { -  OwnedChecksums = llvm::make_unique<DebugChecksumsSubsectionRef>(); +  OwnedChecksums = std::make_shared<DebugChecksumsSubsectionRef>();    *OwnedChecksums = CS;    Checksums = OwnedChecksums.get();  } @@ -53,7 +75,7 @@ void StringsAndChecksumsRef::initializeChecksums(    if (Checksums)      return; -  OwnedChecksums = llvm::make_unique<DebugChecksumsSubsectionRef>(); +  OwnedChecksums = std::make_shared<DebugChecksumsSubsectionRef>();    consumeError(OwnedChecksums->initialize(FCR.getRecordData()));    Checksums = OwnedChecksums.get();  }  | 
