From 33096cf7c59ff59e676c1eec560d742c9b126304 Mon Sep 17 00:00:00 2001
From: MegaBrutal <code+git@megabrutal.com>
Date: Mon, 26 Dec 2022 23:30:00 +0100
Subject: [PATCH] Use apply_to_canvas in /pgen/3 as well

---
 src/main.rs | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 8f6f15e..7b1598f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -451,12 +451,10 @@ async fn img_pgen3(req: HttpRequest, path: web::Path<u32>, canvas2: web::Data<Ar
     let rgbimg: RgbImage = rgb_encode(ImageBuffer::new(TIMEAVATAR_SIZE_U32, TIMEAVATAR_SIZE_U32), &mut data.bytes())?;
     let resimg: RgbImage = ({
         let canvas_option = &mut *canvas2.lock().unwrap();
-        let mut canvas = match canvas_option.0.take() {
-            Some(canvas) => canvas,
-            None => Canvas::new(60 * TIMEAVATAR_SIZE_U32, 24 * TIMEAVATAR_SIZE_U32)?
-        };
-        overlay(&mut canvas.img, &rgbimg, minute * TIMEAVATAR_SIZE_I64, hour * TIMEAVATAR_SIZE_I64);
-        Ok(canvas_option.0.insert(canvas).img.clone())
+        Ok(apply_to_canvas(|mut canvas, _| {
+            overlay(&mut canvas.img, &rgbimg, minute * TIMEAVATAR_SIZE_I64, hour * TIMEAVATAR_SIZE_I64);
+            Ok(canvas)
+        }, &mut canvas_option.0, Some((60 * TIMEAVATAR_SIZE_U32, 24 * TIMEAVATAR_SIZE_U32)), "")?.img.clone())
     } as Result<RgbImage, CanvasError>)?;
     let cursor = image_to_cursor(resimg, scale)?;
     Ok(response_image!(cursor))
-- 
2.43.0