1 //===-- ManagedStringPool.h - Managed String Pool ---------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // The strings allocated from a managed string pool are owned by the string
11 // pool and will be deleted together with the managed string pool.
13 //===----------------------------------------------------------------------===//
16 #ifndef LLVM_SUPPORT_MANAGED_STRING_H
17 #define LLVM_SUPPORT_MANAGED_STRING_H
19 #include "llvm/ADT/SmallVector.h"
24 /// ManagedStringPool - The strings allocated from a managed string pool are
25 /// owned by the string pool and will be deleted together with the managed
27 class ManagedStringPool {
28 SmallVector<std::string *, 8> Pool;
31 ManagedStringPool() {}
32 ~ManagedStringPool() {
33 SmallVector<std::string *, 8>::iterator Current = Pool.begin();
34 while (Current != Pool.end()) {
40 std::string *getManagedString(const char *S) {
41 std::string *Str = new std::string(S);