Merge pull request #39818 from Wavesonics/server-memory-leak

Fix memory leaks in RasterizerStorageDummy::free
This commit is contained in:
Rémi Verschelde 2020-06-26 08:05:13 +02:00 committed by GitHub
commit 705b1695af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 4 deletions

View File

@ -725,20 +725,25 @@ public:
} }
bool free(RID p_rid) { bool free(RID p_rid) {
if (texture_owner.owns(p_rid)) { if (texture_owner.owns(p_rid)) {
// delete the texture // delete the texture
DummyTexture *texture = texture_owner.get(p_rid); DummyTexture *texture = texture_owner.get(p_rid);
texture_owner.free(p_rid); texture_owner.free(p_rid);
memdelete(texture); memdelete(texture);
} } else if (mesh_owner.owns(p_rid)) {
if (mesh_owner.owns(p_rid)) {
// delete the mesh // delete the mesh
DummyMesh *mesh = mesh_owner.getornull(p_rid); DummyMesh *mesh = mesh_owner.getornull(p_rid);
mesh_owner.free(p_rid); mesh_owner.free(p_rid);
memdelete(mesh); memdelete(mesh);
} else if (lightmap_capture_data_owner.owns(p_rid)) {
// delete the lightmap
LightmapCapture *lightmap_capture = lightmap_capture_data_owner.getornull(p_rid);
lightmap_capture_data_owner.free(p_rid);
memdelete(lightmap_capture);
} else {
return false;
} }
return true; return true;
} }