diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-03-15 12:33:35 +0100 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-07-07 20:38:57 +0000 |
commit | a2cef41a3199b7bdaa64c911c7a2e7d0b0daecd4 (patch) | |
tree | 45a7ff001198601fe2483dc552d3855064493d3a /src/corelib/kernel/qsharedmemory_posix.cpp | |
parent | 9ad1c6d835eac2938f1e6137dd420e274dcbef6e (diff) |
Extend QSharedMemory to work with qsizetype for sizes
This allows larger than 2G memory segments to be allocated.
Fixes: QTBUG-76995
Change-Id: I95309eeea511fadb28724c7592298c2fcc6f1d1a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/corelib/kernel/qsharedmemory_posix.cpp')
-rw-r--r-- | src/corelib/kernel/qsharedmemory_posix.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/corelib/kernel/qsharedmemory_posix.cpp b/src/corelib/kernel/qsharedmemory_posix.cpp index 80f9a35651..d83ff4cb92 100644 --- a/src/corelib/kernel/qsharedmemory_posix.cpp +++ b/src/corelib/kernel/qsharedmemory_posix.cpp @@ -82,7 +82,7 @@ bool QSharedMemoryPrivate::cleanHandle() return true; } -bool QSharedMemoryPrivate::create(int size) +bool QSharedMemoryPrivate::create(qsizetype size) { if (!handle()) return false; @@ -165,11 +165,11 @@ bool QSharedMemoryPrivate::attach(QSharedMemory::AccessMode mode) cleanHandle(); return false; } - size = st.st_size; + size = qsizetype(st.st_size); // grab the memory const int mprot = (mode == QSharedMemory::ReadOnly ? PROT_READ : PROT_READ | PROT_WRITE); - memory = QT_MMAP(0, size, mprot, MAP_SHARED, hand, 0); + memory = QT_MMAP(0, size_t(size), mprot, MAP_SHARED, hand, 0); if (memory == MAP_FAILED || !memory) { setErrorString(QLatin1String("QSharedMemory::attach (mmap)")); cleanHandle(); @@ -191,7 +191,7 @@ bool QSharedMemoryPrivate::attach(QSharedMemory::AccessMode mode) bool QSharedMemoryPrivate::detach() { // detach from the memory segment - if (::munmap(memory, size) == -1) { + if (::munmap(memory, size_t(size)) == -1) { setErrorString(QLatin1String("QSharedMemory::detach (munmap)")); return false; } |