Make smf_track_get_next_event gracefully handle empty tracks.
[ardour.git] / gtk2_ardour / session_import_dialog.cc
index 4ab06d7cc2678ff5607f90bb0db4d4c11cfe66bd..3776c3c04c21e0b64923163d3f810e3a52248102 100644 (file)
@@ -105,13 +105,13 @@ void
 SessionImportDialog::load_session (const string& filename)
 {
        tree.read (filename);
-       AudioRegionImportHandler *region_handler;
+       boost::shared_ptr<AudioRegionImportHandler> region_handler (new AudioRegionImportHandler (tree, target));
+       boost::shared_ptr<AudioPlaylistImportHandler> pl_handler (new AudioPlaylistImportHandler (tree, target, *region_handler));
        
-       region_handler = new AudioRegionImportHandler (tree, target);
-       handlers.push_back (HandlerPtr(region_handler));
-       handlers.push_back (HandlerPtr(new AudioPlaylistImportHandler (tree, target, *region_handler)));
+       handlers.push_back (boost::static_pointer_cast<ElementImportHandler> (region_handler));
+       handlers.push_back (boost::static_pointer_cast<ElementImportHandler> (pl_handler));
        handlers.push_back (HandlerPtr(new UnusedAudioPlaylistImportHandler (tree, target, *region_handler)));
-       handlers.push_back (HandlerPtr(new AudioTrackImportHandler (tree, target)));
+       handlers.push_back (HandlerPtr(new AudioTrackImportHandler (tree, target, *pl_handler)));
        handlers.push_back (HandlerPtr(new LocationImportHandler (tree, target)));
        handlers.push_back (HandlerPtr(new TempoMapImportHandler (tree, target)));