]> granicus.if.org Git - clang/commitdiff
I lied. Kill off a few more Destroy methods
authorDouglas Gregor <dgregor@apple.com>
Sun, 25 Jul 2010 18:32:30 +0000 (18:32 +0000)
committerDouglas Gregor <dgregor@apple.com>
Sun, 25 Jul 2010 18:32:30 +0000 (18:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109379 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/Attr.h
include/clang/AST/DeclGroup.h
lib/AST/AttrImpl.cpp
lib/AST/DeclGroup.cpp

index 9faa62eef6f76df4f6a7e0dc60075ab3acc16a56..f06c4ab25f09c6dbcd2001743db60b1b5e59ecad 100644 (file)
@@ -49,6 +49,8 @@ private:
   bool Inherited : 1;
 
 protected:
+  virtual ~Attr();
+  
   void* operator new(size_t bytes) throw() {
     assert(0 && "Attrs cannot be allocated with regular 'new'.");
     return 0;
@@ -59,11 +61,8 @@ protected:
 
 protected:
   Attr(attr::Kind AK) : Next(0), AttrKind(AK), Inherited(false) {}
-  virtual ~Attr() {
-    assert(Next == 0 && "Destroy didn't work");
-  }
+  
 public:
-  virtual void Destroy(ASTContext &C);
 
   /// \brief Whether this attribute should be merged to new
   /// declarations.
@@ -110,8 +109,6 @@ protected:
   AttrWithString(attr::Kind AK, ASTContext &C, llvm::StringRef s);
   llvm::StringRef getString() const { return llvm::StringRef(Str, StrLen); }
   void ReplaceString(ASTContext &C, llvm::StringRef newS);
-public:
-  virtual void Destroy(ASTContext &C);
 };
 
 #define DEF_SIMPLE_ATTR(ATTR)                                           \
@@ -357,8 +354,6 @@ class NonNullAttr : public Attr {
 public:
   NonNullAttr(ASTContext &C, unsigned* arg_nums = 0, unsigned size = 0);
 
-  virtual void Destroy(ASTContext &C);
-
   typedef const unsigned *iterator;
   iterator begin() const { return ArgNums; }
   iterator end() const { return ArgNums + Size; }
@@ -545,8 +540,6 @@ public:
   InitPriorityAttr(unsigned priority) 
     : Attr(attr::InitPriority),  Priority(priority) {}
     
-  virtual void Destroy(ASTContext &C) { Attr::Destroy(C); }
-    
   unsigned getPriority() const { return Priority; }
     
   virtual Attr *clone(ASTContext &C) const;
index e1fae8f2ae6771e0eb031c5f9408c4cc767c4689..030291ea7345e3f8712b392321a4aead341fe02e 100644 (file)
@@ -34,7 +34,6 @@ private:
 
 public:
   static DeclGroup *Create(ASTContext &C, Decl **Decls, unsigned NumDecls);
-  void Destroy(ASTContext& C);
 
   unsigned size() const { return NumDecls; }
 
index b09ba895c0195a766e88507978acff17c6f4bf3c..7277bbce24bb44b2722cca8f8011e7384407c1cb 100644 (file)
 #include "clang/AST/ASTContext.h"
 using namespace clang;
 
-void Attr::Destroy(ASTContext &C) {
-  if (Next) {
-    Next->Destroy(C);
-    Next = 0;
-  }
-  this->~Attr();
-  C.Deallocate((void*)this);
-}
+Attr::~Attr() { }
 
 AttrWithString::AttrWithString(attr::Kind AK, ASTContext &C, llvm::StringRef s)
   : Attr(AK) {
@@ -32,11 +25,6 @@ AttrWithString::AttrWithString(attr::Kind AK, ASTContext &C, llvm::StringRef s)
   memcpy(const_cast<char*>(Str), s.data(), StrLen);
 }
 
-void AttrWithString::Destroy(ASTContext &C) {
-  C.Deallocate(const_cast<char*>(Str));  
-  Attr::Destroy(C);
-}
-
 void AttrWithString::ReplaceString(ASTContext &C, llvm::StringRef newS) {
   if (newS.size() > StrLen) {
     C.Deallocate(const_cast<char*>(Str));
@@ -60,12 +48,6 @@ NonNullAttr::NonNullAttr(ASTContext &C, unsigned* arg_nums, unsigned size)
   memcpy(ArgNums, arg_nums, sizeof(*ArgNums)*size);
 }
 
-void NonNullAttr::Destroy(ASTContext &C) {
-  if (ArgNums)
-    C.Deallocate(ArgNums);
-  Attr::Destroy(C);
-}
-
 #define DEF_SIMPLE_ATTR_CLONE(ATTR)                                     \
   Attr *ATTR##Attr::clone(ASTContext &C) const {                        \
     return ::new (C) ATTR##Attr;                                        \
index 434bf00d354e346aa56beb16d037c69927222840..036acc2d77a5ca9d0775326dd7883df17cc78779 100644 (file)
@@ -30,9 +30,3 @@ DeclGroup::DeclGroup(unsigned numdecls, Decl** decls) : NumDecls(numdecls) {
   assert(decls);
   memcpy(this+1, decls, numdecls * sizeof(*decls));
 }
-
-void DeclGroup::Destroy(ASTContext& C) {
-  // Decls are destroyed by the DeclContext.
-  this->~DeclGroup();
-  C.Deallocate((void*) this);
-}