Editor::~Editor()
{
- delete button_bindings;
+ delete button_bindings;
delete _routes;
delete _route_groups;
delete _track_canvas_viewport;
delete _drags;
delete nudge_clock;
+ delete _verbose_cursor;
delete quantize_dialog;
delete _summary;
delete _group_tabs;
{
SessionHandlePtr::set_session (s);
- if (_session) {
- lua_State* L = lua.getState();
- LuaBindings::set_session (L, _session);
+ if (!_session) {
+ return;
}
+ lua_State* L = lua.getState();
+ LuaBindings::set_session (L, _session);
+
reconnect();
}
_session = 0;
drop_callback (); /* EMIT SIGNAL */
+
+ lua_State* L = lua.getState();
+ LuaBindings::set_session (L, 0);
+ lua.do_command ("collectgarbage();");
}
void
case SessionEnd:
case RangeEnd:
- points = new ArdourCanvas::Points ();
+ points = new ArdourCanvas::Points (); // leaks
points->push_back (ArdourCanvas::Duple ( M6, 0.0));
points->push_back (ArdourCanvas::Duple ( M6, MH));
points->push_back (ArdourCanvas::Duple (0.0, MH * .5));
/* destroying the parent group destroys its contents, namely any polygons etc. that we added */
delete group;
delete _track_canvas_line;
+ delete points;
}
void ArdourMarker::reparent(ArdourCanvas::Container & parent)
const double M3 = std::max(1.f, rintf(3.f * UIConfiguration::instance().get_ui_scale()));
const double M6 = std::max(2.f, rintf(6.f * UIConfiguration::instance().get_ui_scale()));
+ delete points;
points = new ArdourCanvas::Points ();
points->push_back (ArdourCanvas::Duple ( M3, top));
points->push_back (ArdourCanvas::Duple ( M6, min (top + (MH * .6), MH)));
std::string RouteUI::program_port_prefix;
RouteUI::RouteUI (ARDOUR::Session* sess)
- : mute_menu(0)
+ : monitor_input_button (0)
+ , monitor_disk_button (0)
+ , mute_menu(0)
, solo_menu(0)
, sends_menu(0)
, record_menu(0)
delete comment_window;
delete input_selector;
delete output_selector;
+ delete monitor_input_button;
+ delete monitor_disk_button;
delete _invert_menu;
send_blink_connection.disconnect ();
show_sends_button->set_name ("send alert button");
UI::instance()->set_tip (show_sends_button, _("make mixer strips show sends to this bus"), "");
- monitor_input_button = manage (new ArdourButton (ArdourButton::default_elements));
+ monitor_input_button = new ArdourButton (ArdourButton::default_elements);
monitor_input_button->set_name ("monitor button");
monitor_input_button->set_text (_("In"));
UI::instance()->set_tip (monitor_input_button, _("Monitor input"), "");
monitor_input_button->set_no_show_all (true);
- monitor_disk_button = manage (new ArdourButton (ArdourButton::default_elements));
+ monitor_disk_button = new ArdourButton (ArdourButton::default_elements);
monitor_disk_button->set_name ("monitor button");
monitor_disk_button->set_text (_("Disk"));
UI::instance()->set_tip (monitor_disk_button, _("Monitor playback"), "");
{
cairo_pattern_destroy (pattern);
cairo_pattern_destroy (shine_pattern);
+ delete text_color;
}
void
}
}
+// retuned rect is pushed back into the used_selection_rects list
+// in TimeAxisView::show_selection() which is the only caller.
SelectionRect *
TimeAxisView::get_selection_rect (uint32_t id)
{
for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i) {
if ((*i)->id == id) {
- return (*i);
+ SelectionRect* ret = (*i);
+ used_selection_rects.erase (i);
+ return ret;
}
}
typedef std::vector<boost::shared_ptr<TimeAxisView> > Children;
Children get_child_list ();
- SelectionRect* get_selection_rect(uint32_t id);
-
static uint32_t preset_height (Height);
protected:
static uint32_t extra_height;
static int const _max_order;
+ SelectionRect* get_selection_rect(uint32_t id);
+
void compute_heights ();
bool maybe_set_cursor (int y);