Changes in directory llvm/lib/Support:
PluginLoader.cpp updated: 1.16 -> 1.17 --- Log message: dynamically allocate plugin space as needed --- Diffs of the changes: (+12 -5) PluginLoader.cpp | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-) Index: llvm/lib/Support/PluginLoader.cpp diff -u llvm/lib/Support/PluginLoader.cpp:1.16 llvm/lib/Support/PluginLoader.cpp:1.17 --- llvm/lib/Support/PluginLoader.cpp:1.16 Thu Jan 26 12:36:43 2006 +++ llvm/lib/Support/PluginLoader.cpp Thu Jan 26 13:38:58 2006 @@ -19,13 +19,17 @@ using namespace llvm; -std::vector<std::string> plugins; +static std::vector<std::string>* plugins; void PluginLoader::operator=(const std::string &Filename) { std::string ErrorMessage; + + if (!plugins) + plugins = new std::vector<std::string>(); + try { sys::DynamicLibrary::LoadLibraryPermanently(Filename.c_str()); - plugins.push_back(Filename); + plugins->push_back(Filename); } catch (const std::string& errmsg) { if (errmsg.empty()) { ErrorMessage = "Unknown"; @@ -40,11 +44,14 @@ unsigned PluginLoader::getNumPlugins() { - return plugins.size(); + if(plugins) + return plugins->size(); + else + return 0; } std::string& PluginLoader::getPlugin(unsigned num) { - assert(num < plugins.size() && "Asking for an out of bounds plugin"); - return plugins[num]; + assert(plugins && num < plugins->size() && "Asking for an out of bounds plugin"); + return (*plugins)[num]; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits