Mercurial > hg > icedtea6-hg
view patches/openjdk/8014205-blank_swing_dialogs_windows.patch @ 3243:60be25a84f2d
PR2954: ecj/override.patch is missing new @Overrides in RMIJRMPServerImpl.java
2016-05-13 Andrew John Hughes <gnu.andrew@redhat.com>
PR2954: ecj/override.patch is missing new
@Overrides in RMIJRMPServerImpl.java
* NEWS: Updated.
* patches/ecj/override.patch:
Add cases in RMIJRMPServerImpl and others
which show up when source/target 5 is
used in the rt-class-files pre-build.
* patches/openjdk/8014205-blank_swing_dialogs_windows.patch:
Remove addition of @Override.
author | Andrew John Hughes <gnu.andrew@redhat.com> |
---|---|
date | Fri, 13 May 2016 14:02:18 +0100 |
parents | affe15667ff7 |
children |
line wrap: on
line source
# HG changeset patch # User bae # Date 1368792434 -14400 # Node ID 683f472433103a1aaee0bbee21814328fecd91a6 # Parent 8c2f91c4c4b80f8725786a3006ee6043d765af72 8014205: Most of the Swing dialogs are blank on one win7 MUI Reviewed-by: prr, vadim --- openjdk/jdk/src/share/classes/java/awt/image/BufferedImage.java +++ openjdk/jdk/src/share/classes/java/awt/image/BufferedImage.java @@ -35,6 +35,8 @@ import java.awt.geom.Point2D; import java.awt.Point; import java.awt.Rectangle; +import java.security.AccessController; +import java.security.PrivilegedAction; import java.util.Hashtable; import java.util.Vector; @@ -643,6 +645,7 @@ this.properties = properties; int numBands = raster.getNumBands(); boolean isAlphaPre = cm.isAlphaPremultiplied(); + final boolean isStandard = isStandard(cm, raster); ColorSpace cs; // Force the raster data alpha state to match the premultiplied @@ -653,20 +656,19 @@ cs = cm.getColorSpace(); int csType = cs.getType(); if (csType != ColorSpace.TYPE_RGB) { - if (csType == ColorSpace.TYPE_GRAY - && ComponentColorModel.class.equals(cm.getClass())) { + if (csType == ColorSpace.TYPE_GRAY && + isStandard && + cm instanceof ComponentColorModel) { // Check if this might be a child raster (fix for bug 4240596) if (sm instanceof ComponentSampleModel && ((ComponentSampleModel)sm).getPixelStride() != numBands) { imageType = TYPE_CUSTOM; } else if (raster instanceof ByteComponentRaster && - PixelInterleavedSampleModel.class.equals(sm.getClass()) && raster.getNumBands() == 1 && cm.getComponentSize(0) == 8 && ((ByteComponentRaster)raster).getPixelStride() == 1) { imageType = TYPE_BYTE_GRAY; } else if (raster instanceof ShortComponentRaster && - PixelInterleavedSampleModel.class.equals(sm.getClass()) && raster.getNumBands() == 1 && cm.getComponentSize(0) == 16 && ((ShortComponentRaster)raster).getPixelStride() == 1) { @@ -686,8 +688,8 @@ // are correct int pixSize = cm.getPixelSize(); if (iraster.getPixelStride() == 1 && - DirectColorModel.class.equals(cm.getClass()) && - SinglePixelPackedSampleModel.class.equals(sm.getClass()) && + isStandard && + cm instanceof DirectColorModel && (pixSize == 32 || pixSize == 24)) { // Now check on the DirectColorModel params @@ -718,21 +720,17 @@ } // if (rmask == DCM_BGR_RED_MASK && } // if (iraster.getPixelStride() == 1 } // ((raster instanceof IntegerComponentRaster) && - else if ((IndexColorModel.class.equals(cm.getClass())) && - (numBands == 1) && + else if ((cm instanceof IndexColorModel) && (numBands == 1) && + isStandard && (!cm.hasAlpha() || !isAlphaPre)) { IndexColorModel icm = (IndexColorModel) cm; int pixSize = icm.getPixelSize(); - if (raster instanceof BytePackedRaster && - MultiPixelPackedSampleModel.class.equals(sm.getClass())) - { + if (raster instanceof BytePackedRaster) { imageType = TYPE_BYTE_BINARY; } // if (raster instanceof BytePackedRaster) - else if (raster instanceof ByteComponentRaster && - PixelInterleavedSampleModel.class.equals(sm.getClass())) - { + else if (raster instanceof ByteComponentRaster) { ByteComponentRaster braster = (ByteComponentRaster) raster; if (braster.getPixelStride() == 1 && pixSize <= 8) { imageType = TYPE_BYTE_INDEXED; @@ -740,8 +738,8 @@ } } // else if (cm instanceof IndexColorModel) && (numBands == 1)) else if ((raster instanceof ShortComponentRaster) - && (DirectColorModel.class.equals(cm.getClass())) - && (SinglePixelPackedSampleModel.class.equals(sm.getClass())) + && (cm instanceof DirectColorModel) + && isStandard && (numBands == 3) && !cm.hasAlpha()) { @@ -761,6 +759,7 @@ } // else if ((cm instanceof IndexColorModel) && (numBands == 1)) else if ((raster instanceof ByteComponentRaster) && (cm instanceof ComponentColorModel) + && isStandard && (raster.getSampleModel() instanceof PixelInterleavedSampleModel) && (numBands == 3 || numBands == 4)) { @@ -788,9 +787,7 @@ braster.getPixelStride() == numBands && offs[0] == numBands-1 && offs[1] == numBands-2 && - offs[2] == numBands-3 && - ComponentColorModel.class.equals(ccm.getClass()) && - PixelInterleavedSampleModel.class.equals(csm.getClass())) + offs[2] == numBands-3) { if (numBands == 3 && !ccm.hasAlpha()) { imageType = TYPE_3BYTE_BGR; @@ -804,6 +801,26 @@ } // else if ((raster instanceof ByteComponentRaster) && } + private static boolean isStandard(ColorModel cm, WritableRaster wr) { + final Class<? extends ColorModel> cmClass = cm.getClass(); + final Class<? extends WritableRaster> wrClass = wr.getClass(); + final Class<? extends SampleModel> smClass = wr.getSampleModel().getClass(); + + final PrivilegedAction<Boolean> checkClassLoadersAction = + new PrivilegedAction<Boolean>() + { + + public Boolean run() { + final ClassLoader std = System.class.getClassLoader(); + + return (cmClass.getClassLoader() == std) && + (smClass.getClassLoader() == std) && + (wrClass.getClassLoader() == std); + } + }; + return AccessController.doPrivileged(checkClassLoadersAction); + } + /** * Returns the image type. If it is not one of the known types, * TYPE_CUSTOM is returned.