Browse Source

NativeFile: Make sure default buffer size at least 4096 bytes.

Miku AuahDark 6 months ago
parent
commit
0589245387
1 changed files with 5 additions and 2 deletions
  1. 5 2
      src/modules/filesystem/NativeFile.cpp

+ 5 - 2
src/modules/filesystem/NativeFile.cpp

@@ -284,6 +284,10 @@ bool NativeFile::seek(int64 pos, SeekOrigin origin)
 
 
 bool NativeFile::setBuffer(BufferMode bufmode, int64 size)
 bool NativeFile::setBuffer(BufferMode bufmode, int64 size)
 {
 {
+	// BUFSIZ in Windows is too low on 512 bytes.
+	// Make sure the default buffer size is at least 4KiB.
+	constexpr int64 DEFAULT_BUFFER_SIZE = std::max<int64>(BUFSIZ, 4096);
+
 	if (size < 0)
 	if (size < 0)
 		return false;
 		return false;
 	else if (sizeof(uintptr_t) == 4 && size > 0x80000000LL)
 	else if (sizeof(uintptr_t) == 4 && size > 0x80000000LL)
@@ -293,8 +297,7 @@ bool NativeFile::setBuffer(BufferMode bufmode, int64 size)
 	if (bufmode == BUFFER_NONE)
 	if (bufmode == BUFFER_NONE)
 		size = 0;
 		size = 0;
 	else if (size == 0)
 	else if (size == 0)
-		// This should do for now
-		size = BUFSIZ;
+		size = DEFAULT_BUFFER_SIZE;
 
 
 	// If there's no file handle, we'll setup the buffering later in open()
 	// If there's no file handle, we'll setup the buffering later in open()
 	if (file)
 	if (file)