synfig::Main::~Main() { ref_count_.detach(); if(!synfig_ref_count_.unique()) return; synfig_ref_count_.detach(); // Add deinitialization after this point if(get_open_canvas_map().size()) { synfig::warning("Canvases still open!"); std::map<synfig::String, etl::loose_handle<Canvas> >::iterator iter; for(iter=get_open_canvas_map().begin();iter!=get_open_canvas_map().end();++iter) { synfig::warning("%s: count()=%d",iter->first.c_str(), iter->second.count()); } } // synfig::info("ValueNode::subsys_stop()"); ValueNode::subsys_stop(); // synfig::info("Importer::subsys_stop()"); Importer::subsys_stop(); CairoImporter::subsys_stop(); // synfig::info("Target::subsys_stop()"); Target::subsys_stop(); // synfig::info("Layer::subsys_stop()"); Layer::subsys_stop(); /*! \todo For some reason, uncommenting the next line will cause things to crash. This needs to be looked into at some point. */ // synfig::info("Module::subsys_stop()"); // Module::subsys_stop(); // synfig::info("Exiting"); rendering::Renderer::subsys_stop(); Type::subsys_stop(); SoundProcessor::subsys_stop(); #if defined(HAVE_SIGNAL_H) && defined(SIGPIPE) signal(SIGPIPE, SIG_DFL); #endif assert(instance); instance = NULL; }
synfigapp::Main::~Main() { ref_count_.detach(); if(!synfigapp_ref_count_.unique()) return; synfigapp_ref_count_.detach(); // Add deinitialization after this point delete action_main; selected_input_device_=0; input_devices_.clear(); settings_.destruct(); signal_outline_color_changed_.destruct(); signal_fill_color_changed_.destruct(); signal_gradient_changed_.destruct(); //signal_opacity_changed_.destruct(); //signal_blend_method_changed_.destruct(); signal_interpolation_changed_.destruct(); }