@@ -736,19 +736,11 @@ public Image(Device device, InputStream stream) {
736736 */
737737public Image (Device device , String filename ) {
738738 super (device );
739- NSAutoreleasePool pool = null ;
740- if (!NSThread .isMainThread ()) pool = (NSAutoreleasePool ) new NSAutoreleasePool ().alloc ().init ();
741- try {
742- if (filename == null ) SWT .error (SWT .ERROR_NULL_ARGUMENT );
743- initNative (filename );
744- if (this .handle == null ) {
745- initWithSupplier (zoom -> ImageDataLoader .canLoadAtZoom (filename , FileFormat .DEFAULT_ZOOM , zoom ),
746- zoom -> ImageDataLoader .loadByZoom (filename , FileFormat .DEFAULT_ZOOM , zoom ).element ());
747- }
748- init ();
749- } finally {
750- if (pool != null ) pool .release ();
751- }
739+ if (filename == null ) SWT .error (SWT .ERROR_NULL_ARGUMENT );
740+ ImageFileNameProvider imageFileNameProvider = (ImageFileNameProvider ) zoom -> {
741+ return zoom == 100 ? filename : null ;
742+ };
743+ initUsingFileNameProvider (imageFileNameProvider );
752744}
753745
754746/**
@@ -783,6 +775,10 @@ public Image(Device device, String filename) {
783775public Image (Device device , ImageFileNameProvider imageFileNameProvider ) {
784776 super (device );
785777 if (imageFileNameProvider == null ) SWT .error (SWT .ERROR_NULL_ARGUMENT );
778+ initUsingFileNameProvider (imageFileNameProvider );
779+ }
780+
781+ private void initUsingFileNameProvider (ImageFileNameProvider imageFileNameProvider ) {
786782 this .imageFileNameProvider = imageFileNameProvider ;
787783 String filename = imageFileNameProvider .getImagePath (100 );
788784 if (filename == null ) SWT .error (SWT .ERROR_INVALID_ARGUMENT );
0 commit comments