Imported GNU Classpath 0.92
2006-08-14 Mark Wielaard <mark@klomp.org> Imported GNU Classpath 0.92 * HACKING: Add more importing hints. Update automake version requirement. * configure.ac (gconf-peer): New enable AC argument. Add --disable-gconf-peer and --enable-default-preferences-peer to classpath configure when gconf is disabled. * scripts/makemake.tcl: Set gnu/java/util/prefs/gconf and gnu/java/awt/dnd/peer/gtk to bc. Classify gnu/java/security/Configuration.java as generated source file. * gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java, gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java, gnu/java/lang/management/VMClassLoadingMXBeanImpl.java, gnu/java/lang/management/VMRuntimeMXBeanImpl.java, gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java, gnu/java/lang/management/VMThreadMXBeanImpl.java, gnu/java/lang/management/VMMemoryMXBeanImpl.java, gnu/java/lang/management/VMCompilationMXBeanImpl.java: New VM stub classes. * java/lang/management/VMManagementFactory.java: Likewise. * java/net/VMURLConnection.java: Likewise. * gnu/java/nio/VMChannel.java: Likewise. * java/lang/Thread.java (getState): Add stub implementation. * java/lang/Class.java (isEnum): Likewise. * java/lang/Class.h (isEnum): Likewise. * gnu/awt/xlib/XToolkit.java (getClasspathTextLayoutPeer): Removed. * javax/naming/spi/NamingManager.java: New override for StackWalker functionality. * configure, sources.am, Makefile.in, gcj/Makefile.in, include/Makefile.in, testsuite/Makefile.in: Regenerated. From-SVN: r116139
This commit is contained in:
parent
abab460491
commit
ac1ed908de
1294 changed files with 99479 additions and 35933 deletions
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2002, 2003, 2004, 2006, Free Software Foundation
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
|
@ -36,10 +36,16 @@ exception statement from your version. */
|
|||
|
||||
package java.awt.image;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import gnu.java.awt.BitMaskExtent;
|
||||
import gnu.java.awt.Buffers;
|
||||
|
||||
/**
|
||||
* A <code>SampleModel</code> used when all samples are stored in a single
|
||||
* data element in the {@link DataBuffer}, and each data element contains
|
||||
* samples for one pixel only.
|
||||
*
|
||||
* @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
|
||||
*/
|
||||
public class SinglePixelPackedSampleModel extends SampleModel
|
||||
|
@ -49,12 +55,32 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
private int[] bitOffsets;
|
||||
private int[] sampleSize;
|
||||
|
||||
/**
|
||||
* Creates a new <code>SinglePixelPackedSampleModel</code>.
|
||||
*
|
||||
* @param dataType the data buffer type.
|
||||
* @param w the width (in pixels).
|
||||
* @param h the height (in pixels).
|
||||
* @param bitMasks an array containing the bit mask used to extract the
|
||||
* sample value for each band.
|
||||
*/
|
||||
public SinglePixelPackedSampleModel(int dataType, int w, int h,
|
||||
int[] bitMasks)
|
||||
{
|
||||
this(dataType, w, h, w, bitMasks);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new <code>SinglePixelPackedSampleModel</code>.
|
||||
*
|
||||
* @param dataType the data buffer type.
|
||||
* @param w the width (in pixels).
|
||||
* @param h the height (in pixels).
|
||||
* @param scanlineStride the number of data elements between a pixel on one
|
||||
* row and the corresponding pixel on the next row.
|
||||
* @param bitMasks an array containing the bit mask used to extract the
|
||||
* sample value for each band.
|
||||
*/
|
||||
public SinglePixelPackedSampleModel(int dataType, int w, int h,
|
||||
int scanlineStride, int[] bitMasks)
|
||||
{
|
||||
|
@ -67,7 +93,8 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
case DataBuffer.TYPE_INT:
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("SinglePixelPackedSampleModel unsupported dataType");
|
||||
throw new IllegalArgumentException(
|
||||
"SinglePixelPackedSampleModel unsupported dataType");
|
||||
}
|
||||
|
||||
this.scanlineStride = scanlineStride;
|
||||
|
@ -77,19 +104,35 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
sampleSize = new int[numBands];
|
||||
|
||||
BitMaskExtent extent = new BitMaskExtent();
|
||||
for (int b=0; b<numBands; b++)
|
||||
for (int b = 0; b < numBands; b++)
|
||||
{
|
||||
extent.setMask(bitMasks[b]);
|
||||
sampleSize[b] = extent.bitWidth;
|
||||
bitOffsets[b] = extent.leastSignificantBit;
|
||||
// the mask is an unsigned integer
|
||||
long mask = bitMasks[b] & 0xFFFFFFFFL;
|
||||
extent.setMask(mask);
|
||||
sampleSize[b] = extent.bitWidth;
|
||||
bitOffsets[b] = extent.leastSignificantBit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of data elements.
|
||||
*
|
||||
* @return <code>1</code>.
|
||||
*/
|
||||
public int getNumDataElements()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new <code>SampleModel</code> that is compatible with this
|
||||
* model and has the specified width and height.
|
||||
*
|
||||
* @param w the width (in pixels).
|
||||
* @param h the height (in pixels).
|
||||
*
|
||||
* @return The new sample model.
|
||||
*/
|
||||
public SampleModel createCompatibleSampleModel(int w, int h)
|
||||
{
|
||||
/* FIXME: We can avoid recalculation of bit offsets and sample
|
||||
|
@ -103,6 +146,8 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
* Creates a DataBuffer for holding pixel data in the format and
|
||||
* layout described by this SampleModel. The returned buffer will
|
||||
* consist of one single bank.
|
||||
*
|
||||
* @return The data buffer.
|
||||
*/
|
||||
public DataBuffer createDataBuffer()
|
||||
{
|
||||
|
@ -116,17 +161,40 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
return Buffers.createBuffer(getDataType(), size);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns an array containing the size (in bits) for each band accessed by
|
||||
* the <code>SampleModel</code>.
|
||||
*
|
||||
* @return An array.
|
||||
*
|
||||
* @see #getSampleSize(int)
|
||||
*/
|
||||
public int[] getSampleSize()
|
||||
{
|
||||
return sampleSize;
|
||||
return (int[]) sampleSize.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the size (in bits) of the samples for the specified band.
|
||||
*
|
||||
* @param band the band (in the range <code>0</code> to
|
||||
* <code>getNumBands() - 1</code>).
|
||||
*
|
||||
* @return The sample size (in bits).
|
||||
*/
|
||||
public int getSampleSize(int band)
|
||||
{
|
||||
return sampleSize[band];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the index in the data buffer that stores the pixel at (x, y).
|
||||
*
|
||||
* @param x the x-coordinate.
|
||||
* @param y the y-coordinate.
|
||||
*
|
||||
* @return The index in the data buffer that stores the pixel at (x, y).
|
||||
*/
|
||||
public int getOffset(int x, int y)
|
||||
{
|
||||
return scanlineStride*y + x;
|
||||
|
@ -142,20 +210,40 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
return bitMasks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of data elements from a pixel in one row to the
|
||||
* corresponding pixel in the next row.
|
||||
*
|
||||
* @return The scanline stride.
|
||||
*/
|
||||
public int getScanlineStride()
|
||||
{
|
||||
return scanlineStride;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new <code>SinglePixelPackedSampleModel</code> that accesses
|
||||
* the specified subset of bands.
|
||||
*
|
||||
* @param bands an array containing band indices (<code>null</code> not
|
||||
* permitted).
|
||||
*
|
||||
* @return A new sample model.
|
||||
*
|
||||
* @throws NullPointerException if <code>bands</code> is <code>null</code>.
|
||||
* @throws RasterFormatException if <code>bands.length</code> is greater
|
||||
* than the number of bands in this model.
|
||||
*/
|
||||
public SampleModel createSubsetSampleModel(int[] bands)
|
||||
{
|
||||
// FIXME: Is this the right way to interpret bands?
|
||||
if (bands.length > numBands)
|
||||
throw new RasterFormatException("Too many bands.");
|
||||
|
||||
int numBands = bands.length;
|
||||
|
||||
int[] bitMasks = new int[numBands];
|
||||
|
||||
for (int b=0; b<numBands; b++)
|
||||
for (int b = 0; b < numBands; b++)
|
||||
bitMasks[b] = this.bitMasks[bands[b]];
|
||||
|
||||
return new SinglePixelPackedSampleModel(dataType, width, height,
|
||||
|
@ -174,16 +262,20 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
}
|
||||
|
||||
/**
|
||||
* This is a more efficient implementation of the default implementation in the super
|
||||
* class.
|
||||
* @param x The x-coordinate of the pixel rectangle to store in <code>obj</code>.
|
||||
* @param y The y-coordinate of the pixel rectangle to store in <code>obj</code>.
|
||||
* This is a more efficient implementation of the default implementation in
|
||||
* the super class.
|
||||
* @param x The x-coordinate of the pixel rectangle to store in
|
||||
* <code>obj</code>.
|
||||
* @param y The y-coordinate of the pixel rectangle to store in
|
||||
* <code>obj</code>.
|
||||
* @param w The width of the pixel rectangle to store in <code>obj</code>.
|
||||
* @param h The height of the pixel rectangle to store in <code>obj</code>.
|
||||
* @param obj The primitive array to store the pixels into or null to force creation.
|
||||
* @param obj The primitive array to store the pixels into or null to force
|
||||
* creation.
|
||||
* @param data The DataBuffer that is the source of the pixel data.
|
||||
* @return The primitive array containing the pixel data.
|
||||
* @see java.awt.image.SampleModel#getDataElements(int, int, int, int, java.lang.Object, java.awt.image.DataBuffer)
|
||||
* @see java.awt.image.SampleModel#getDataElements(int, int, int, int,
|
||||
* java.lang.Object, java.awt.image.DataBuffer)
|
||||
*/
|
||||
public Object getDataElements(int x, int y, int w, int h, Object obj,
|
||||
DataBuffer data)
|
||||
|
@ -209,10 +301,11 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
// Seems like the only sensible thing to do.
|
||||
throw new ClassCastException();
|
||||
}
|
||||
if(x==0 && scanlineStride == w)
|
||||
if(x == 0 && scanlineStride == w)
|
||||
{
|
||||
// The full width need to be copied therefore we can copy in one shot.
|
||||
System.arraycopy(pixelData, scanlineStride*y + data.getOffset(), obj, 0, size);
|
||||
System.arraycopy(pixelData, scanlineStride*y + data.getOffset(), obj,
|
||||
0, size);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -229,32 +322,68 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
return obj;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns an array containing the samples for the pixel at (x, y) in the
|
||||
* specified data buffer. If <code>iArray</code> is not <code>null</code>,
|
||||
* it will be populated with the sample values and returned as the result of
|
||||
* this function (this avoids allocating a new array instance).
|
||||
*
|
||||
* @param x the x-coordinate of the pixel.
|
||||
* @param y the y-coordinate of the pixel.
|
||||
* @param iArray an array to populate with the sample values and return as
|
||||
* the result (if <code>null</code>, a new array will be allocated).
|
||||
* @param data the data buffer (<code>null</code> not permitted).
|
||||
*
|
||||
* @return The pixel sample values.
|
||||
*
|
||||
* @throws NullPointerException if <code>data</code> is <code>null</code>.
|
||||
*/
|
||||
public int[] getPixel(int x, int y, int[] iArray, DataBuffer data)
|
||||
{
|
||||
int offset = scanlineStride*y + x;
|
||||
if (iArray == null) iArray = new int[numBands];
|
||||
int samples = data.getElem(offset);
|
||||
|
||||
for (int b=0; b<numBands; b++)
|
||||
for (int b = 0; b < numBands; b++)
|
||||
iArray[b] = (samples & bitMasks[b]) >>> bitOffsets[b];
|
||||
|
||||
return iArray;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array containing the samples for the pixels in the region
|
||||
* specified by (x, y, w, h) in the specified data buffer. The array is
|
||||
* ordered by pixels (that is, all the samples for the first pixel are
|
||||
* grouped together, followed by all the samples for the second pixel, and so
|
||||
* on). If <code>iArray</code> is not <code>null</code>, it will be
|
||||
* populated with the sample values and returned as the result of this
|
||||
* function (this avoids allocating a new array instance).
|
||||
*
|
||||
* @param x the x-coordinate of the top-left pixel.
|
||||
* @param y the y-coordinate of the top-left pixel.
|
||||
* @param w the width of the region of pixels.
|
||||
* @param h the height of the region of pixels.
|
||||
* @param iArray an array to populate with the sample values and return as
|
||||
* the result (if <code>null</code>, a new array will be allocated).
|
||||
* @param data the data buffer (<code>null</code> not permitted).
|
||||
*
|
||||
* @return The pixel sample values.
|
||||
*
|
||||
* @throws NullPointerException if <code>data</code> is <code>null</code>.
|
||||
*/
|
||||
public int[] getPixels(int x, int y, int w, int h, int[] iArray,
|
||||
DataBuffer data)
|
||||
{
|
||||
int offset = scanlineStride*y + x;
|
||||
if (iArray == null) iArray = new int[numBands*w*h];
|
||||
int outOffset = 0;
|
||||
for (y=0; y<h; y++)
|
||||
for (y = 0; y < h; y++)
|
||||
{
|
||||
int lineOffset = offset;
|
||||
for (x=0; x<w; x++)
|
||||
for (x = 0; x < w; x++)
|
||||
{
|
||||
int samples = data.getElem(lineOffset++);
|
||||
for (int b=0; b<numBands; b++)
|
||||
for (int b = 0; b < numBands; b++)
|
||||
iArray[outOffset++] = (samples & bitMasks[b]) >>> bitOffsets[b];
|
||||
}
|
||||
offset += scanlineStride;
|
||||
|
@ -262,6 +391,20 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
return iArray;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the sample value for the pixel at (x, y) in the specified data
|
||||
* buffer.
|
||||
*
|
||||
* @param x the x-coordinate of the pixel.
|
||||
* @param y the y-coordinate of the pixel.
|
||||
* @param b the band (in the range <code>0</code> to
|
||||
* <code>getNumBands() - 1</code>).
|
||||
* @param data the data buffer (<code>null</code> not permitted).
|
||||
*
|
||||
* @return The sample value.
|
||||
*
|
||||
* @throws NullPointerException if <code>data</code> is <code>null</code>.
|
||||
*/
|
||||
public int getSample(int x, int y, int b, DataBuffer data)
|
||||
{
|
||||
int offset = scanlineStride*y + x;
|
||||
|
@ -270,16 +413,18 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
}
|
||||
|
||||
/**
|
||||
* This method implements a more efficient way to set data elements than the default
|
||||
* implementation of the super class. It sets the data elements line by line instead
|
||||
* of pixel by pixel.
|
||||
* This method implements a more efficient way to set data elements than the
|
||||
* default implementation of the super class. It sets the data elements line
|
||||
* by line instead of pixel by pixel.
|
||||
*
|
||||
* @param x The x-coordinate of the data elements in <code>obj</code>.
|
||||
* @param y The y-coordinate of the data elements in <code>obj</code>.
|
||||
* @param w The width of the data elements in <code>obj</code>.
|
||||
* @param h The height of the data elements in <code>obj</code>.
|
||||
* @param obj The primitive array containing the data elements to set.
|
||||
* @param data The DataBuffer to store the data elements into.
|
||||
* @see java.awt.image.SampleModel#setDataElements(int, int, int, int, java.lang.Object, java.awt.image.DataBuffer)
|
||||
* @see java.awt.image.SampleModel#setDataElements(int, int, int, int,
|
||||
* java.lang.Object, java.awt.image.DataBuffer)
|
||||
*/
|
||||
public void setDataElements(int x, int y, int w, int h,
|
||||
Object obj, DataBuffer data)
|
||||
|
@ -373,12 +518,24 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the samples for the pixel at (x, y) in the specified data buffer to
|
||||
* the specified values.
|
||||
*
|
||||
* @param x the x-coordinate of the pixel.
|
||||
* @param y the y-coordinate of the pixel.
|
||||
* @param iArray the sample values (<code>null</code> not permitted).
|
||||
* @param data the data buffer (<code>null</code> not permitted).
|
||||
*
|
||||
* @throws NullPointerException if either <code>iArray</code> or
|
||||
* <code>data</code> is <code>null</code>.
|
||||
*/
|
||||
public void setPixel(int x, int y, int[] iArray, DataBuffer data)
|
||||
{
|
||||
int offset = scanlineStride*y + x;
|
||||
|
||||
int samples = 0;
|
||||
for (int b=0; b<numBands; b++)
|
||||
for (int b = 0; b < numBands; b++)
|
||||
samples |= (iArray[b] << bitOffsets[b]) & bitMasks[b];
|
||||
|
||||
data.setElem(offset, samples);
|
||||
|
@ -394,7 +551,8 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
* @param h The height of the pixel rectangle in <code>obj</code>.
|
||||
* @param iArray The primitive array containing the pixels to set.
|
||||
* @param data The DataBuffer to store the pixels into.
|
||||
* @see java.awt.image.SampleModel#setPixels(int, int, int, int, int[], java.awt.image.DataBuffer)
|
||||
* @see java.awt.image.SampleModel#setPixels(int, int, int, int, int[],
|
||||
* java.awt.image.DataBuffer)
|
||||
*/
|
||||
public void setPixels(int x, int y, int w, int h, int[] iArray,
|
||||
DataBuffer data)
|
||||
|
@ -407,7 +565,7 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
for (int xx=x; xx<(x+w); xx++)
|
||||
{
|
||||
int samples = 0;
|
||||
for (int b=0; b<numBands; b++)
|
||||
for (int b = 0; b < numBands; b++)
|
||||
samples |= (iArray[inOffset+b] << bitOffsets[b]) & bitMasks[b];
|
||||
data.setElem(0, offset, samples);
|
||||
inOffset += numBands;
|
||||
|
@ -416,7 +574,19 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the sample value for a band for the pixel at (x, y) in the
|
||||
* specified data buffer.
|
||||
*
|
||||
* @param x the x-coordinate of the pixel.
|
||||
* @param y the y-coordinate of the pixel.
|
||||
* @param b the band (in the range <code>0</code> to
|
||||
* <code>getNumBands() - 1</code>).
|
||||
* @param s the sample value.
|
||||
* @param data the data buffer (<code>null</code> not permitted).
|
||||
*
|
||||
* @throws NullPointerException if <code>data</code> is <code>null</code>.
|
||||
*/
|
||||
public void setSample(int x, int y, int b, int s, DataBuffer data)
|
||||
{
|
||||
int offset = scanlineStride*y + x;
|
||||
|
@ -427,6 +597,76 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
data.setElem(offset, samples);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests this sample model for equality with an arbitrary object. This
|
||||
* method returns <code>true</code> if and only if:
|
||||
* <ul>
|
||||
* <li><code>obj</code> is not <code>null</code>;
|
||||
* <li><code>obj</code> is an instance of
|
||||
* <code>SinglePixelPackedSampleModel</code>;
|
||||
* <li>both models have the same:
|
||||
* <ul>
|
||||
* <li><code>dataType</code>;
|
||||
* <li><code>width</code>;
|
||||
* <li><code>height</code>;
|
||||
* <li><code>numBands</code>;
|
||||
* <li><code>scanlineStride</code>;
|
||||
* <li><code>bitMasks</code>;
|
||||
* <li><code>bitOffsets</code>.
|
||||
* </ul>
|
||||
* </li>
|
||||
* </ul>
|
||||
*
|
||||
* @param obj the object (<code>null</code> permitted)
|
||||
*
|
||||
* @return <code>true</code> if this model is equal to <code>obj</code>, and
|
||||
* <code>false</code> otherwise.
|
||||
*/
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (! (obj instanceof SinglePixelPackedSampleModel))
|
||||
return false;
|
||||
SinglePixelPackedSampleModel that = (SinglePixelPackedSampleModel) obj;
|
||||
if (this.dataType != that.dataType)
|
||||
return false;
|
||||
if (this.width != that.width)
|
||||
return false;
|
||||
if (this.height != that.height)
|
||||
return false;
|
||||
if (this.numBands != that.numBands)
|
||||
return false;
|
||||
if (this.scanlineStride != that.scanlineStride)
|
||||
return false;
|
||||
if (!Arrays.equals(this.bitMasks, that.bitMasks))
|
||||
return false;
|
||||
if (!Arrays.equals(this.bitOffsets, that.bitOffsets))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a hash code for this <code>SinglePixelPackedSampleModel</code>.
|
||||
*
|
||||
* @return A hash code.
|
||||
*/
|
||||
public int hashCode()
|
||||
{
|
||||
// this hash code won't match Sun's, but that shouldn't matter...
|
||||
int result = 193;
|
||||
result = 37 * result + dataType;
|
||||
result = 37 * result + width;
|
||||
result = 37 * result + height;
|
||||
result = 37 * result + numBands;
|
||||
result = 37 * result + scanlineStride;
|
||||
for (int i = 0; i < bitMasks.length; i++)
|
||||
result = 37 * result + bitMasks[i];
|
||||
for (int i = 0; i < bitOffsets.length; i++)
|
||||
result = 37 * result + bitOffsets[i];
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a String with some information about this SampleModel.
|
||||
* @return A String describing this SampleModel.
|
||||
|
@ -438,9 +678,10 @@ public class SinglePixelPackedSampleModel extends SampleModel
|
|||
result.append(getClass().getName());
|
||||
result.append("[");
|
||||
result.append("scanlineStride=").append(scanlineStride);
|
||||
for(int i=0; i < bitMasks.length; i+=1)
|
||||
for(int i = 0; i < bitMasks.length; i+=1)
|
||||
{
|
||||
result.append(", mask[").append(i).append("]=0x").append(Integer.toHexString(bitMasks[i]));
|
||||
result.append(", mask[").append(i).append("]=0x").append(
|
||||
Integer.toHexString(bitMasks[i]));
|
||||
}
|
||||
|
||||
result.append("]");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue