aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/java/awt
diff options
context:
space:
mode:
authorMatthias Klose <doko@gcc.gnu.org>2008-06-28 13:29:13 +0000
committerMatthias Klose <doko@gcc.gnu.org>2008-06-28 13:29:13 +0000
commite0441a5bfb29083a532307ba2b1fd6d6d13944ba (patch)
tree602cd7aa7c947386134690d8e0f6b53abcdeacb9 /libjava/classpath/java/awt
parent15c151967dd1cde61b79d26374f608f63a29d411 (diff)
downloadgcc-e0441a5bfb29083a532307ba2b1fd6d6d13944ba.zip
gcc-e0441a5bfb29083a532307ba2b1fd6d6d13944ba.tar.gz
gcc-e0441a5bfb29083a532307ba2b1fd6d6d13944ba.tar.bz2
Import GNU Classpath (classpath-0_97_2-release).
libjava/ 2008-06-28 Matthias Klose <doko@ubuntu.com> Import GNU Classpath (classpath-0_97_2-release). * Regenerate class and header files. * Regenerate auto* files. * gcj/javaprims.h: Define jobjectRefType. * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only). (_Jv_JNIFunctions): Initialize GetObjectRefType. * gnu/classpath/jdwp/VMVirtualMachine.java, java/security/VMSecureRandom.java: Merge from classpath. * HACKING: Fix typo. * ChangeLog-2007: New file. * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath. libjava/classpath/ 2008-06-28 Matthias Klose <doko@ubuntu.com> * m4/ac_prog_javac.m4: Disable check for JAVAC, when not configured with --enable-java-maintainer-mode. * aclocal.m4, configure: Regenerate. * native/jni/gstreamer-peer/Makefile.am: Do not link with libclasspathnative. * native/jni/gstreamer-peer/Makefile.in: Regenerate. * tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting JCOMPILER, drop flags not understood by gcj. From-SVN: r137223
Diffstat (limited to 'libjava/classpath/java/awt')
-rw-r--r--libjava/classpath/java/awt/AWTKeyStroke.java6
-rw-r--r--libjava/classpath/java/awt/Container.java6
-rw-r--r--libjava/classpath/java/awt/DefaultKeyboardFocusManager.java2
-rw-r--r--libjava/classpath/java/awt/Desktop.java4
-rw-r--r--libjava/classpath/java/awt/Font.java21
-rw-r--r--libjava/classpath/java/awt/GridBagLayout.java29
-rw-r--r--libjava/classpath/java/awt/LightweightDispatcher.java3
-rw-r--r--libjava/classpath/java/awt/MenuShortcut.java2
-rw-r--r--libjava/classpath/java/awt/color/ICC_Profile.java13
-rw-r--r--libjava/classpath/java/awt/dnd/DragGestureRecognizer.java2
-rw-r--r--libjava/classpath/java/awt/event/MouseEvent.java33
-rw-r--r--libjava/classpath/java/awt/font/LineBreakMeasurer.java2
-rw-r--r--libjava/classpath/java/awt/font/TextMeasurer.java1
-rw-r--r--libjava/classpath/java/awt/geom/Arc2D.java2
-rw-r--r--libjava/classpath/java/awt/geom/CubicCurve2D.java8
-rw-r--r--libjava/classpath/java/awt/geom/QuadCurve2D.java8
-rw-r--r--libjava/classpath/java/awt/im/InputContext.java5
-rw-r--r--libjava/classpath/java/awt/image/AffineTransformOp.java2
-rw-r--r--libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java4
-rw-r--r--libjava/classpath/java/awt/image/BufferedImage.java2
-rw-r--r--libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java29
-rw-r--r--libjava/classpath/java/awt/image/RGBImageFilter.java2
-rw-r--r--libjava/classpath/java/awt/image/Raster.java2
23 files changed, 100 insertions, 88 deletions
diff --git a/libjava/classpath/java/awt/AWTKeyStroke.java b/libjava/classpath/java/awt/AWTKeyStroke.java
index 0fc4428..378e4eb 100644
--- a/libjava/classpath/java/awt/AWTKeyStroke.java
+++ b/libjava/classpath/java/awt/AWTKeyStroke.java
@@ -260,7 +260,7 @@ public class AWTKeyStroke implements Serializable
c.setAccessible(true);
// Create a new instance, to make sure that we can, and
// to cause any ClassCastException.
- AWTKeyStroke dummy = (AWTKeyStroke) c.newInstance(null);
+ AWTKeyStroke dummy = (AWTKeyStroke) c.newInstance();
return c;
}
});
@@ -632,7 +632,7 @@ public class AWTKeyStroke implements Serializable
else
try
{
- stroke = (AWTKeyStroke) c.newInstance(null);
+ stroke = (AWTKeyStroke) c.newInstance();
stroke.keyChar = keyChar;
stroke.keyCode = keyCode;
stroke.modifiers = modifiers;
@@ -643,7 +643,7 @@ public class AWTKeyStroke implements Serializable
throw (Error) new InternalError().initCause(e);
}
// Check level 1 cache.
- AWTKeyStroke cached = (AWTKeyStroke) cache.get(stroke);
+ AWTKeyStroke cached = cache.get(stroke);
if (cached == null)
cache.put(stroke, stroke);
else
diff --git a/libjava/classpath/java/awt/Container.java b/libjava/classpath/java/awt/Container.java
index e7622f2..1e50040 100644
--- a/libjava/classpath/java/awt/Container.java
+++ b/libjava/classpath/java/awt/Container.java
@@ -1322,10 +1322,10 @@ public class Container extends Component
while (true)
{
if (comp == null)
- return false;
- if (comp == this)
- return true;
+ return false;
comp = comp.getParent();
+ if (comp == this)
+ return true;
}
}
}
diff --git a/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java b/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java
index 9fea99b..325e3ac 100644
--- a/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java
+++ b/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java
@@ -350,7 +350,7 @@ public class DefaultKeyboardFocusManager extends KeyboardFocusManager
while (i.hasNext ())
{
KeyEventPostProcessor processor = (KeyEventPostProcessor) i.next ();
- if (processor.postProcessKeyEvent ((KeyEvent) e))
+ if (processor.postProcessKeyEvent (e))
return true;
}
diff --git a/libjava/classpath/java/awt/Desktop.java b/libjava/classpath/java/awt/Desktop.java
index 8010464..227b8b1 100644
--- a/libjava/classpath/java/awt/Desktop.java
+++ b/libjava/classpath/java/awt/Desktop.java
@@ -120,7 +120,7 @@ public class Desktop
}
/**
- * Returns an istance of the Desktop Class.
+ * Returns an instance of the Desktop Class.
*
* If this implementation does not support Desktop, an
* UnsupportedOperationException will be thrown.
@@ -155,7 +155,7 @@ public class Desktop
* @return true if this class is supported on the current platform;
* false otherwise
*/
- private static boolean isDesktopSupported()
+ public static boolean isDesktopSupported()
{
if (GraphicsEnvironment.isHeadless())
return false;
diff --git a/libjava/classpath/java/awt/Font.java b/libjava/classpath/java/awt/Font.java
index d6892a6..4e6e6bd 100644
--- a/libjava/classpath/java/awt/Font.java
+++ b/libjava/classpath/java/awt/Font.java
@@ -229,6 +229,11 @@ public class Font implements Serializable
// The ClasspathToolkit-provided peer which implements this font
private transient ClasspathFontPeer peer;
+ /**
+ * The cached hashcode. A value of 0 (default initialized) means that the
+ * hashcode is not computed yet.
+ */
+ private transient int hashCode;
/**
* Creates a <code>Font</code> object from the specified string, which
@@ -1318,7 +1323,21 @@ public class Font implements Serializable
*/
public int hashCode()
{
- return this.toString().hashCode();
+ // We cache the hashcode. This makes sense, because the font wouldn't
+ // change the relevant properties.
+ if (hashCode == 0)
+ {
+ hashCode = getName().hashCode() ^ getTransform().hashCode() ^ getSize()
+ ^ getStyle();
+ // In the rare case when the above yields 0, we set this to some other
+ // value to avoid recomputing over and over again. This is still
+ // conform to the specification of hashCode().
+ if (hashCode == 0)
+ {
+ hashCode = -1;
+ }
+ }
+ return hashCode;
}
diff --git a/libjava/classpath/java/awt/GridBagLayout.java b/libjava/classpath/java/awt/GridBagLayout.java
index 0415c7b..d016fd3 100644
--- a/libjava/classpath/java/awt/GridBagLayout.java
+++ b/libjava/classpath/java/awt/GridBagLayout.java
@@ -211,12 +211,12 @@ public class GridBagLayout
protected GridBagConstraints lookupConstraints (Component component)
{
- GridBagConstraints result = (GridBagConstraints) comptable.get (component);
+ GridBagConstraints result = comptable.get (component);
if (result == null)
{
setConstraints (component, defaultConstraints);
- result = (GridBagConstraints) comptable.get (component);
+ result = comptable.get (component);
}
return result;
@@ -224,8 +224,7 @@ public class GridBagLayout
private GridBagConstraints lookupInternalConstraints (Component component)
{
- GridBagConstraints result =
- (GridBagConstraints) internalcomptable.get (component);
+ GridBagConstraints result = internalcomptable.get (component);
if (result == null)
{
@@ -562,7 +561,7 @@ public class GridBagLayout
x = 0;
else
{
- Component lastComponent = (Component) lastInRow.get(new Integer(constraints.gridy));
+ Component lastComponent = lastInRow.get(new Integer(constraints.gridy));
GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
x = lastConstraints.gridx + Math.max(1, lastConstraints.gridwidth);
}
@@ -573,7 +572,7 @@ public class GridBagLayout
{
if (lastInRow.containsKey(new Integer(y)))
{
- Component lastComponent = (Component) lastInRow.get(new Integer(y));
+ Component lastComponent = lastInRow.get(new Integer(y));
GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
x = Math.max (x,
lastConstraints.gridx + Math.max(1, lastConstraints.gridwidth));
@@ -595,7 +594,7 @@ public class GridBagLayout
}
else
{
- Component lastComponent = (Component)lastInCol.get(new Integer(constraints.gridx));
+ Component lastComponent = lastInCol.get(new Integer(constraints.gridx));
GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
y = lastConstraints.gridy + Math.max(1, lastConstraints.gridheight);
}
@@ -606,7 +605,7 @@ public class GridBagLayout
{
if (lastInCol.containsKey(new Integer(x)))
{
- Component lastComponent = (Component) lastInCol.get(new Integer(x));
+ Component lastComponent = lastInCol.get(new Integer(x));
GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
y = Math.max (y,
lastConstraints.gridy + Math.max(1, lastConstraints.gridheight));
@@ -636,7 +635,7 @@ public class GridBagLayout
{
if(lastInRow.containsKey(new Integer(y)))
{
- Component lastComponent = (Component) lastInRow.get(new Integer(y));
+ Component lastComponent = lastInRow.get(new Integer(y));
GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
if (constraints.gridx > lastConstraints.gridx)
{
@@ -653,7 +652,7 @@ public class GridBagLayout
{
if(lastInCol.containsKey(new Integer(x)))
{
- Component lastComponent = (Component) lastInCol.get(new Integer(x));
+ Component lastComponent = lastInCol.get(new Integer(x));
GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
if (constraints.gridy > lastConstraints.gridy)
{
@@ -707,7 +706,7 @@ public class GridBagLayout
{
if (lastInRow.containsKey(new Integer(y)))
{
- Component lastComponent = (Component) lastInRow.get(new Integer(y));
+ Component lastComponent = lastInRow.get(new Integer(y));
GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
if (lastConstraints.gridwidth == GridBagConstraints.RELATIVE)
@@ -742,7 +741,7 @@ public class GridBagLayout
{
if (lastInCol.containsKey(new Integer(x)))
{
- Component lastComponent = (Component) lastInRow.get(new Integer(x));
+ Component lastComponent = lastInRow.get(new Integer(x));
if (lastComponent != null)
{
GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
@@ -804,7 +803,7 @@ public class GridBagLayout
// STEP 4: Determine sizes and weights for rows.
for (int i = 0; i < sortedByHeight.size(); i++)
{
- Component component = (Component) sortedByHeight.get(i);
+ Component component = sortedByHeight.get(i);
// If component is not visible we dont have to care about it.
if (!component.isVisible())
@@ -904,7 +903,7 @@ public class GridBagLayout
int i = 0;
if (list.size() > 0)
{
- GridBagConstraints gbc = lookupInternalConstraints((Component) list.get(i));
+ GridBagConstraints gbc = lookupInternalConstraints(list.get(i));
int otherspan = sortByWidth ?
gbc.gridwidth :
gbc.gridheight;
@@ -915,7 +914,7 @@ public class GridBagLayout
i++;
if (i < list.size())
{
- gbc = lookupInternalConstraints((Component) list.get(i));
+ gbc = lookupInternalConstraints(list.get(i));
otherspan = sortByWidth ?
gbc.gridwidth :
gbc.gridheight;
diff --git a/libjava/classpath/java/awt/LightweightDispatcher.java b/libjava/classpath/java/awt/LightweightDispatcher.java
index 04196bd..39bdb88 100644
--- a/libjava/classpath/java/awt/LightweightDispatcher.java
+++ b/libjava/classpath/java/awt/LightweightDispatcher.java
@@ -286,7 +286,8 @@ final class LightweightDispatcher
private void redispatch(MouseEvent ev, Component target, int id)
{
Component source = ev.getComponent();
- if (target != null)
+ assert target != null;
+ if (target.isShowing())
{
// Translate coordinates.
int x = ev.getX();
diff --git a/libjava/classpath/java/awt/MenuShortcut.java b/libjava/classpath/java/awt/MenuShortcut.java
index 259cbf1..5216d34 100644
--- a/libjava/classpath/java/awt/MenuShortcut.java
+++ b/libjava/classpath/java/awt/MenuShortcut.java
@@ -38,8 +38,6 @@ exception statement from your version. */
package java.awt;
-import java.awt.event.KeyEvent;
-
/**
* This class implements a keyboard accelerator for a menu item.
*
diff --git a/libjava/classpath/java/awt/color/ICC_Profile.java b/libjava/classpath/java/awt/color/ICC_Profile.java
index 1072cd6..e2efb3a 100644
--- a/libjava/classpath/java/awt/color/ICC_Profile.java
+++ b/libjava/classpath/java/awt/color/ICC_Profile.java
@@ -426,10 +426,15 @@ public class ICC_Profile implements Serializable
System.arraycopy(headerData, 0, data, 0, ProfileHeader.HEADERSIZE);
// read the rest
- if (in.read(data, ProfileHeader.HEADERSIZE,
- header.getSize() - ProfileHeader.HEADERSIZE) != header.getSize()
- - ProfileHeader.HEADERSIZE)
- throw new IOException("Incorrect profile size");
+ int totalBytes = header.getSize() - ProfileHeader.HEADERSIZE;
+ int bytesLeft = totalBytes;
+ while (bytesLeft > 0)
+ {
+ int read = in.read(data,
+ ProfileHeader.HEADERSIZE + (totalBytes - bytesLeft),
+ bytesLeft);
+ bytesLeft -= read;
+ }
return getInstance(data);
}
diff --git a/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java b/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java
index 3973e52..fb37b4f 100644
--- a/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java
+++ b/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java
@@ -124,7 +124,7 @@ public abstract class DragGestureRecognizer implements Serializable
public InputEvent getTriggerEvent()
{
- return events.size() > 0 ? (InputEvent) events.get(0) : null;
+ return events.size() > 0 ? events.get(0) : null;
}
/**
diff --git a/libjava/classpath/java/awt/event/MouseEvent.java b/libjava/classpath/java/awt/event/MouseEvent.java
index ad777e8..0ca8336 100644
--- a/libjava/classpath/java/awt/event/MouseEvent.java
+++ b/libjava/classpath/java/awt/event/MouseEvent.java
@@ -221,37 +221,8 @@ public class MouseEvent extends InputEvent
int x, int y, int clickCount, boolean popupTrigger,
int button)
{
- super(source, id, when, modifiers);
-
- this.x = x;
- this.y = y;
- this.clickCount = clickCount;
- this.popupTrigger = popupTrigger;
- this.button = button;
- if (button < NOBUTTON || button > BUTTON3)
- throw new IllegalArgumentException();
- if ((modifiers & EventModifier.OLD_MASK) != 0)
- {
- if ((modifiers & BUTTON1_MASK) != 0)
- this.button = BUTTON1;
- else if ((modifiers & BUTTON2_MASK) != 0)
- this.button = BUTTON2;
- else if ((modifiers & BUTTON3_MASK) != 0)
- this.button = BUTTON3;
- }
- // clear the mouse button modifier masks if this is a button
- // release event.
- if (id == MOUSE_RELEASED)
- this.modifiersEx &= ~(BUTTON1_DOWN_MASK
- | BUTTON2_DOWN_MASK
- | BUTTON3_DOWN_MASK);
-
- if (source != null)
- {
- Point screenLoc = source.getLocationOnScreen();
- absX = screenLoc.x + x;
- absY = screenLoc.y + y;
- }
+ this(source, id, when, modifiers, x, y, 0, 0, clickCount, popupTrigger,
+ button);
}
/**
diff --git a/libjava/classpath/java/awt/font/LineBreakMeasurer.java b/libjava/classpath/java/awt/font/LineBreakMeasurer.java
index 816c774..278bc84 100644
--- a/libjava/classpath/java/awt/font/LineBreakMeasurer.java
+++ b/libjava/classpath/java/awt/font/LineBreakMeasurer.java
@@ -39,9 +39,7 @@ exception statement from your version. */
package java.awt.font;
import java.text.AttributedCharacterIterator;
-import java.text.AttributedString;
import java.text.BreakIterator;
-import java.awt.Shape;
public final class LineBreakMeasurer
{
diff --git a/libjava/classpath/java/awt/font/TextMeasurer.java b/libjava/classpath/java/awt/font/TextMeasurer.java
index 00cab8a..f4430bf 100644
--- a/libjava/classpath/java/awt/font/TextMeasurer.java
+++ b/libjava/classpath/java/awt/font/TextMeasurer.java
@@ -39,7 +39,6 @@ exception statement from your version. */
package java.awt.font;
import java.text.AttributedCharacterIterator;
-import java.text.AttributedString;
import java.awt.Shape;
/**
diff --git a/libjava/classpath/java/awt/geom/Arc2D.java b/libjava/classpath/java/awt/geom/Arc2D.java
index 8d5b01c..eb9a160 100644
--- a/libjava/classpath/java/awt/geom/Arc2D.java
+++ b/libjava/classpath/java/awt/geom/Arc2D.java
@@ -1279,7 +1279,7 @@ public abstract class Arc2D extends RectangularShape
width = (float) r.getWidth();
height = (float) r.getHeight();
this.start = start;
- this.extent = (float) extent;
+ this.extent = extent;
}
/**
diff --git a/libjava/classpath/java/awt/geom/CubicCurve2D.java b/libjava/classpath/java/awt/geom/CubicCurve2D.java
index 50c3811..d0d5598 100644
--- a/libjava/classpath/java/awt/geom/CubicCurve2D.java
+++ b/libjava/classpath/java/awt/geom/CubicCurve2D.java
@@ -1714,10 +1714,10 @@ public abstract class CubicCurve2D implements Shape, Cloneable
*/
public Rectangle2D getBounds2D()
{
- float nx1 = (float) Math.min(Math.min(x1, ctrlx1), Math.min(ctrlx2, x2));
- float ny1 = (float) Math.min(Math.min(y1, ctrly1), Math.min(ctrly2, y2));
- float nx2 = (float) Math.max(Math.max(x1, ctrlx1), Math.max(ctrlx2, x2));
- float ny2 = (float) Math.max(Math.max(y1, ctrly1), Math.max(ctrly2, y2));
+ float nx1 = Math.min(Math.min(x1, ctrlx1), Math.min(ctrlx2, x2));
+ float ny1 = Math.min(Math.min(y1, ctrly1), Math.min(ctrly2, y2));
+ float nx2 = Math.max(Math.max(x1, ctrlx1), Math.max(ctrlx2, x2));
+ float ny2 = Math.max(Math.max(y1, ctrly1), Math.max(ctrly2, y2));
return new Rectangle2D.Float(nx1, ny1, nx2 - nx1, ny2 - ny1);
}
}
diff --git a/libjava/classpath/java/awt/geom/QuadCurve2D.java b/libjava/classpath/java/awt/geom/QuadCurve2D.java
index 41021db..d247c79 100644
--- a/libjava/classpath/java/awt/geom/QuadCurve2D.java
+++ b/libjava/classpath/java/awt/geom/QuadCurve2D.java
@@ -1457,10 +1457,10 @@ public abstract class QuadCurve2D implements Shape, Cloneable
*/
public Rectangle2D getBounds2D()
{
- float nx1 = (float) Math.min(Math.min(x1, ctrlx), x2);
- float ny1 = (float) Math.min(Math.min(y1, ctrly), y2);
- float nx2 = (float) Math.max(Math.max(x1, ctrlx), x2);
- float ny2 = (float) Math.max(Math.max(y1, ctrly), y2);
+ float nx1 = Math.min(Math.min(x1, ctrlx), x2);
+ float ny1 = Math.min(Math.min(y1, ctrly), y2);
+ float nx2 = Math.max(Math.max(x1, ctrlx), x2);
+ float ny2 = Math.max(Math.max(y1, ctrly), y2);
return new Rectangle2D.Float(nx1, ny1, nx2 - nx1, ny2 - ny1);
}
}
diff --git a/libjava/classpath/java/awt/im/InputContext.java b/libjava/classpath/java/awt/im/InputContext.java
index c819932..c2e09b6 100644
--- a/libjava/classpath/java/awt/im/InputContext.java
+++ b/libjava/classpath/java/awt/im/InputContext.java
@@ -216,12 +216,11 @@ public class InputContext
recent.put(locale, im);
return true;
}
- InputMethod next = (InputMethod) recent.get(locale);
- outer:
+ InputMethod next = recent.get(locale);
if (next != null)
for (int i = 0, limit = descriptors.size(); i < limit; i++)
{
- InputMethodDescriptor d = (InputMethodDescriptor) descriptors.get(i);
+ InputMethodDescriptor d = descriptors.get(i);
Locale[] list;
try
{
diff --git a/libjava/classpath/java/awt/image/AffineTransformOp.java b/libjava/classpath/java/awt/image/AffineTransformOp.java
index 849c5b0..df9db7d 100644
--- a/libjava/classpath/java/awt/image/AffineTransformOp.java
+++ b/libjava/classpath/java/awt/image/AffineTransformOp.java
@@ -188,7 +188,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp
if (dst == null)
dst = createCompatibleDestImage(src, null);
- Graphics2D gr = (Graphics2D) dst.createGraphics();
+ Graphics2D gr = dst.createGraphics();
gr.setRenderingHints(hints);
gr.drawImage(src, transform, null);
return dst;
diff --git a/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java b/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java
index 44d5cec..491a2f5 100644
--- a/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java
+++ b/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java
@@ -158,7 +158,7 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter
* @param srcOffset - Starting offset into the source pixel data array.
* @param srcScansize - Source array scanline size.
* @param rx,ry - Scaling factor.
- * @param dstScansize - Destination array scanline size.
+ * @param destScansize - Destination array scanline size.
*/
private byte[] averagePixels(int srcx, int srcy, int srcw, int srch,
ColorModel model, byte[] srcPixels,
@@ -218,7 +218,7 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter
* @param srcOffset - Starting offset into the source pixel data array.
* @param srcScansize - Source array scanline size.
* @param rx,ry - Scaling factor.
- * @param dstScansize - Destination array scanline size.
+ * @param destScansize - Destination array scanline size.
*/
private int[] averagePixels(int srcx, int srcy, int srcw, int srch,
ColorModel model, int[] srcPixels,
diff --git a/libjava/classpath/java/awt/image/BufferedImage.java b/libjava/classpath/java/awt/image/BufferedImage.java
index c987946..78623cc 100644
--- a/libjava/classpath/java/awt/image/BufferedImage.java
+++ b/libjava/classpath/java/awt/image/BufferedImage.java
@@ -41,8 +41,6 @@ package java.awt.image;
import gnu.java.awt.Buffers;
import gnu.java.awt.ClasspathGraphicsEnvironment;
import gnu.java.awt.ComponentDataBlitOp;
-import gnu.java.awt.peer.gtk.CairoSurface;
-
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsEnvironment;
diff --git a/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java b/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java
index 4c5c436..3a0d415 100644
--- a/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java
+++ b/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java
@@ -69,9 +69,34 @@ public class PixelInterleavedSampleModel
*/
public SampleModel createCompatibleSampleModel(int width, int height)
{
+ // Find minimum band offset.
+ int minBandoff = bandOffsets[0];
+ int numBands = bandOffsets.length;
+ for (int i = 1; i < numBands; i++)
+ {
+ if (bandOffsets[i] < minBandoff)
+ {
+ minBandoff = bandOffsets[i];
+ }
+ }
+ // Adjust band offsets so that minimum offset is at 0.
+ int[] bandOff;
+ if (minBandoff > 0)
+ {
+ bandOff = new int[numBands];
+ for (int i = 0; i < numBands; i++)
+ {
+ bandOff[i] = bandOffsets[i] - minBandoff;
+ }
+ }
+ else
+ {
+ bandOff = bandOffsets;
+ }
+ // Adjust scanline stride for new width.
return new PixelInterleavedSampleModel(dataType, width, height,
- pixelStride, scanlineStride,
- bandOffsets);
+ pixelStride, pixelStride * width,
+ bandOff);
}
diff --git a/libjava/classpath/java/awt/image/RGBImageFilter.java b/libjava/classpath/java/awt/image/RGBImageFilter.java
index c777fec..3cd1423 100644
--- a/libjava/classpath/java/awt/image/RGBImageFilter.java
+++ b/libjava/classpath/java/awt/image/RGBImageFilter.java
@@ -245,7 +245,7 @@ public abstract class RGBImageFilter extends ImageFilter
{
for (int xp = 0; xp < w; xp++)
{
- filtered[xp] = model.getRGB((pixels[index] & 0xff));
+ filtered[xp] = model.getRGB((pixels[index]));
index++;
}
index += scansize - w;
diff --git a/libjava/classpath/java/awt/image/Raster.java b/libjava/classpath/java/awt/image/Raster.java
index d63e156..fb0950d 100644
--- a/libjava/classpath/java/awt/image/Raster.java
+++ b/libjava/classpath/java/awt/image/Raster.java
@@ -302,7 +302,7 @@ public class Raster
Point location)
{
SampleModel sm = new ComponentSampleModel(dataBuffer.getDataType(),
- w, h, scanlineStride, pixelStride, bandOffsets);
+ w, h, pixelStride, scanlineStride, bandOffsets);
return createWritableRaster(sm, dataBuffer, location);
}