Skip to content

Commit 534e994

Browse files
committed
Add check for provider
In inner classes of Image. Fixes #1667
1 parent d13fe1e commit 534e994

File tree

1 file changed

+10
-2
lines changed
  • bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics

1 file changed

+10
-2
lines changed

bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/graphics/Image.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -2041,6 +2041,12 @@ private abstract class AbstractImageProviderWrapper {
20412041
abstract ImageHandle getImageMetadata(int zoom);
20422042
abstract AbstractImageProviderWrapper createCopy(Image image);
20432043

2044+
protected void checkProvider(Object provider, Class<?> expectedClass) {
2045+
if (provider == null || !expectedClass.isAssignableFrom(provider.getClass())) {
2046+
SWT.error(SWT.ERROR_NULL_ARGUMENT);
2047+
}
2048+
}
2049+
20442050
@Override
20452051
public int hashCode() {
20462052
return getProvider().hashCode();
@@ -2061,7 +2067,8 @@ private class ImageFileNameProviderWrapper extends AbstractImageProviderWrapper
20612067
private final ImageFileNameProvider provider;
20622068

20632069
ImageFileNameProviderWrapper(ImageFileNameProvider provider) {
2064-
this.provider = Objects.requireNonNull(provider);
2070+
checkProvider(provider, ImageFileNameProvider.class);
2071+
this.provider = provider;
20652072
}
20662073

20672074
@Override
@@ -2111,7 +2118,8 @@ private class ImageDataProviderWrapper extends AbstractImageProviderWrapper {
21112118
private final ImageDataProvider provider;
21122119

21132120
ImageDataProviderWrapper(ImageDataProvider provider) {
2114-
this.provider = Objects.requireNonNull(provider);
2121+
checkProvider(provider, ImageDataProvider.class);
2122+
this.provider = provider;
21152123
}
21162124

21172125
@Override

0 commit comments

Comments
 (0)