You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-06 12:20:30 +00:00
Make FileAccess and DirAccess classes reference counted.
This commit is contained in:
@@ -729,9 +729,8 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PackedB
|
||||
if (use_cache) {
|
||||
String cache_filename_base = EditorPaths::get_singleton()->get_cache_dir().plus_file("assetimage_" + image_queue[p_queue_id].image_url.md5_text());
|
||||
|
||||
FileAccess *file = FileAccess::open(cache_filename_base + ".data", FileAccess::READ);
|
||||
|
||||
if (file) {
|
||||
Ref<FileAccess> file = FileAccess::open(cache_filename_base + ".data", FileAccess::READ);
|
||||
if (file.is_valid()) {
|
||||
PackedByteArray cached_data;
|
||||
int len = file->get_32();
|
||||
cached_data.resize(len);
|
||||
@@ -740,8 +739,6 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PackedB
|
||||
file->get_buffer(w, len);
|
||||
|
||||
image_data = cached_data;
|
||||
file->close();
|
||||
memdelete(file);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -808,23 +805,17 @@ void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, cons
|
||||
if (headers[i].findn("ETag:") == 0) { // Save etag
|
||||
String cache_filename_base = EditorPaths::get_singleton()->get_cache_dir().plus_file("assetimage_" + image_queue[p_queue_id].image_url.md5_text());
|
||||
String new_etag = headers[i].substr(headers[i].find(":") + 1, headers[i].length()).strip_edges();
|
||||
FileAccess *file;
|
||||
|
||||
file = FileAccess::open(cache_filename_base + ".etag", FileAccess::WRITE);
|
||||
if (file) {
|
||||
Ref<FileAccess> file = FileAccess::open(cache_filename_base + ".etag", FileAccess::WRITE);
|
||||
if (file.is_valid()) {
|
||||
file->store_line(new_etag);
|
||||
file->close();
|
||||
memdelete(file);
|
||||
}
|
||||
|
||||
int len = p_data.size();
|
||||
const uint8_t *r = p_data.ptr();
|
||||
file = FileAccess::open(cache_filename_base + ".data", FileAccess::WRITE);
|
||||
if (file) {
|
||||
if (file.is_valid()) {
|
||||
file->store_32(len);
|
||||
file->store_buffer(r, len);
|
||||
file->close();
|
||||
memdelete(file);
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -858,11 +849,9 @@ void EditorAssetLibrary::_update_image_queue() {
|
||||
Vector<String> headers;
|
||||
|
||||
if (FileAccess::exists(cache_filename_base + ".etag") && FileAccess::exists(cache_filename_base + ".data")) {
|
||||
FileAccess *file = FileAccess::open(cache_filename_base + ".etag", FileAccess::READ);
|
||||
if (file) {
|
||||
Ref<FileAccess> file = FileAccess::open(cache_filename_base + ".etag", FileAccess::READ);
|
||||
if (file.is_valid()) {
|
||||
headers.push_back("If-None-Match: " + file->get_line());
|
||||
file->close();
|
||||
memdelete(file);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user