jobject Java_java_awt_Toolkit_imgCreateFromFile (JNIEnv *env, jclass clazz UNUSED, jstring fileName) { char *fname; s_image_t *img; DEBUGF("Enter"); fname = java2CString(env, fileName); s_image_init(&img); if (s_image_img(fname, img)) { s_image_uninit(img); AWT_FREE(fname); return NULL; } AWT_FREE(fname); DEBUGF("Leave"); return JCL_NewRawDataObject(env, img); }
void freeImage( Toolkit* X, Image* img) { Image *next, *first = img; /* we have to be aware of image rings (GIF movies), iterate */ do { DeleteObject( img->bmp); DeleteDC( img->dc); img->bmp = 0; img->dc = 0; if ( img->mask) { DeleteObject( img->mask); DeleteDC( img->dcMask); img->mask = 0; img->dcMask = 0; } next = img->next; AWT_FREE( img); img = next; } while ( (img != 0) && (img != first) ); }