diff options
Diffstat (limited to 'WebCore/plugins/chromium/PluginDataChromium.cpp')
-rw-r--r-- | WebCore/plugins/chromium/PluginDataChromium.cpp | 38 |
1 files changed, 9 insertions, 29 deletions
diff --git a/WebCore/plugins/chromium/PluginDataChromium.cpp b/WebCore/plugins/chromium/PluginDataChromium.cpp index 5c28643..a106bc0 100644 --- a/WebCore/plugins/chromium/PluginDataChromium.cpp +++ b/WebCore/plugins/chromium/PluginDataChromium.cpp @@ -35,23 +35,6 @@ namespace WebCore { -static PluginInfo* clone(const PluginInfo* info) -{ - PluginInfo* result = new PluginInfo(); - result->name = info->name; - result->desc = info->desc; - result->file = info->file; - for (size_t i = 0; i < info->mimes.size(); ++i) { - MimeClassInfo* mime = new MimeClassInfo(); - mime->type = info->mimes[i]->type; - mime->desc = info->mimes[i]->desc; - mime->suffixes = info->mimes[i]->suffixes; - mime->plugin = result; - result->mimes.append(mime); - } - return result; -} - class PluginCache { public: PluginCache() : m_loaded(false), m_refresh(false) {} @@ -59,15 +42,12 @@ public: void reset(bool refresh) { - for (size_t i = 0; i < m_plugins.size(); ++i) - deleteAllValues(m_plugins[i]->mimes); - deleteAllValues(m_plugins); m_plugins.clear(); m_loaded = false; m_refresh = refresh; } - const Vector<PluginInfo*>& plugins() + const Vector<PluginInfo>& plugins() { if (!m_loaded) { ChromiumBridge::plugins(m_refresh, &m_plugins); @@ -78,7 +58,7 @@ public: } private: - Vector<PluginInfo*> m_plugins; + Vector<PluginInfo> m_plugins; bool m_loaded; bool m_refresh; }; @@ -87,9 +67,9 @@ static PluginCache pluginCache; void PluginData::initPlugins() { - const Vector<PluginInfo*>& plugins = pluginCache.plugins(); + const Vector<PluginInfo>& plugins = pluginCache.plugins(); for (size_t i = 0; i < plugins.size(); ++i) - m_plugins.append(clone(plugins[i])); + m_plugins.append(plugins[i]); } void PluginData::refresh() @@ -100,15 +80,15 @@ void PluginData::refresh() String getPluginMimeTypeFromExtension(const String& extension) { - const Vector<PluginInfo*>& plugins = pluginCache.plugins(); + const Vector<PluginInfo>& plugins = pluginCache.plugins(); for (size_t i = 0; i < plugins.size(); ++i) { - for (size_t j = 0; j < plugins[i]->mimes.size(); ++j) { - MimeClassInfo* mime = plugins[i]->mimes[j]; + for (size_t j = 0; j < plugins[i].mimes.size(); ++j) { + const MimeClassInfo& mime = plugins[i].mimes[j]; Vector<String> extensions; - mime->suffixes.split(",", extensions); + mime.suffixes.split(",", extensions); for (size_t k = 0; k < extensions.size(); ++k) { if (extension == extensions[k]) - return mime->type; + return mime.type; } } } |