From 1993f08a33c95167b7a90579ffb178c6af625086 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Mon, 31 Jan 2011 13:02:55 +0000 Subject: Added Fl_Printer::add_image(const ichar*) needed for correct memory usage by Fl_Paged_Device::print_window_part(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8341 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_GDI_Printer.cxx | 1 - src/Fl_Paged_Device.cxx | 6 ++---- src/Fl_Printer.cxx | 7 +++++++ 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/Fl_GDI_Printer.cxx b/src/Fl_GDI_Printer.cxx index bcd1569ab..9bd64f0c9 100644 --- a/src/Fl_GDI_Printer.cxx +++ b/src/Fl_GDI_Printer.cxx @@ -194,7 +194,6 @@ int Fl_System_Printer::start_page (void) } printable_rect(&w, &h); origin(0, 0); - image_list_ = NULL; fl_clip_region(0); gc = (void *)fl_gc; } diff --git a/src/Fl_Paged_Device.cxx b/src/Fl_Paged_Device.cxx index dd3e32dec..ba3014456 100644 --- a/src/Fl_Paged_Device.cxx +++ b/src/Fl_Paged_Device.cxx @@ -156,7 +156,7 @@ void Fl_Paged_Device::print_window_part(Fl_Window *win, int x, int y, int w, int if (offset + width > w) width = w - offset; fl_draw_image(image_data[i], delta_x + offset, delta_y, width, h, 3); #ifdef __APPLE__ - add_image(NULL, image_data[i]); + add_image(image_data[i]); #else delete image_data[i]; #endif @@ -164,10 +164,9 @@ void Fl_Paged_Device::print_window_part(Fl_Window *win, int x, int y, int w, int } #ifdef __APPLE__ -void Fl_Paged_Device::add_image(Fl_Image *image, const uchar *data) +void Fl_Paged_Device::add_image(const uchar *data) { struct chain_elt *elt = (struct chain_elt *)calloc(sizeof(struct chain_elt), 1); - elt->image = image; elt->data = data; if (image_list_) { elt->next = image_list_; } image_list_ = elt; @@ -177,7 +176,6 @@ void Fl_Paged_Device::delete_image_list() { while(image_list_) { struct chain_elt *next = image_list_->next; - if(image_list_->image) delete image_list_->image; if (image_list_->data) delete (uchar*) image_list_->data; // msvc6 compilation fix free(image_list_); image_list_ = next; diff --git a/src/Fl_Printer.cxx b/src/Fl_Printer.cxx index b4fb0d99d..40b37ccbe 100644 --- a/src/Fl_Printer.cxx +++ b/src/Fl_Printer.cxx @@ -160,6 +160,13 @@ void Fl_Printer::end_job (void) printer->end_job(); } +#ifdef __APPLE__ +void Fl_Printer::add_image(const uchar *data) +{ + printer->add_image(data); +} +#endif + Fl_Printer::~Fl_Printer(void) { delete printer; -- cgit v1.2.3