diff options
author | Sven Weidauer <sven@5sw.de> | 2017-06-05 10:47:34 +0200 |
---|---|---|
committer | Sven Weidauer <sven@5sw.de> | 2017-06-05 10:51:19 +0200 |
commit | 3ee40a10b123c36be3e29602767840a7a71aaafa (patch) | |
tree | 64123d0bf6a6cf5a5a4c1fd8349756db68e09483 /frontends/cocoa/apple_image.m | |
parent | ce4e059ea67cee7f35b4b810a4387f343fa74650 (diff) | |
download | netsurf-3ee40a10b123c36be3e29602767840a7a71aaafa.tar.gz netsurf-3ee40a10b123c36be3e29602767840a7a71aaafa.tar.bz2 |
Fix up cocoa frontend.
- Convert to ARC
- Fix crash due to endless responder chain recursion
- Update makefile to find openssl installed via home-brew
- Fix most compiler warnings
Diffstat (limited to 'frontends/cocoa/apple_image.m')
-rw-r--r-- | frontends/cocoa/apple_image.m | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/frontends/cocoa/apple_image.m b/frontends/cocoa/apple_image.m index 0bbaabd10..a14cd10e5 100644 --- a/frontends/cocoa/apple_image.m +++ b/frontends/cocoa/apple_image.m @@ -45,7 +45,6 @@ typedef struct apple_image_content { static void *apple_image_get_internal(const struct content *c, void *context) { apple_image_content *ai_c = (apple_image_content *)c; - return ai_c->bitmap; } @@ -80,7 +79,7 @@ static void animate_image_cb( void *ptr ) ++ai->currentFrame; if (ai->currentFrame >= ai->frames) ai->currentFrame = 0; - [(NSBitmapImageRep *)ai->bitmap setProperty: NSImageCurrentFrame withValue: [NSNumber numberWithUnsignedInteger: ai->currentFrame]]; + [(__bridge NSBitmapImageRep *)ai->bitmap setProperty: NSImageCurrentFrame withValue: [NSNumber numberWithUnsignedInteger: ai->currentFrame]]; cocoa_bitmap_modified( ai->bitmap ); union content_msg_data data; @@ -105,7 +104,7 @@ static bool apple_image_convert(struct content *c) const char *bytes = content__get_source_data(c, &size); NSData *data = [NSData dataWithBytesNoCopy: (char *)bytes length: size freeWhenDone: NO]; - NSBitmapImageRep *image = [[NSBitmapImageRep imageRepWithData: data] retain]; + NSBitmapImageRep *image = [NSBitmapImageRep imageRepWithData: data]; if (image == nil) { union content_msg_data msg_data; @@ -116,7 +115,7 @@ static bool apple_image_convert(struct content *c) c->width = [image pixelsWide]; c->height = [image pixelsHigh]; - ai_c->bitmap = (void *)image; + ai_c->bitmap = (__bridge_retained void *)image; NSString *url = [NSString stringWithUTF8String: nsurl_access(llcache_handle_get_url( content_get_llcache_handle( c )) )]; NSString *title = [NSString stringWithFormat: @"%@ (%dx%d)", [url lastPathComponent], c->width, c->height]; @@ -148,7 +147,9 @@ static void apple_image_destroy(struct content *c) { apple_image_content *ai_c = (apple_image_content *)c; - [(id)ai_c->bitmap release]; + id bitmap = (__bridge_transfer id)ai_c->bitmap; + bitmap = nil; + ai_c->bitmap = NULL; cocoa_schedule(-1, animate_image_cb, c ); } @@ -174,7 +175,7 @@ static nserror apple_image_clone(const struct content *old, struct content **new old->status == CONTENT_STATUS_DONE) { ai->base.width = old->width; ai->base.height = old->height; - ai->bitmap = (void *)[(id)ai_old->bitmap retain]; + ai->bitmap = (__bridge_retained void *)((__bridge id)ai_old->bitmap); } *newc = (struct content *) ai; @@ -201,8 +202,8 @@ static bool apple_image_redraw(struct content *c, struct content_redraw_data *da if (data->repeat_y) flags |= BITMAPF_REPEAT_Y; - return ctx->plot->bitmap(data->x, data->y, data->width, data->height, - ai_c->bitmap, data->background_colour, flags); + return ctx->plot->bitmap(ctx, ai_c->bitmap, data->x, data->y, data->width, data->height, + data->background_colour, flags); } static const content_handler apple_image_content_handler = { @@ -236,7 +237,7 @@ nserror apple_image_init(void) { NSArray *utis = [NSBitmapImageRep imageTypes]; for (NSString *uti in utis) { - NSDictionary *declaration = [(NSDictionary *)UTTypeCopyDeclaration( (CFStringRef)uti ) autorelease]; + NSDictionary *declaration = (__bridge_transfer NSDictionary *)UTTypeCopyDeclaration( (__bridge CFStringRef)uti ); id mimeTypes = [[declaration objectForKey: (NSString *)kUTTypeTagSpecificationKey] objectForKey: (NSString *)kUTTagClassMIMEType]; if (mimeTypes == nil) continue; |