diff options
Diffstat (limited to 'src/printsupport/dialogs/qpagesetupdialog_win.cpp')
-rw-r--r-- | src/printsupport/dialogs/qpagesetupdialog_win.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/printsupport/dialogs/qpagesetupdialog_win.cpp b/src/printsupport/dialogs/qpagesetupdialog_win.cpp index 04698901f7..afe0268e55 100644 --- a/src/printsupport/dialogs/qpagesetupdialog_win.cpp +++ b/src/printsupport/dialogs/qpagesetupdialog_win.cpp @@ -134,6 +134,13 @@ int QPageSetupDialog::exec() // copy from our temp DEVMODE struct if (!engine->globalDevMode() && hDevMode) { + // Make sure memory is allocated + if (ep->ownsDevMode && ep->devMode) + free(ep->devMode); + ep->devMode = (DEVMODE *) malloc(devModeSize); + ep->ownsDevMode = true; + + // Copy void *src = GlobalLock(hDevMode); memcpy(ep->devMode, src, devModeSize); GlobalUnlock(hDevMode); |