X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=jwxyz%2Fjwxyz.m;fp=jwxyz%2Fjwxyz.m;h=4256f6df438edba34bd15847870a9b096c14b313;hp=9e7b57b330a5bdd34793ab1c2f9cd4af9093f702;hb=c85f503f5793839a6be4c818332aca4a96927bb2;hpb=78add6e627ee5f10e1fa6f3852602ea5066eee5a diff --git a/jwxyz/jwxyz.m b/jwxyz/jwxyz.m index 9e7b57b3..4256f6df 100644 --- a/jwxyz/jwxyz.m +++ b/jwxyz/jwxyz.m @@ -342,11 +342,16 @@ jwxyz_quartz_make_display (Window w) union color_bytes color; convert_mode_t mode = convert_mode_invert (convert_mode_to_rgba (d->bitmap_info)); + unsigned long masks[4]; for (unsigned i = 0; i != 4; ++i) { color.pixel = 0; color.bytes[i] = 0xff; - v->rgba_masks[i] = convert_px (color.pixel, mode); + masks[i] = convert_px (color.pixel, mode); } + v->red_mask = masks[0]; + v->green_mask = masks[1]; + v->blue_mask = masks[2]; + v->alpha_mask = masks[3]; CGBitmapInfo byte_order = d->bitmap_info & kCGBitmapByteOrderMask; Assert ( ! (d->bitmap_info & kCGBitmapFloatComponents) && @@ -1501,12 +1506,17 @@ jwxyz_png_to_ximage (Display *dpy, Visual *visual, NSImage *img = [[NSImage alloc] initWithData: [NSData dataWithBytes:png_data length:data_size]]; + if (! img) return 0; #ifndef USE_IPHONE NSBitmapImageRep *bm = [NSBitmapImageRep imageRepWithData: [NSBitmapImageRep TIFFRepresentationOfImageRepsInArray: [img representations]]]; + if (!bm) { + [img release]; + return 0; + } int width = [img size].width; int height = [img size].height; size_t ibpp = [bm bitsPerPixel]; @@ -1517,6 +1527,10 @@ jwxyz_png_to_ximage (Display *dpy, Visual *visual, : 0); #else // USE_IPHONE CGImageRef cgi = [img CGImage]; + if (!cgi) { + [img release]; + return 0; + } int width = CGImageGetWidth (cgi); int height = CGImageGetHeight (cgi); size_t ibpp = 32;