diff options
Diffstat (limited to 'lib/VMCore/Module.cpp')
-rw-r--r-- | lib/VMCore/Module.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/VMCore/Module.cpp b/lib/VMCore/Module.cpp index 4ab8bb0..5fc11d1 100644 --- a/lib/VMCore/Module.cpp +++ b/lib/VMCore/Module.cpp @@ -6,6 +6,7 @@ #include "llvm/Module.h" #include "llvm/Method.h" +#include "llvm/GlobalVariable.h" #include "llvm/BasicBlock.h" #include "llvm/InstrTypes.h" #include "llvm/ValueHolderImpl.h" @@ -15,15 +16,18 @@ // Instantiate Templates - This ugliness is the price we have to pay // for having a DefHolderImpl.h file seperate from DefHolder.h! :( // +template class ValueHolder<GlobalVariable, Module, Module>; template class ValueHolder<Method, Module, Module>; Module::Module() : Value(Type::VoidTy, Value::ModuleVal, ""), SymTabValue(this), - MethodList(this, this) { + GlobalList(this, this), MethodList(this, this) { } Module::~Module() { dropAllReferences(); + GlobalList.delete_all(); + GlobalList.setParent(0); MethodList.delete_all(); MethodList.setParent(0); } @@ -46,6 +50,12 @@ void Module::dropAllReferences() { // reduceApply - Apply the specified function to all of the methods in this // module. The result values are or'd together and the result is returned. // +bool Module::reduceApply(bool (*Func)(GlobalVariable*)) { + return reduce_apply_bool(gbegin(), gend(), Func); +} +bool Module::reduceApply(bool (*Func)(const GlobalVariable*)) const { + return reduce_apply_bool(gbegin(), gend(), Func); +} bool Module::reduceApply(bool (*Func)(Method*)) { return reduce_apply_bool(begin(), end(), Func); } |