Fix problem with synchronous export.

It surprises me a bit that the code is different in this case
from the case when EXPORT_in_THREAD is not set. I should check
to see if there's a problem in the other case, too.

(cherry picked from commit 0fc50a2637)
This commit is contained in:
Richard Kimberly Heck 2018-04-21 19:48:59 -04:00
parent 36096435e5
commit ffeac12a86

View File

@ -3616,12 +3616,9 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing(
// We are asynchronous, so we don't know here anything about the success
return true;
} else {
#endif
// this will be run unconditionally in case EXPORT_in_THREAD
// is not defined.
Buffer::ExportStatus status;
if (syncFunc) {
status = (used_buffer->*syncFunc)(format, true);
status = (used_buffer->*syncFunc)(format, false);
} else if (previewFunc) {
status = (used_buffer->*previewFunc)(format);
} else
@ -3630,9 +3627,19 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing(
(void) asyncFunc;
return (status == Buffer::ExportSuccess
|| status == Buffer::PreviewSuccess);
#if EXPORT_in_THREAD
// the end of the else clause in that case.
}
#else
Buffer::ExportStatus status;
if (syncFunc) {
status = (used_buffer->*syncFunc)(format, true);
} else if (previewFunc) {
status = (used_buffer->*previewFunc)(format);
} else
return false;
handleExportStatus(gv_, status, format);
(void) asyncFunc;
return (status == Buffer::ExportSuccess
|| status == Buffer::PreviewSuccess);
#endif
}