Author: labath Date: Thu May 30 01:21:25 2019 New Revision: 362069 URL: http://llvm.org/viewvc/llvm-project?rev=362069&view=rev Log: Make CompileUnit::GetSupportFiles return a const list
There's no reason for anyone to modify a list from outside of a symbol file (as that would break a lot of invariants that symbol files depend on). Make the function return a const FileSpecList and fix up a couple of places that were needlessly binding non-const references to the result of this function. Modified: lldb/trunk/include/lldb/Symbol/CompileUnit.h lldb/trunk/source/API/SBCompileUnit.cpp lldb/trunk/source/Symbol/CompileUnit.cpp Modified: lldb/trunk/include/lldb/Symbol/CompileUnit.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/CompileUnit.h?rev=362069&r1=362068&r2=362069&view=diff ============================================================================== --- lldb/trunk/include/lldb/Symbol/CompileUnit.h (original) +++ lldb/trunk/include/lldb/Symbol/CompileUnit.h Thu May 30 01:21:25 2019 @@ -232,7 +232,7 @@ public: /// /// \return /// A support file list object. - FileSpecList &GetSupportFiles(); + const FileSpecList &GetSupportFiles(); /// Get the compile unit's imported module list. /// Modified: lldb/trunk/source/API/SBCompileUnit.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBCompileUnit.cpp?rev=362069&r1=362068&r2=362069&view=diff ============================================================================== --- lldb/trunk/source/API/SBCompileUnit.cpp (original) +++ lldb/trunk/source/API/SBCompileUnit.cpp Thu May 30 01:21:25 2019 @@ -118,10 +118,9 @@ uint32_t SBCompileUnit::FindLineEntryInd uint32_t SBCompileUnit::GetNumSupportFiles() const { LLDB_RECORD_METHOD_CONST_NO_ARGS(uint32_t, SBCompileUnit, GetNumSupportFiles); - if (m_opaque_ptr) { - FileSpecList &support_files = m_opaque_ptr->GetSupportFiles(); - return support_files.GetSize(); - } + if (m_opaque_ptr) + return m_opaque_ptr->GetSupportFiles().GetSize(); + return 0; } @@ -155,9 +154,8 @@ SBFileSpec SBCompileUnit::GetSupportFile SBFileSpec sb_file_spec; if (m_opaque_ptr) { - FileSpecList &support_files = m_opaque_ptr->GetSupportFiles(); - FileSpec file_spec = support_files.GetFileSpecAtIndex(idx); - sb_file_spec.SetFileSpec(file_spec); + FileSpec spec = m_opaque_ptr->GetSupportFiles().GetFileSpecAtIndex(idx); + sb_file_spec.SetFileSpec(spec); } @@ -172,7 +170,7 @@ uint32_t SBCompileUnit::FindSupportFileI sb_file, full); if (m_opaque_ptr) { - FileSpecList &support_files = m_opaque_ptr->GetSupportFiles(); + const FileSpecList &support_files = m_opaque_ptr->GetSupportFiles(); return support_files.FindFileIndex(start_idx, sb_file.ref(), full); } return 0; Modified: lldb/trunk/source/Symbol/CompileUnit.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/CompileUnit.cpp?rev=362069&r1=362068&r2=362069&view=diff ============================================================================== --- lldb/trunk/source/Symbol/CompileUnit.cpp (original) +++ lldb/trunk/source/Symbol/CompileUnit.cpp Thu May 30 01:21:25 2019 @@ -248,7 +248,7 @@ uint32_t CompileUnit::FindLineEntry(uint // All the line table entries actually point to the version of the Compile // Unit that is in the support files (the one at 0 was artificially added.) // So prefer the one further on in the support files if it exists... - FileSpecList &support_files = GetSupportFiles(); + const FileSpecList &support_files = GetSupportFiles(); const bool full = true; file_idx = support_files.FindFileIndex( 1, support_files.GetFileSpecAtIndex(0), full); @@ -397,7 +397,7 @@ const std::vector<SourceModule> &Compile return m_imported_modules; } -FileSpecList &CompileUnit::GetSupportFiles() { +const FileSpecList &CompileUnit::GetSupportFiles() { if (m_support_files.GetSize() == 0) { if (m_flags.IsClear(flagsParsedSupportFiles)) { m_flags.Set(flagsParsedSupportFiles); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits