ART: Add Size() to CollectionMap

Add a Size() override. Make base function pure to avoid future errors.
Fixes clang-tidy's bugprone-virtual-near-miss.

Bug: 32619234
Test: mmma art
Change-Id: I4112ea4d652a39a6b18712fb649823f086dd5b38
diff --git a/dexlayout/dex_ir.h b/dexlayout/dex_ir.h
index 178a4d4..598f7df 100644
--- a/dexlayout/dex_ir.h
+++ b/dexlayout/dex_ir.h
@@ -215,7 +215,7 @@
 
   uint32_t GetOffset() const { return offset_; }
   void SetOffset(uint32_t new_offset) { offset_ = new_offset; }
-  virtual uint32_t Size() const { return 0U; }
+  virtual uint32_t Size() const = 0;
 
  private:
   // Start out unassigned.
diff --git a/dexlayout/dex_ir_builder.cc b/dexlayout/dex_ir_builder.cc
index ca6ff9e..947d3d5 100644
--- a/dexlayout/dex_ir_builder.cc
+++ b/dexlayout/dex_ir_builder.cc
@@ -115,6 +115,8 @@
     return it != collection_.end() ? it->second : nullptr;
   }
 
+  uint32_t Size() const override { return size(); }
+
   // Lower case for template interop with std::map.
   uint32_t size() const { return collection_.size(); }
   std::map<uint32_t, T*>& Collection() { return collection_; }