[SCM] calf/master: Remove by pointer, not by position - better for rearranged lists.
js at users.alioth.debian.org
js at users.alioth.debian.org
Tue May 7 15:40:31 UTC 2013
The following commit has been merged in the master branch:
commit 71303567b727e4634f36fae7bb5473d7947c5cd7
Author: Krzysztof Foltman <wdev at foltman.com>
Date: Mon Dec 27 00:21:32 2010 +0000
Remove by pointer, not by position - better for rearranged lists.
diff --git a/src/calf/jackhost.h b/src/calf/jackhost.h
index bc0ffe7..3edb720 100644
--- a/src/calf/jackhost.h
+++ b/src/calf/jackhost.h
@@ -46,7 +46,7 @@ public:
jack_client();
void add(jack_host *plugin);
- void del(int item);
+ void del(jack_host *plugin);
void open(const char *client_name);
std::string get_name();
void activate();
diff --git a/src/host_session.cpp b/src/host_session.cpp
index c5b65e8..fe75b6f 100644
--- a/src/host_session.cpp
+++ b/src/host_session.cpp
@@ -181,7 +181,7 @@ void host_session::remove_plugin(plugin_ctl_iface *plugin)
if (plugins[i] == plugin)
{
instances.erase(plugins[i]->instance_name);
- client.del(i);
+ client.del(plugins[i]);
plugins.erase(plugins.begin() + i);
main_win->del_plugin(plugin);
delete plugin;
@@ -194,8 +194,8 @@ void host_session::remove_all_plugins()
{
while(!plugins.empty())
{
- plugin_ctl_iface *plugin = plugins[0];
- client.del(0);
+ jack_host *plugin = plugins[0];
+ client.del(plugins[0]);
plugins.erase(plugins.begin());
main_win->del_plugin(plugin);
delete plugin;
diff --git a/src/jack_client.cpp b/src/jack_client.cpp
index af380d1..3cf4135 100644
--- a/src/jack_client.cpp
+++ b/src/jack_client.cpp
@@ -45,10 +45,18 @@ void jack_client::add(jack_host *plugin)
plugins.push_back(plugin);
}
-void jack_client::del(int item)
+void jack_client::del(jack_host *plugin)
{
calf_utils::ptlock lock(mutex);
- plugins.erase(plugins.begin()+item);
+ for (unsigned int i = 0; i < plugins.size(); i++)
+ {
+ if (plugins[i] == plugin)
+ {
+ plugins.erase(plugins.begin()+i);
+ return;
+ }
+ }
+ assert(0);
}
void jack_client::open(const char *client_name)
--
calf audio plugins packaging
More information about the pkg-multimedia-commits
mailing list