From 41eb37606010baa8568ee3698669973f2d05e224 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Sun, 6 May 2018 15:03:04 +0000 Subject: Make member function Fl_Image_Surface::get_offscreen_before_delete() be private. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12904 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Graphics_Driver.cxx | 7 +++++++ src/Fl_Image_Surface.cxx | 6 ++---- src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx | 6 ++---- src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx | 3 +-- src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx | 6 ++---- 5 files changed, 14 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/Fl_Graphics_Driver.cxx b/src/Fl_Graphics_Driver.cxx index 0523e012d..ad0fd07cf 100644 --- a/src/Fl_Graphics_Driver.cxx +++ b/src/Fl_Graphics_Driver.cxx @@ -319,6 +319,13 @@ void Fl_Graphics_Driver::draw_rgb(Fl_RGB_Image *img, int XP, int YP, int WP, int } } +/** Accessor to private member function of Fl_Image_Surface */ +Fl_Offscreen Fl_Graphics_Driver::get_offscreen_and_delete_image_surface(Fl_Image_Surface* surface) { + Fl_Offscreen off = surface->get_offscreen_before_delete_(); + delete surface; + return off; +} + #ifndef FL_DOXYGEN Fl_Font_Descriptor::Fl_Font_Descriptor(const char* name, Fl_Fontsize Size) { diff --git a/src/Fl_Image_Surface.cxx b/src/Fl_Image_Surface.cxx index 95cecf68a..7ac6ab944 100644 --- a/src/Fl_Image_Surface.cxx +++ b/src/Fl_Image_Surface.cxx @@ -111,10 +111,8 @@ Fl_Shared_Image* Fl_Image_Surface::highres_image() return s_img; } -/** Allows to delete the Fl_Image_Surface object while keeping its underlying Fl_Offscreen. - This member function is intended for internal use by the FLTK library. - */ -Fl_Offscreen Fl_Image_Surface::get_offscreen_before_delete() { +// Allows to delete the Fl_Image_Surface object while keeping its underlying Fl_Offscreen +Fl_Offscreen Fl_Image_Surface::get_offscreen_before_delete_() { Fl_Offscreen keep = platform_surface->offscreen; platform_surface->offscreen = 0; return keep; diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx index 9368836ca..050d1ac4d 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx @@ -491,8 +491,7 @@ void Fl_GDI_Graphics_Driver::cache(Fl_RGB_Image *img) } } Fl_Surface_Device::pop_current(); - Fl_Offscreen offs = surface->get_offscreen_before_delete(); - delete surface; + Fl_Offscreen offs = Fl_Graphics_Driver::get_offscreen_and_delete_image_surface(surface); int *pw, *ph; cache_w_h(img, pw, ph); *pw = img->data_w(); @@ -707,8 +706,7 @@ void Fl_GDI_Graphics_Driver::cache(Fl_Pixmap *img) { } *pbitmap = 0; Fl_Surface_Device::pop_current(); - Fl_Offscreen id = surf->get_offscreen_before_delete(); - delete surf; + Fl_Offscreen id = Fl_Graphics_Driver::get_offscreen_and_delete_image_surface(surf); int *pw, *ph; cache_w_h(img, pw, ph); *pw = img->data_w(); diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx index ac705fcd5..c32a7b7f4 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx @@ -259,9 +259,8 @@ void Fl_Quartz_Graphics_Driver::cache(Fl_Pixmap *img) { Fl_Image_Surface *surf = new Fl_Image_Surface(img->data_w(), img->data_h()); Fl_Surface_Device::push_current(surf); fl_draw_pixmap(img->data(), 0, 0, FL_BLACK); - CGContextRef src = surf->get_offscreen_before_delete(); Fl_Surface_Device::pop_current(); - delete surf; + CGContextRef src = Fl_Graphics_Driver::get_offscreen_and_delete_image_surface(surf); void *cgdata = CGBitmapContextGetData(src); int sw = CGBitmapContextGetWidth(src); int sh = CGBitmapContextGetHeight(src); diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx index 68cb70833..dad106a02 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx @@ -712,8 +712,7 @@ void Fl_Xlib_Graphics_Driver::cache(Fl_RGB_Image *img) { Fl_Surface_Device::push_current(surface); fl_draw_image(img->array, 0, 0, img->data_w(), img->data_h(), depth, img->ld()); Fl_Surface_Device::pop_current(); - Fl_Offscreen off = surface->get_offscreen_before_delete(); - delete surface; + Fl_Offscreen off = Fl_Graphics_Driver::get_offscreen_and_delete_image_surface(surface); int *pw, *ph; cache_w_h(img, pw, ph); *pw = img->data_w(); @@ -879,8 +878,7 @@ void Fl_Xlib_Graphics_Driver::cache(Fl_Pixmap *pxm) { } *pbitmap = 0; Fl_Surface_Device::pop_current(); - Fl_Offscreen id = surf->get_offscreen_before_delete(); - delete surf; + Fl_Offscreen id = Fl_Graphics_Driver::get_offscreen_and_delete_image_surface(surf); int *pw, *ph; cache_w_h(pxm, pw, ph); *pw = pxm->data_w(); -- cgit v1.2.3