summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-04-24 13:22:15 +0200
committerRobin Gareus <robin@gareus.org>2016-04-24 14:43:18 +0200
commitf6a621346c97b37d45620f9caa8f3da6a64d6e5e (patch)
treeaaa2b77835ac67e6cdd720e6ec9f74f4ed59f63d
parente3536fbefe21ae079ff6cb370852a161a3b90f53 (diff)
some notes on mem-leaks...
-rw-r--r--libs/ardour/plugin_manager.cc5
-rw-r--r--libs/ardour/tempo.cc1
-rw-r--r--libs/pbd/pbd/abstract_ui.cc2
3 files changed, 7 insertions, 1 deletions
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc
index d868b1d00a..269cb0d801 100644
--- a/libs/ardour/plugin_manager.cc
+++ b/libs/ardour/plugin_manager.cc
@@ -582,6 +582,11 @@ PluginManager::ladspa_discover (string path)
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("LADSPA plugin found at %1\n", path));
for (uint32_t i = 0; ; ++i) {
+ /* if a ladspa plugin allocates memory here
+ * it is never free()ed (or plugin-dependent only when unloading).
+ * For some plugins memory allocated is incremental, we should
+ * avoid re-scanning plugins and file bug reports.
+ */
if ((descriptor = dfunc (i)) == 0) {
break;
}
diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc
index e2de5ba49f..2a0ac50cc2 100644
--- a/libs/ardour/tempo.cc
+++ b/libs/ardour/tempo.cc
@@ -284,6 +284,7 @@ TempoMap::TempoMap (framecnt_t fr)
start.beats = 1;
start.ticks = 0;
+ // these leak memory, well Metrics does
TempoSection *t = new TempoSection (start, _default_tempo.beats_per_minute(), _default_tempo.note_type());
MeterSection *m = new MeterSection (start, _default_meter.divisions_per_bar(), _default_meter.note_divisor());
diff --git a/libs/pbd/pbd/abstract_ui.cc b/libs/pbd/pbd/abstract_ui.cc
index 40b4ea8d93..52dc3fa12a 100644
--- a/libs/pbd/pbd/abstract_ui.cc
+++ b/libs/pbd/pbd/abstract_ui.cc
@@ -444,7 +444,7 @@ AbstractUI<RequestObject>::call_slot (InvalidationRecord* invalidation, const bo
template<typename RequestObject> void*
AbstractUI<RequestObject>::request_buffer_factory (uint32_t num_requests)
{
- RequestBuffer* mcr = new RequestBuffer (num_requests);
+ RequestBuffer* mcr = new RequestBuffer (num_requests); // leaks
per_thread_request_buffer.set (mcr);
return mcr;
}