summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLadislav Zezula <zezula@volny.cz>2021-03-31 17:40:34 +0200
committerGitHub <noreply@github.com>2021-03-31 17:40:34 +0200
commit0a9057a09f083eb4791a55eb3d9538cea9822e37 (patch)
treed28b9cd9a884ddbf7c89de7170c638e8a9230e27 /src
parentce159e90bca94be3c9050fe467d497cfcbe759a8 (diff)
parent48f26f9f75a840a31b86a245f974009edf6d90bf (diff)
Merge pull request #209 from ladislav-zezula/MmapTest
Mmap test
Diffstat (limited to 'src')
-rw-r--r--src/FileStream.cpp22
-rw-r--r--src/StormPort.h6
2 files changed, 15 insertions, 13 deletions
diff --git a/src/FileStream.cpp b/src/FileStream.cpp
index 50f6ea5..bfb5817 100644
--- a/src/FileStream.cpp
+++ b/src/FileStream.cpp
@@ -561,13 +561,11 @@ static bool BaseMap_Open(TFileStream * pStream, LPCTSTR szFileName, DWORD dwStre
if(hFile != INVALID_HANDLE_VALUE)
CloseHandle(hFile);
- // If the file is not there and is not available for random access,
- // report error
- if(bResult == false)
- return false;
-#endif
+ // Return the result of the operation
+ return bResult;
+
+#elif defined(STORMLIB_HAS_MMAP)
-#if defined(STORMLIB_MAC) || defined(STORMLIB_LINUX)
struct stat64 fileinfo;
intptr_t handle;
bool bResult = false;
@@ -596,13 +594,15 @@ static bool BaseMap_Open(TFileStream * pStream, LPCTSTR szFileName, DWORD dwStre
// Did the mapping fail?
if(bResult == false)
- {
nLastError = errno;
- return false;
- }
-#endif
+ return bResult;
- return true;
+#else
+
+ // File mapping is not supported
+ return false;
+
+#endif
}
static bool BaseMap_Read(
diff --git a/src/StormPort.h b/src/StormPort.h
index 30d9e12..bd7947f 100644
--- a/src/StormPort.h
+++ b/src/StormPort.h
@@ -65,7 +65,7 @@
#define STORMLIB_CDECL __cdecl
#define STORMLIB_WINDOWS
- #define STORMLIB_PLATFORM_DEFINED // The platform is known now
+ #define STORMLIB_PLATFORM_DEFINED // The platform is known now
#endif
@@ -102,7 +102,8 @@
#endif
#define STORMLIB_MAC
- #define STORMLIB_PLATFORM_DEFINED // The platform is known now
+ #define STORMLIB_HAS_MMAP // Indicate that we have mmap support
+ #define STORMLIB_PLATFORM_DEFINED // The platform is known now
#endif
@@ -272,6 +273,7 @@
#endif
#define STORMLIB_LINUX
+ #define STORMLIB_HAS_MMAP // Indicate that we have mmap support
#define STORMLIB_PLATFORM_DEFINED
#endif