Fixed a bug in the refactoring.
diff --git a/src/dwarf.cc b/src/dwarf.cc
index d086c60..2dd939c 100644
--- a/src/dwarf.cc
+++ b/src/dwarf.cc
@@ -176,13 +176,14 @@
 void ReadRangeList(const CU& cu, uint64_t low_pc, string_view name,
                    RangeSink* sink, string_view* data) {
   std::string name_str(name);
+  uint64_t max_address = cu.unit_sizes().MaxAddress();
   while (true) {
     uint64_t start, end;
     start = cu.unit_sizes().ReadAddress(data);
     end = cu.unit_sizes().ReadAddress(data);
     if (start == 0 && end == 0) {
       return;
-    } else if (start == cu.unit_sizes().MaxAddress()) {
+    } else if (start == max_address) {
       low_pc = end;
     } else {
       uint64_t size = end - start;
diff --git a/src/dwarf/attr.cc b/src/dwarf/attr.cc
index 502c3f5..9bbad8f 100644
--- a/src/dwarf/attr.cc
+++ b/src/dwarf/attr.cc
@@ -187,10 +187,8 @@
       return AttrValue(form, ReadBytes(4, data));
     case DW_FORM_data8:
       return AttrValue(form, ReadBytes(8, data));
-    case DW_FORM_rnglistx: {
-      auto val = AttrValue(form, ReadLEB128<uint64_t>(data));
-      return val;
-    }
+    case DW_FORM_rnglistx:
+      return AttrValue(form, ReadLEB128<uint64_t>(data));
 
     // Bloaty doesn't currently care about any bool or signed data.
     // So we fudge it a bit and just stuff these in a uint64.
diff --git a/src/dwarf/debug_info.cc b/src/dwarf/debug_info.cc
index b2bac09..1f81fe8 100644
--- a/src/dwarf/debug_info.cc
+++ b/src/dwarf/debug_info.cc
@@ -95,12 +95,12 @@
 bool CUIter::NextCU(InfoReader& reader, CU* cu) {
   if (next_unit_.empty()) return false;
 
-  string_view unit_range = next_unit_;
-  string_view data_range = cu->unit_sizes_.ReadInitialLength(&next_unit_);
-  cu->unit_range_ = unit_range.substr(
-      0, data_range.size() + (data_range.data() - unit_range.data()));
-
   CompilationUnitSizes unit_sizes;
+  string_view unit_range = next_unit_;
+  string_view data_range = unit_sizes.ReadInitialLength(&next_unit_);
+  size_t initial_length_len = data_range.data() - unit_range.data();
+  unit_range = unit_range.substr(0, data_range.size() + initial_length_len);
+
   unit_sizes.ReadDWARFVersion(&data_range);
 
   if (unit_sizes.dwarf_version() > 5) {
@@ -138,6 +138,7 @@
   cu->dwarf_ = &reader.dwarf_;
   cu->unit_sizes_ = unit_sizes;
   cu->data_range_ = data_range;
+  cu->unit_range_ = unit_range;
 
   // We now read the root-level DIE in order to populate these base addresses
   // on which other attributes depend.