Browse Source

Merge pull request #29497 from qarmin/fix_memory_leak_in_files

Fix memory leak after closing files
Rémi Verschelde 6 years ago
parent
commit
ee86b18a5e

+ 4 - 0
editor/plugins/asset_library_editor_plugin.cpp

@@ -733,6 +733,7 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PoolByt
 
 
 				image_data = cached_data;
 				image_data = cached_data;
 				file->close();
 				file->close();
+				memdelete(file);
 			}
 			}
 		}
 		}
 
 
@@ -807,6 +808,7 @@ void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, cons
 					if (file) {
 					if (file) {
 						file->store_line(new_etag);
 						file->store_line(new_etag);
 						file->close();
 						file->close();
+						memdelete(file);
 					}
 					}
 
 
 					int len = p_data.size();
 					int len = p_data.size();
@@ -816,6 +818,7 @@ void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, cons
 						file->store_32(len);
 						file->store_32(len);
 						file->store_buffer(r.ptr(), len);
 						file->store_buffer(r.ptr(), len);
 						file->close();
 						file->close();
+						memdelete(file);
 					}
 					}
 
 
 					break;
 					break;
@@ -855,6 +858,7 @@ void EditorAssetLibrary::_update_image_queue() {
 				if (file) {
 				if (file) {
 					headers.push_back("If-None-Match: " + file->get_line());
 					headers.push_back("If-None-Match: " + file->get_line());
 					file->close();
 					file->close();
+					memdelete(file);
 				}
 				}
 			}
 			}
 
 

+ 0 - 4
platform/uwp/export/export.cpp

@@ -241,7 +241,6 @@ void AppxPackager::make_block_map() {
 
 
 	tmp_file->close();
 	tmp_file->close();
 	memdelete(tmp_file);
 	memdelete(tmp_file);
-	tmp_file = NULL;
 }
 }
 
 
 String AppxPackager::content_type(String p_extension) {
 String AppxPackager::content_type(String p_extension) {
@@ -291,7 +290,6 @@ void AppxPackager::make_content_types() {
 
 
 	tmp_file->close();
 	tmp_file->close();
 	memdelete(tmp_file);
 	memdelete(tmp_file);
-	tmp_file = NULL;
 }
 }
 
 
 Vector<uint8_t> AppxPackager::make_file_header(FileMeta p_file_meta) {
 Vector<uint8_t> AppxPackager::make_file_header(FileMeta p_file_meta) {
@@ -606,7 +604,6 @@ void AppxPackager::finish() {
 
 
 	blockmap_file->close();
 	blockmap_file->close();
 	memdelete(blockmap_file);
 	memdelete(blockmap_file);
-	blockmap_file = NULL;
 
 
 	// Add content types
 	// Add content types
 	EditorNode::progress_task_step("export", "Setting content types...", 5);
 	EditorNode::progress_task_step("export", "Setting content types...", 5);
@@ -622,7 +619,6 @@ void AppxPackager::finish() {
 
 
 	types_file->close();
 	types_file->close();
 	memdelete(types_file);
 	memdelete(types_file);
-	types_file = NULL;
 
 
 	// Pre-process central directory before signing
 	// Pre-process central directory before signing
 	for (int i = 0; i < file_metadata.size(); i++) {
 	for (int i = 0; i < file_metadata.size(); i++) {