[llvm-commits] [llvm] r49534 - /llvm/branches/ggreif/use-diet/include/llvm/User.h
Gabor Greif
ggreif at gmail.com
Fri Apr 11 08:40:12 PDT 2008
Author: ggreif
Date: Fri Apr 11 10:40:12 2008
New Revision: 49534
URL: http://llvm.org/viewvc/llvm-project?rev=49534&view=rev
Log:
make sure that the operand list is zapped on destruction
Modified:
llvm/branches/ggreif/use-diet/include/llvm/User.h
Modified: llvm/branches/ggreif/use-diet/include/llvm/User.h
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/ggreif/use-diet/include/llvm/User.h?rev=49534&r1=49533&r2=49534&view=diff
==============================================================================
--- llvm/branches/ggreif/use-diet/include/llvm/User.h (original)
+++ llvm/branches/ggreif/use-diet/include/llvm/User.h Fri Apr 11 10:40:12 2008
@@ -239,11 +239,14 @@
User(const Type *Ty, unsigned vty, Use *OpList, unsigned NumOps)
: Value(Ty, vty), OperandList(OpList), NumOperands(NumOps) {}
public:
+ ~User() {
+ Use::zap(OperandList, OperandList + NumOperands);
+ }
void operator delete(void *Usr) {
User *Start = static_cast<User*>(Usr);
Use *Storage = static_cast<Use*>(Usr) - Start->NumOperands;
if (Storage == Start->OperandList)
- ::operator delete(Storage); // FIXME: destructors of Uses?
+ ::operator delete(Storage);
else ::operator delete(Usr);
}
public:
@@ -255,7 +258,7 @@
}
inline Use *allocHangoffUses(unsigned) const;
void dropHungoffUses(Use *U) {
- U->zap(U, U->getImpliedUser());
+ Use::zap(U, U->getImpliedUser());
}
Value *getOperand(unsigned i) const {
More information about the llvm-commits
mailing list