Fixes memory leaks in GdNavigationServer and RasterizerSceneHighEndRD

This commit is contained in:
Haoyu Qiu 2020-02-15 13:45:17 +08:00
parent 7724b842f6
commit d9b5cbdffa
2 changed files with 18 additions and 3 deletions

View file

@ -115,12 +115,15 @@
GdNavigationServer::GdNavigationServer() :
NavigationServer(),
commands_mutex(Mutex::create()),
operations_mutex(Mutex::create()),
active(true) {
commands_mutex = Mutex::create();
operations_mutex = Mutex::create();
}
GdNavigationServer::~GdNavigationServer() {}
GdNavigationServer::~GdNavigationServer() {
memdelete(operations_mutex);
memdelete(commands_mutex);
}
void GdNavigationServer::add_command(SetCommand *command) const {
auto mut_this = const_cast<GdNavigationServer *>(this);

View file

@ -2697,8 +2697,20 @@ RasterizerSceneHighEndRD::~RasterizerSceneHighEndRD() {
RD::get_singleton()->free(view_dependant_uniform_set);
}
storage->free(wireframe_material_shader);
storage->free(overdraw_material_shader);
storage->free(default_shader);
storage->free(wireframe_material);
storage->free(overdraw_material);
storage->free(default_material);
{
RD::get_singleton()->free(scene_state.reflection_buffer);
memdelete_arr(scene_state.instances);
memdelete_arr(scene_state.gi_probes);
memdelete_arr(scene_state.directional_lights);
memdelete_arr(scene_state.lights);
memdelete_arr(scene_state.reflections);
}
}