12#define SWP_PREFIX "KRITA_SWAP_FILE_XXXXXX"
15 : m_readWindowEx(writeWindowSize / 4),
16 m_writeWindowEx(writeWindowSize)
31 const QString swapFileTemplate = swapDir +
'/' +
SWP_PREFIX;
34 m_file.setFileTemplate(swapFileTemplate);
36 if (!res ||
m_file.fileName().isEmpty()) {
42 qWarning() <<
"Could not create or open swapfile; disabling swapfile" << swapFileTemplate;
72 if(!(adjustingWindow->
window) ||
79 if(requestedChunk.
size() > windowSize) {
81 "KisMemoryWindow: the requested chunk is too "
82 "big to fit into the mapping! "
83 "Adjusting mapping to avoid SIGSEGV...";
85 windowSize = requestedChunk.
size();
92 quint64 newSize = (adjustingWindow->
chunk.
m_end + 1 + 32) & (~31ULL);
109 Q_UNUSED(otherWindow);
112 if (!
m_file.resize(newSize)) {
132 if (!adjustingWindow->
window) {
void setChunk(quint64 begin, quint64 size)
quint8 * getWriteChunkPtr(KisChunk writeChunk)
MappingWindow m_readWindowEx
quint8 * getReadChunkPtr(KisChunk readChunk)
bool adjustWindow(const KisChunkData &requestedChunk, MappingWindow *adjustingWindow, MappingWindow *otherWindow)
KisMemoryWindow(const QString &swapDir, quint64 writeWindowSize=DEFAULT_WINDOW_SIZE)
MappingWindow m_writeWindowEx
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
quint8 * calculatePointer(const KisChunkData &other) const
const quint64 defaultSize