[gs-bugs] [Bug 690283] New: printing multiple xps files causes
hangup during cleanup
bugs.ghostscript.com-bugzilla-daemon at ghostscript.com
bugs.ghostscript.com-bugzilla-daemon at ghostscript.com
Wed Feb 11 01:08:17 PST 2009
http://bugs.ghostscript.com/show_bug.cgi?id=690283
Summary: printing multiple xps files causes hangup during cleanup
Product: GhostXPS
Version: 1.54
Platform: PC
OS/Version: All
Status: NEW
Severity: normal
Priority: P4
Component: General
AssignedTo: tor.andersson at artifex.com
ReportedBy: norbert.janssen at oce.com
QAContact: gs-bugs at ghostscript.com
When printing multiple xps files (AC8Z11MS-MXDW.xps from Quality Logic), this
eventually caused a hangup in xpstop.c::xps_imp_dnit_job().
I traced it down to looping (round-robin) in the "Free XPS parsing stuff",
caused by not setting ctx->first_part = NULL; after freeing all parts.
So the fix for me is:
/* Free XPS parsing stuff */
{
xps_part_t *part = ctx->first_part;
while (part)
{
xps_part_t *next = part->next;
xps_free_part(ctx, part);
part = next;
}
ctx->first_part = NULL; /* FIX: reset first_part */
xps_free_fixed_pages(ctx);
xps_free_fixed_documents(ctx);
Similar fix in xpsdoc.c::xps_free_used_parts()
void
xps_free_used_parts(xps_context_t *ctx)
{
/* TODO: actually do what we should. for now we just free cached resources. */
xps_part_t *part = ctx->first_part;
while (part)
{
xps_part_t *next = part->next;
xps_free_part_caches(ctx, part);
part = next;
}
ctx->first_part = NULL; /* FIX: reset first_part */
}
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.
More information about the gs-bugs
mailing list