Cleanup on the unified section list changes. Main changes are:
- ObjectFile::GetSymtab() and ObjectFile::ClearSymtab() no longer takes any flags
- Module coordinates with the object files and contain a unified section list so that object file and symbol file can share sections when they need to, yet contain their own sections.

Other cleanups:
- Fixed Symbol::GetByteSize() to not have the symbol table compute the byte sizes on the fly
- Modified the ObjectFileMachO class to compute symbol sizes all at once efficiently
- Modified the Symtab class to store a file address lookup table for more efficient lookups
- Removed Section::Finalize() and SectionList::Finalize() as they did nothing
- Improved performance of the detection of symbol files that have debug maps by excluding stripped files and core files, debug files, object files and stubs
- Added the ability to tell if an ObjectFile has been stripped with ObjectFile::IsStripped() (used this for the above performance improvement)

llvm-svn: 185990
diff --git a/lldb/source/Core/Section.cpp b/lldb/source/Core/Section.cpp
index cb565f0..492abec 100644
--- a/lldb/source/Core/Section.cpp
+++ b/lldb/source/Core/Section.cpp
@@ -292,8 +292,6 @@
 #pragma mark SectionList
 
 SectionList::SectionList () :
-    m_changed(false),
-    m_revision_id(0),
     m_sections()
 {
 }
@@ -303,22 +301,17 @@
 {
 }
 
-bool
-SectionList::Copy (SectionList *dest_section_list)
+SectionList &
+SectionList::operator = (const SectionList& rhs)
 {
-    if (dest_section_list)
-    {
-        dest_section_list->m_sections = m_sections;
-        dest_section_list->m_changed = true;
-        return true;
-    }
-    return false;
+    if (this != &rhs)
+        m_sections = rhs.m_sections;
+    return *this;
 }
 
 size_t
 SectionList::AddSection (const lldb::SectionSP& section_sp)
 {
-    m_changed = true;
     assert (section_sp.get());
     size_t section_index = m_sections.size();
     m_sections.push_back(section_sp);
@@ -331,7 +324,6 @@
 {
     if (idx < m_sections.size())
     {
-        m_changed = true;
         m_sections.erase (m_sections.begin() + idx);
         return true; 
     }
@@ -361,7 +353,6 @@
     size_t sect_idx = FindSectionIndex (sect_sp.get());
     if (sect_idx == UINT32_MAX)
     {
-        m_changed = true;
         sect_idx = AddSection (sect_sp);
     }
     return sect_idx;
@@ -375,7 +366,6 @@
     {
         if ((*sect_iter)->GetID() == sect_id)
         {
-            m_changed = true;
             *sect_iter = sect_sp;
             return true;
         }
@@ -552,22 +542,3 @@
     }
     return count;
 }
-
-void
-SectionList::Finalize ()
-{
-    for (const_iterator si = m_sections.begin(), se = m_sections.end();
-         si != se;
-         ++si)
-    {
-        Section *sect = si->get();
-        
-        sect->GetChildren().Finalize();
-    }
-
-    if (m_changed)
-    {
-        m_revision_id++;
-        m_changed = false;
-    }
-}