From 0269b82fd96bc5c613c9e04834d7c23678126d34 Mon Sep 17 00:00:00 2001 From: Gabor Greif Date: Fri, 14 Mar 2008 22:03:02 +0000 Subject: [PATCH] move the Use destructor where it belongs to llvm-svn: 48376 --- llvm/include/llvm/Use.h | 4 +++- llvm/include/llvm/Value.h | 6 +----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/llvm/include/llvm/Use.h b/llvm/include/llvm/Use.h index c5a3212ed83e..c81a903e8b0e 100644 --- a/llvm/include/llvm/Use.h +++ b/llvm/include/llvm/Use.h @@ -37,7 +37,9 @@ public: Use(Value *V, User *U) { init(V, U); } Use(const Use &U) { init(U.Val, U.U); } - inline ~Use(); + inline ~Use() { + if (Val) removeFromList(); + } /// Default ctor - This leaves the Use completely unitialized. The only thing /// that is valid to do with this use is to call the "init" method. diff --git a/llvm/include/llvm/Value.h b/llvm/include/llvm/Value.h index 0e9d2f1c73d7..4604dae6ed9e 100644 --- a/llvm/include/llvm/Value.h +++ b/llvm/include/llvm/Value.h @@ -46,7 +46,7 @@ typedef StringMapEntry ValueName; /// the super class of other important classes such as Instruction and Function. /// All Values have a Type. Type is not a subclass of Value. All types can have /// a name and they should belong to some Module. Setting the name on the Value -/// automatically update's the module's symbol table. +/// automatically updates the module's symbol table. /// /// Every value has a "use list" that keeps track of which other Values are /// using this Value. @@ -229,10 +229,6 @@ void Use::init(Value *v, User *user) { if (Val) Val->addUse(*this); } -Use::~Use() { - if (Val) removeFromList(); -} - void Use::set(Value *V) { if (Val) removeFromList(); Val = V;