From 850e721be23fe647c7e908ef5366e2c4adaee0f9 Mon Sep 17 00:00:00 2001 From: Sasha Szpakowski Date: Thu, 19 Dec 2024 18:18:41 -0400 Subject: [PATCH] minor optimization: avoid opening a file twice when its full contents are read. --- src/modules/filesystem/File.cpp | 6 ++++-- src/modules/filesystem/File.h | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/filesystem/File.cpp b/src/modules/filesystem/File.cpp index 399a891f0..5a2eb459c 100644 --- a/src/modules/filesystem/File.cpp +++ b/src/modules/filesystem/File.cpp @@ -33,7 +33,7 @@ File::~File() FileData *File::read() { - return read(getSize()); + return read(SIZE_ALL); } FileData *File::read(int64 size) @@ -46,7 +46,9 @@ FileData *File::read(int64 size) int64 max = getSize(); int64 cur = tell(); - if (size < 0) + if (size == SIZE_ALL) + size = max; + else if (size < 0) throw love::Exception("Invalid read size."); // Clamping because the file offset may be in a weird position. diff --git a/src/modules/filesystem/File.h b/src/modules/filesystem/File.h index 4ab3fe3d6..eca898971 100644 --- a/src/modules/filesystem/File.h +++ b/src/modules/filesystem/File.h @@ -47,6 +47,8 @@ public: static love::Type type; + static const int64 SIZE_ALL = -1; + /** * File open mode. **/