changeset 2437:929ce3cd18ea

iOS: Fix bitblt and crashes due to missing retains.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 06 Apr 2021 09:19:06 +0000
parents ab36fbb50fe5
children f273dbf1312f
files ios/dw.m
diffstat 1 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ios/dw.m	Tue Apr 06 08:54:57 2021 +0000
+++ b/ios/dw.m	Tue Apr 06 09:19:06 2021 +0000
@@ -1169,10 +1169,10 @@
     if(context)
         UIGraphicsPushContext(context);
 
-    if(bltdest && [bltsrc isMemberOfClass:[UIImage class]])
-    {
-        UIImage *rep = bltsrc;
-        UIImage *image = [[UIImage alloc] initWithCGImage:[rep CGImage]];
+    if(bltdest && [bltsrc isMemberOfClass:[DWImage class]])
+    {
+        DWImage *rep = bltsrc;
+        UIImage *image = [rep image];
         CGBlendMode op = kCGBlendModeNormal;
 
         if(bltinfo->srcwidth != -1)
@@ -1187,8 +1187,6 @@
                       /*fromRect:CGRectMake(bltinfo->xsrc, bltinfo->ysrc, bltinfo->width, bltinfo->height)*/
                      blendMode:op alpha:1.0];
         }
-        [bltsrc release];
-        [image release];
     }
     if(context)
         UIGraphicsPopContext();
@@ -1517,6 +1515,7 @@
         CGImageRef cgimage = CGBitmapContextCreateImage(cgcontext);
         image = [UIImage imageWithCGImage:cgimage];
         CGContextRelease(cgcontext);
+        [image retain];
     }
     return self;
 }
@@ -1560,6 +1559,7 @@
         image = [UIImage imageWithCGImage:cgimage];
         CGContextRelease(cgcontext);
         cgcontext = nil;
+        [image retain];
         [oldimage release];
     }
     return image;