diff options
author | Chris Lattner <sabre@nondot.org> | 2004-11-19 16:39:04 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-11-19 16:39:04 +0000 |
commit | 5b2d43aad08a1f8f6f48a946b5c587524b171ac9 (patch) | |
tree | 04d01c95f35be0d9f9c174a10cfc81870471ce48 | |
parent | c5129c1c9c3806f4423b4999ae288fdc71234328 (diff) | |
download | external_llvm-5b2d43aad08a1f8f6f48a946b5c587524b171ac9.zip external_llvm-5b2d43aad08a1f8f6f48a946b5c587524b171ac9.tar.gz external_llvm-5b2d43aad08a1f8f6f48a946b5c587524b171ac9.tar.bz2 |
Add static functions to clear singleton maps. Patch contributed by
Morten Ofstad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17994 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Constant.h | 5 | ||||
-rw-r--r-- | include/llvm/Type.h | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/include/llvm/Constant.h b/include/llvm/Constant.h index 789fe70..0d098a6 100644 --- a/include/llvm/Constant.h +++ b/include/llvm/Constant.h @@ -92,6 +92,11 @@ public: "implemented for all constants that have operands!"); assert(0 && "Constants that do not have operands cannot be using 'From'!"); } + + /// clearAllValueMaps - This method frees all internal memory used by the + /// constant subsystem, which can be used in environments where this memory + /// is otherwise reported as a leak. + static void clearAllValueMaps(); }; } // End llvm namespace diff --git a/include/llvm/Type.h b/include/llvm/Type.h index 9602fd5..18b8adb 100644 --- a/include/llvm/Type.h +++ b/include/llvm/Type.h @@ -288,7 +288,7 @@ public: } void dropRef() const { - assert(isAbstract() && "Cannot drop a refernce to a non-abstract type!"); + assert(isAbstract() && "Cannot drop a reference to a non-abstract type!"); assert(RefCount && "No objects are currently referencing this object!"); // If this is the last PATypeHolder using this object, and there are no @@ -296,6 +296,12 @@ public: if (--RefCount == 0) RefCountIsZero(); } + + /// clearAllTypeMaps - This method frees all internal memory used by the + /// type subsystem, which can be used in environments where this memory is + /// otherwise reported as a leak. + static void clearAllTypeMaps(); + private: /// isSizedDerivedType - Derived types like structures and arrays are sized /// iff all of the members of the type are sized as well. Since asking for |