Refactor some code. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90639 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/TargetData.cpp b/lib/Target/TargetData.cpp
index 1f576f5..b5077e4 100644
--- a/lib/Target/TargetData.cpp
+++ b/lib/Target/TargetData.cpp
@@ -367,6 +367,18 @@
     }
   }
 
+  void InvalidateEntry(const StructType *Ty) {
+    LayoutInfoTy::iterator I = this->find(Ty);
+    if (I == this->end()) return;
+
+    I->second->~StructLayout();
+    free(I->second);
+    this->erase(I);
+
+    if (Ty->isAbstract())
+      Ty->removeAbstractTypeUser(this);
+  }
+
   LayoutInfoTy::iterator end() {
     return LayoutInfo.end();
   }
@@ -427,15 +439,7 @@
   if (!LayoutMap) return;  // No cache.
   
   StructLayoutMap *STM = static_cast<StructLayoutMap*>(LayoutMap);
-  StructLayoutMap::LayoutInfoTy::iterator I = STM->find(Ty);
-  if (I == STM->end()) return;
-  
-  I->second->~StructLayout();
-  free(I->second);
-  STM->erase(I);
-
-  if (Ty->isAbstract())
-    Ty->removeAbstractTypeUser(STM);
+  STM->InvalidateEntry(Ty);
 }
 
 std::string TargetData::getStringRepresentation() const {