Mercurial > dwindows
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;