From e2225502e98ab05f11ea78e405e2cfdedf93defe Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sat, 10 Apr 2010 19:36:53 +0000 Subject: Avoid crash svn path=/trunk/netsurf/; revision=10343 --- amiga/print.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/amiga/print.c b/amiga/print.c index 9f18a76d8..fe399be77 100644 --- a/amiga/print.c +++ b/amiga/print.c @@ -58,6 +58,7 @@ bool ami_print_next_page(void); void ami_print_end(void); bool ami_print_dump(void); void ami_print_progress(void); +void ami_print_close_device(void); const struct printer amiprinter = { &amiplot, @@ -397,7 +398,12 @@ void ami_print(struct hlcache_handle *c, int copies) ami_print_info.ps->page_height = ami_print_info.PED->ped_MaxYDots; ami_print_info.ps->scale = scale; - print_set_up(c, &amiprinter, ami_print_info.ps, &height); + if(!print_set_up(c, &amiprinter, ami_print_info.ps, &height)) + { + warn_user("PrintError","print_set_up() returned false"); + ami_print_close_device(); + return; + } height *= ami_print_info.ps->scale; ami_print_info.pages = height / ami_print_info.ps->page_height; @@ -482,6 +488,11 @@ void ami_print_end(void) DisposeObject(ami_print_info.objects[OID_MAIN]); glob = &browserglob; + ami_print_close_device(); +} + +void ami_print_close_device(void) +{ CloseDevice(ami_print_info.PReq); FreeSysObject(ASOT_IOREQUEST,ami_print_info.PReq); } -- cgit v1.2.3