Re: [cp-patches] __attribute__ patch (Was: Re: RFC: __attribute__ handling)
On Wed, 2005-10-05 at 13:12 -0600, Tom Tromey wrote: Twisti == Christian Thalinger [EMAIL PROTECTED] writes: Twisti Here is the actual patch. Tested on IRIX with MIPSPro compiler. I'm checking this in. FWIW a patch like this is easier to apply if you use 'cvs diff -N' to get the new files in the patch for real. The 'cvsdo' utility can fake a cvs add if you don't have write permission... Ahh, great! That was my problem, thanks for the hint. TWISTI ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches
[cp-patches] RFC: VMClassLoader : hashmap for jars from property java.boot.class.path
Hi, I improved the reference implementation of VMClassLoader.getRessources by adding a static HashMap which is filled when a boot zip is opened (typically glibj.zip). In the previous implementation, the code kept opening and closing the zip file. Another solution would be to have a static initializer for VMClassLoader which would parse the java.boot.class.path property, and puts the files into a static Enumeration object. I tried this solution too, but performance isn't improved and it results in all boot files opened. Comments welcomed 2005-10-06 Nicolas Geoffray [EMAIL PROTECTED] * vm/reference/java/lang/VMClassLoader.java (getResources): uses a new static field HashMap to store opened zip files from property java.boot.class.path. Cheers, Nicolas --- classpath-0.18/vm/reference/java/lang/VMClassLoader.java 2005-10-06 10:26:34.0 +0200 +++ classpath-0.18-jnjvm/vm/reference/java/lang/VMClassLoader.java 2005-10-06 14:47:02.0 +0200 @@ -119,6 +119,9 @@ return null; } + /** jars from property java.boot.class.path */ + static final HashMap bootjars = new HashMap(); + /** * Helper to get a list of resources from the bootstrap class loader. * @@ -139,8 +142,9 @@ { try { - v.add(new URL(file:// - + new File(file, name).getAbsolutePath())); +File f = new File(file, name); +if(!f.exists()) continue; +v.add(new URL(file:// + f.getAbsolutePath())); } catch (MalformedURLException e) { @@ -150,30 +154,28 @@ else if (file.isFile()) { ZipFile zip; - try - { - zip = new ZipFile(file); - } - catch (IOException e) - { - continue; - } - String zname = name.startsWith(/) ? name.substring(1) : name; - try - { - if (zip.getEntry(zname) == null) +synchronized(bootjars) + { +zip = (ZipFile) bootjars.get(file.getName()); + } +if(zip == null) + { +try + { +zip = new ZipFile(file); +synchronized(bootjars) + { +bootjars.put(file.getName(), zip); + } + } + catch (IOException e) + { continue; - } - finally - { - try - { - zip.close(); - } - catch (IOException e) - { - } - } + } + } + String zname = name.startsWith(/) ? name.substring(1) : name; + if (zip.getEntry(zname) == null) + continue; try { v.add(new URL(jar:file:// ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches
[cp-patches] [generics] Patch: FYI: minor java.util fixes
s From: Tom Tromey [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] BCC: Tom Tromey [EMAIL PROTECTED] X-Attribution: Tom Date: 06 Oct 2005 07:35:10 -0600 Message-ID: [EMAIL PROTECTED] Lines: 319 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii I'm checking this in on the generics branch. This fixes a few problems in java.util that were pointed out by japi. Tom 2005-10-06 Tom Tromey [EMAIL PROTECTED] * java/util/ListResourceBundle.java (getKeys): Fixed return type. * java/util/ResourceBundle.java (getKeys): Fixed return type. * java/util/AbstractMap.java (entrySet): Fixed return type. (clone): Updated. (equals): Likewise. (iterator): Likewise. * java/util/Collections.java (fill): Fixed argument type. (reverse): Likewise. (unmodifiableCollection): Likewise. (UnmodifiableCollection): Likewise. (UnmodifiableIterator): Likewise. (unmodifiableSet): Likewise. (UnmodifiableSet): Likewise. (unmodifiableList): Likewise. * java/util/TreeSet.java (TreeSet(SortedSetT)): Fixed argument type. (headSet): Fixed return type. * java/util/StringTokenizer.java: Implements EnumerationObject. Index: java/util/AbstractMap.java === RCS file: /cvsroot/classpath/classpath/java/util/AbstractMap.java,v retrieving revision 1.26.2.5 diff -u -r1.26.2.5 AbstractMap.java --- java/util/AbstractMap.java 2 Aug 2005 20:12:29 - 1.26.2.5 +++ java/util/AbstractMap.java 6 Oct 2005 13:38:17 - @@ -105,7 +105,7 @@ * @return the entry set * @see Map.Entry */ - public abstract Set entrySet(); + public abstract SetMap.EntryK, V entrySet(); /** * Remove all entries from this Map (optional operation). This default @@ -134,7 +134,7 @@ */ protected Object clone() throws CloneNotSupportedException { -AbstractMap copy = (AbstractMap) super.clone(); +AbstractMapK, V copy = (AbstractMapK, V) super.clone(); // Clear out the caches; they are stale. copy.keys = null; copy.values = null; @@ -201,7 +201,7 @@ { return (o == this || (o instanceof Map -entrySet().equals(((Map) o).entrySet(; +entrySet().equals(((MapK, V) o).entrySet(; } /** @@ -310,7 +310,7 @@ */ public IteratorK iterator() { - return new Iterator() + return new IteratorK() { /** * The iterator returned by codeentrySet()/code. @@ -400,11 +400,14 @@ */ public void putAll(Map? extends K, ? extends V m) { -IteratorMap.EntryK, V entries = ((MapK,V) m).entrySet().iterator(); +// FIXME: bogus circumlocution. +Iterator entries2 = m.entrySet().iterator(); +IteratorMap.Entry? extends K, ? extends V entries + = (IteratorMap.Entry? extends K, ? extends V) entries2; int pos = m.size(); while (--pos = 0) { -Map.EntryK, V entry = entries.next(); +Map.Entry? extends K, ? extends V entry = entries.next(); put(entry.getKey(), entry.getValue()); } } @@ -543,7 +546,7 @@ */ public IteratorV iterator() { - return new Iterator() + return new IteratorV() { /** * The iterator returned by codeentrySet()/code. Index: java/util/Collections.java === RCS file: /cvsroot/classpath/classpath/java/util/Collections.java,v retrieving revision 1.28.2.16 diff -u -r1.28.2.16 Collections.java --- java/util/Collections.java 20 Sep 2005 18:46:30 - 1.28.2.16 +++ java/util/Collections.java 6 Oct 2005 13:38:18 - @@ -820,9 +820,9 @@ * @throws UnsupportedOperationException if l.listIterator() does not * support the set operation. */ - public static T void fill(ListT l, T val) + public static T void fill(List? super T l, T val) { -ListIteratorT itr = l.listIterator(); +ListIterator? super T itr = l.listIterator(); for (int i = l.size() - 1; i = 0; --i) { itr.next(); @@ -1178,17 +1178,18 @@ * @throws UnsupportedOperationException if l.listIterator() does not * support the set operation */ - public static T void reverse(ListT l) + public static void reverse(List? l) { -ListIteratorT i1 = l.listIterator(); +ListIterator i1 = l.listIterator(); int pos1 = 1; int pos2 = l.size(); -ListIteratorT i2 = l.listIterator(pos2); +ListIterator i2 = l.listIterator(pos2); while (pos1 pos2) { - T o = i1.next(); - i1.set(i2.previous()); - i2.set(o); + Object o1 = i1.next(); +Object o2 = i2.previous(); + i1.set(o2); + i2.set(o1); ++pos1; --pos2; } @@ -4183,7
Re: [cp-patches]: FYI: JTree fix
The click-area for a leaf was slightly off. Fixed. 2005-10-06 Lillian Angel [EMAIL PROTECTED] * javax/swing/plaf/basic/BasicTreeUI.java (mousePressed): Shouldn't change x location for leaf. On Wed, 2005-10-05 at 17:49 -0400, Lillian Angel wrote: Small fix. Added in a comment as a reminder to fix last bit of painting problem. 2005-10-05 Lillian Angel [EMAIL PROTECTED] * javax/swing/plaf/basic/BasicTreeUI.java (paintRow): Fixed indentation. (updateCurrentVisiblePath): Added FIXME comment. On Wed, 2005-10-05 at 17:28 -0400, Lillian Angel wrote: Fixed up BasicTreeUI because it was not efficent when painting. 2005-10-05 Lillian Angel [EMAIL PROTECTED] * javax/swing/plaf/metal/MetalTreeUI.java (installUI): Fixed to call toggleExpandState instead. * javax/swing/plaf/basic/BasicTreeUI.java (getPathForRow): Used currentVisiblePath to get Path. (getRowForPath): Used currentVisiblePath to get row. (getRowCount): Returned currentVisiblePath length. (updateLayoutCacheExpandedNodes): Took out unneeded code. (installUI): Fixed to call toggleExpandState instead. (getPreferredSize): Made more efficent by using currentVisiblePath. (toggleExpandState): Called updateCurrentVisiblePath. (getCellLocation): Made more efficent. (paintNode): Removed. (paintRecursive): Made more efficent, changed paintNode calls to paintRow. (getNextVisibleNode): Reimplemented to use currentVisiblePath. (getPreviousVisibleNode): Likewise. (paintRow): Implemented. (updateCurrentVisiblePath): New helper used to cache the current visible path. ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches Index: javax/swing/plaf/basic/BasicTreeUI.java === RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicTreeUI.java,v retrieving revision 1.86 diff -u -r1.86 BasicTreeUI.java --- javax/swing/plaf/basic/BasicTreeUI.java 5 Oct 2005 21:50:17 - 1.86 +++ javax/swing/plaf/basic/BasicTreeUI.java 6 Oct 2005 13:43:00 - @@ -2278,10 +2278,7 @@ boolean cntlClick = isLocationInExpandControl(path, click.x, click.y); if (isLeaf(row)) -{ - bounds.x -= rightChildIndent - 4; bounds.width += rightChildIndent + 4; -} else if (tree.isExpanded(path) expandedIcon != null) bounds.width += expandedIcon.getIconWidth() + 4; else if (collapsedIcon != null) ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches
[cp-patches] FYI: Completed BasicRootPaneUI
Hi, I added the missing methods in BasicRootPaneUI. 2005-10-06 Roman Kennke [EMAIL PROTECTED] * javax/swing/plaf/basic/BasicRootPaneUI.java (installUI): Call new hook methods. (installDefaults): New hook method. (installComponents): New hook method. (installListeners): New hook method. (installKeyboardActions): New hook method. (uninstallUI): New method. (uninstallDefaults): New hook method. (uninstallComponents): New hook method. (uninstallListeners): New hook method. (uninstallKeyboardActions): New hook method. /Roman Index: javax/swing/plaf/basic/BasicRootPaneUI.java === RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicRootPaneUI.java,v retrieving revision 1.8 diff -u -r1.8 BasicRootPaneUI.java --- javax/swing/plaf/basic/BasicRootPaneUI.java 2 Jul 2005 20:32:50 - 1.8 +++ javax/swing/plaf/basic/BasicRootPaneUI.java 6 Oct 2005 13:49:56 - @@ -42,6 +42,7 @@ import java.beans.PropertyChangeListener; import javax.swing.JComponent; +import javax.swing.JRootPane; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.RootPaneUI; @@ -56,11 +57,126 @@ public void installUI(JComponent c) { -c.setBackground(UIManager.getColor(control)); super.installUI(c); +if (c instanceof JRootPane) + { +JRootPane rp = (JRootPane) c; +installDefaults(rp); +installComponents(rp); +installListeners(rp); +installKeyboardActions(rp); + } + } + + /** + * Installs the look and feel defaults for JRootPane. + * + * @param rp the root pane to install the defaults to + */ + protected void installDefaults(JRootPane rp) + { +// Is this ok? +rp.setBackground(UIManager.getColor(control)); + } + + /** + * Installs additional look and feel components to the root pane. + * + * @param rp the root pane to install the components to + */ + protected void installComponents(JRootPane rp) + { +// All components are initialized in the JRootPane constructor, and since +// the createXXXPane methods are protected, I see no reasonable way, +// and no need to initialize them here. This method is here anyway +// for compatibility and to provide the necessary hooks to subclasses. + } + + /** + * Installs any look and feel specific listeners on the root pane. + * + * @param rp the root pane to install the listeners to + */ + protected void installListeners(JRootPane rp) + { +rp.addPropertyChangeListener(this); + } + + /** + * Installs look and feel keyboard actions on the root pane. + * + * @param rp the root pane to install the keyboard actions to + */ + protected void installKeyboardActions(JRootPane rp) + { +// We currently do not install any keyboard actions here. +// This method is here anyway for compatibility and to provide +// the necessary hooks to subclasses. } public void propertyChange(PropertyChangeEvent event) { + } + + /** + * Uninstalls this UI from the root pane. This calls + * [EMAIL PROTECTED] #uninstallDefaults}, [EMAIL PROTECTED] #uninstallComponents}, + * [EMAIL PROTECTED] #uninstallListeners}, [EMAIL PROTECTED] #uninstallKeyboardActions} + * in this order. + * + * @param c the root pane to uninstall the UI from + */ + public void uninstallUI(JComponent c) + { +super.uninstallUI(c); +if (c instanceof JRootPane) + { +JRootPane rp = (JRootPane) c; +uninstallDefaults(rp); +uninstallComponents(rp); +uninstallListeners(rp); +uninstallKeyboardActions(rp); + } + } + + /** + * Uninstalls the look and feel defaults that have been installed in + * [EMAIL PROTECTED] #installDefaults}. + * + * @param rp the root pane to uninstall the defaults from + */ + protected void uninstallDefaults(JRootPane rp) + { +// We do nothing here. + } + + /** + * Uninstalls look and feel components from the root pane. + * + * @param rp the root pane to uninstall the components from + */ + protected void uninstallComponents(JRootPane rp) + { +// We do nothing here. + } + + /** + * Uninstalls any look and feel specific listeners from the root pane. + * + * @param rp the root pane to uninstall the listeners from + */ + protected void uninstallListeners(JRootPane rp) + { +rp.removePropertyChangeListener(this); + } + + /** + * Uninstalls look and feel keyboard actions from the root pane. + * + * @param rp the root pane to uninstall the keyboard actions from + */ + protected void uninstallKeyboardActions(JRootPane rp) + { +// We do nothing here. } }___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches
[cp-patches] FYI: JLabel fixlet
A mauve test that I just committed shows that JLabels should have an alignmentX of 0.0F. Fixed. 2005-10-06 Roman Kennke [EMAIL PROTECTED] * javax/swing/JLabel.java (JLabel): Set alignmentX value to 0.0F. /Roman Index: javax/swing/JLabel.java === RCS file: /cvsroot/classpath/classpath/javax/swing/JLabel.java,v retrieving revision 1.26 diff -u -r1.26 JLabel.java --- javax/swing/JLabel.java 22 Sep 2005 14:48:05 - 1.26 +++ javax/swing/JLabel.java 6 Oct 2005 19:42:53 - @@ -400,6 +400,7 @@ this.text = text; this.icon = icon; this.horizontalAlignment = horizontalAlignment; +setAlignmentX(0.0F); updateUI(); } ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches
[cp-patches] FYI: locking implemented for AbstractDocument
This patch implements locking for AbstractDocument. Note that other classes that extend this and override methods like insertString and remove, or classes that in other ways alter the Document, should call writeLock() before altering the Document and writeUnlock() after doing so. This isn't currently done and will need to be fixed shortly. 2005-10-06 Anthony Balkissoon [EMAIL PROTECTED] * javax/swing/text/AbstractDocument.java: Implemeted locking. (insertString): Obtain write lock before altering document. (readLock): Implemented. (readUnlock): Implemented. (remove): Obtain write lock before altering document. (render): Implemented. (writeLock): Implemented. (writeUnlock): Implemented. (getCurrentWriter): Implemented. --Tony Index: javax/swing/text/AbstractDocument.java === RCS file: /cvsroot/classpath/classpath/javax/swing/text/AbstractDocument.java,v retrieving revision 1.32 diff -u -r1.32 AbstractDocument.java --- javax/swing/text/AbstractDocument.java 5 Oct 2005 15:19:47 - 1.32 +++ javax/swing/text/AbstractDocument.java 6 Oct 2005 19:49:22 - @@ -127,8 +127,29 @@ * Manages event listeners for this codeDocument/code. */ protected EventListenerList listenerList = new EventListenerList(); + + /** + * Stores the current writer thread. Used for locking. + */ + private Thread currentWriter = null; + + /** + * The number of readers. Used for locking. + */ + private int numReaders = 0; + + /** + * Tells if there are one or more writers waiting. + */ + private int numWritersWaiting = 0; /** + * A condition variable that readers and writers wait on. + */ + Object documentCV = new Object(); + + + /** * Creates a new codeAbstractDocument/code with the specified * [EMAIL PROTECTED] Content} model. * @@ -347,8 +368,7 @@ */ protected Thread getCurrentWriter() { -// FIXME: Implement locking! -return null; +return currentWriter; } /** @@ -520,7 +540,10 @@ new DefaultDocumentEvent(offset, text.length(), DocumentEvent.EventType.INSERT); +writeLock(); UndoableEdit temp = content.insertString(offset, text); +writeUnlock(); + GapContent.UndoInsertString changes = null; if (content instanceof GapContent) changes = (GapContent.UndoInsertString) temp; @@ -587,10 +610,28 @@ } /** - * Blocks until a read lock can be obtained. + * Blocks until a read lock can be obtained. Must block if there is + * currently a writer modifying the codeDocument/code. */ public void readLock() { +if (currentWriter != null currentWriter.equals(Thread.currentThread())) + return; +synchronized (documentCV) + { +while (currentWriter != null || numWritersWaiting 0) + { +try + { +documentCV.wait(); + } +catch (InterruptedException ie) + { +throw new Error(interrupted trying to get a readLock); + } + } + numReaders++; + } } /** @@ -599,6 +640,40 @@ */ public void readUnlock() { +// Note we could have a problem here if readUnlock was called without a +// prior call to readLock but the specs simply warn users to ensure that +// balance by using a finally block: +// readLock() +// try +// { +// doSomethingHere +// } +// finally +// { +// readUnlock(); +// } + +// All that the JDK seems to check for is that you don't call unlock +// more times than you've previously called lock, but it doesn't make +// sure that the threads calling unlock were the same ones that called lock + +// FIXME: the reference implementation throws a +// javax.swing.text.StateInvariantError here +if (numReaders == 0) + throw new IllegalStateException(document lock failure); + +synchronized (documentCV) +{ + // If currentWriter is not null, the application code probably had a + // writeLock and then tried to obtain a readLock, in which case + // numReaders wasn't incremented + if (currentWriter == null) +{ + numReaders --; + if (numReaders == 0 numWritersWaiting != 0) +documentCV.notify(); +} +} } /** @@ -633,7 +708,9 @@ added[0] = root.getElement(start); boolean shouldFire = content.getString(offset, length).length() != 0; +writeLock(); UndoableEdit temp = content.remove(offset, length); +writeUnlock(); postRemoveUpdate(event); @@ -764,7 +841,15 @@ */ public void render(Runnable runnable) { -// FIXME: Implement me! +readLock(); +try +{ + runnable.run(); +} +finally +{ + readUnlock(); +} } /** @@
[cp-patches] FYI: some styled text fixes
Hi, I hacked some more in the views in javax.swing.text, and now we can display some styled text again: http://kennke.org/~roman/styledtext.png 2005-10-06 Roman Kennke [EMAIL PROTECTED] * javax/swing/text/BoxView.java (paint): Only call paintChild if child allocation is not empty. (layout): Don't store the width and height fields here. (setSize): Store the width and height fields here. * javax/swing/text/CompositeView.java (getViewIndexAtPosition): Reworked child view searching. (getInsideAllocation): Fixed insets calculation. * javax/swing/text/FlowView.java (FlowStrategy.layoutRow): Return an offset of -1 if no more child views are in the logical view. (FlowStrategy.createView): If there are no more child views, then return null. (LogicalView.getViewIndex): New method. Implements child view searching for the LogicalView. * javax/swing/text/GlyphView.java (DefaultGlyphPainter.getHeight): Use Toolkit FontMetrics instead of parent containers FontMetrics. (DefaultGlyphPainter.getSpan): Use Toolkit FontMetrics instead of parent containers FontMetrics. * javax/swing/text/Utilities.java (getTabbedTextOffset): Check for 0 in the char array and stop there. * javax/swing/text/View.java (getContainer): If there's no parent, don't throw an Error, instead return null as specified. /RomanIndex: javax/swing/text/BoxView.java === RCS file: /cvsroot/classpath/classpath/javax/swing/text/BoxView.java,v retrieving revision 1.5 diff -u -r1.5 BoxView.java --- javax/swing/text/BoxView.java 5 Oct 2005 21:46:41 - 1.5 +++ javax/swing/text/BoxView.java 6 Oct 2005 20:14:51 - @@ -295,18 +295,19 @@ { // Adjust size if the size is changed. Rectangle bounds = a.getBounds(); + if (bounds.width != getWidth() || bounds.height != getHeight()) setSize(bounds.width, bounds.height); Rectangle inside = getInsideAllocation(a); - Rectangle copy = new Rectangle(inside); int count = getViewCount(); for (int i = 0; i count; ++i) { copy.setBounds(inside); childAllocation(i, copy); -paintChild(g, copy, i); +if (!copy.isEmpty()) + paintChild(g, copy, i); } } @@ -522,9 +523,6 @@ */ protected void layout(int width, int height) { -this.width = width; -this.height = height; - baselineLayout(width, X_AXIS, offsetsX, spansX); baselineLayout(height, Y_AXIS, offsetsY, spansY); } @@ -614,6 +612,9 @@ layoutChanged(X_AXIS); if (this.height != (int) height) layoutChanged(Y_AXIS); + +this.width = (int) width; +this.height = (int) height; Rectangle outside = new Rectangle(0, 0, this.width, this.height); Rectangle inside = getInsideAllocation(outside); Index: javax/swing/text/CompositeView.java === RCS file: /cvsroot/classpath/classpath/javax/swing/text/CompositeView.java,v retrieving revision 1.6 diff -u -r1.6 CompositeView.java --- javax/swing/text/CompositeView.java 13 Sep 2005 23:44:49 - 1.6 +++ javax/swing/text/CompositeView.java 6 Oct 2005 20:14:51 - @@ -434,10 +434,16 @@ */ protected int getViewIndexAtPosition(int pos) { -// We have one child view allocated for each child element in -// loadChildren(), so this should work. -Element el = getElement(); -int index = el.getElementIndex(pos); +int index = -1; +for (int i = 0; i children.length; i++) + { +if (children[i].getStartOffset() = pos + children[i].getEndOffset() pos) + { +index = i; +break; + } + } return index; } @@ -474,8 +480,8 @@ insideAllocation = inside; } } -inside.x = alloc.x - insets.left; -inside.y = alloc.y - insets.top; +inside.x = alloc.x + insets.left; +inside.y = alloc.y + insets.top; inside.width = alloc.width - insets.left - insets.right; inside.height = alloc.height - insets.top - insets.bottom; return inside; Index: javax/swing/text/FlowView.java === RCS file: /cvsroot/classpath/classpath/javax/swing/text/FlowView.java,v retrieving revision 1.2 diff -u -r1.2 FlowView.java --- javax/swing/text/FlowView.java 25 Aug 2005 19:11:50 - 1.2 +++ javax/swing/text/FlowView.java 6 Oct 2005 20:14:51 - @@ -42,6 +42,7 @@ import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Shape; +import java.util.Iterator; import java.util.Vector; import javax.swing.event.DocumentEvent; @@ -183,11 +184,17 @@ { View child = createView(fv, offset, spanLeft, rowIndex); if (child == null) -
[cp-patches] FYI: complete javax.imageio.metadata.IIOMetadata
Hi, This patch completes the 1.5 API coverage for javax.imageio.metadata.IIOMetadata. I added the general description javadocs but not per-method javadocs. Tom 2005-10-06 Thomas Fitzsimmons [EMAIL PROTECTED] * javax/imageio/metadata/IIOMetadata.java: Complete. Index: javax/imageio/metadata/IIOMetadata.java === RCS file: /cvsroot/classpath/classpath/javax/imageio/metadata/IIOMetadata.java,v retrieving revision 1.3 diff -u -r1.3 IIOMetadata.java --- javax/imageio/metadata/IIOMetadata.java 2 Jul 2005 20:32:45 - 1.3 +++ javax/imageio/metadata/IIOMetadata.java 6 Oct 2005 20:43:14 - @@ -38,8 +38,41 @@ package javax.imageio.metadata; +import org.w3c.dom.Node; + /** + * Represents metadata that describe an image or an image stream. + * Each ImageIO plugin will represent image data using an opaque + * object but all such objects should expose their internal + * information as a tree of IIOMetadataNodes. + * + * There are three formats of metadata that a plugin can support: + * + * ul + * lia native format/li + * lia custom format/li + * lia standard plugin-neutral format/li + * /ul + * + * If a plugin supports more than one format of metadata, the other + * formats can be retrieved by calling getMetadataFormatNames. + * + * The native format is used to transfer metadata from one image to + * another image of the same type, losslessly. + * + * The custom format describes the image metadata and exposes a tree + * of IIOMetadataNodes but its internal representation is specific to + * this plugin. + * + * The plugin-neutral format uses a generic tree structure as its + * internal representation. + * + * ImageTranscoders may be used to convert metadata understood by one + * plugin to metadata understood by another, however the conversion + * may be lossy. + * * @author Michael Koch ([EMAIL PROTECTED]) + * @author Thomas Fitzsimmons ([EMAIL PROTECTED]) */ public abstract class IIOMetadata { @@ -52,7 +85,7 @@ protected boolean standardFormatSupported; /** - * Creates a codeIIOMetaData/code object. + * Construct an IIOMetadata object. */ protected IIOMetadata() { @@ -60,7 +93,7 @@ } /** - * Creates a codeIIOMetaData/code object with the given arguments. + * Construct an IIOMetadata object. * * @param standardMetadataFormatSupported * @param nativeMetadataFormatName @@ -209,5 +242,82 @@ public void setController(IIOMetadataController controller) { this.controller = controller; + } + + public abstract Node getAsTree (String formatName); + + protected IIOMetadataNode getStandardChromaNode () + { +return null; + } + + protected IIOMetadataNode getStandardCompressionNode () + { +return null; + } + + protected IIOMetadataNode getStandardDataNode () + { +return null; + } + + protected IIOMetadataNode getStandardDimensionNode () + { +return null; + } + + protected IIOMetadataNode getStandardDocumentNode () + { +return null; + } + + protected IIOMetadataNode getStandardTextNode () + { +return null; + } + + protected IIOMetadataNode getStandardTileNode () + { +return null; + } + + protected IIOMetadataNode getStandardTransparencyNode () + { +return null; + } + + private void appendChild (IIOMetadataNode node, + IIOMetadataNode child) + { +if (child != null) + node.appendChild(child); + } + + protected final IIOMetadataNode getStandardTree () + { +IIOMetadataNode node = new IIOMetadataNode(); + +appendChild (node, getStandardChromaNode()); +appendChild (node, getStandardCompressionNode()); +appendChild (node, getStandardDataNode()); +appendChild (node, getStandardDimensionNode()); +appendChild (node, getStandardDocumentNode()); +appendChild (node, getStandardTextNode()); +appendChild (node, getStandardTileNode()); +appendChild (node, getStandardTransparencyNode()); + +return node; + } + + public abstract void mergeTree (String formatName, + Node root) +throws IIOInvalidTreeException; + + public void setFromTree (String formatName, Node root) +throws IIOInvalidTreeException + { +reset(); + +mergeTree (formatName, root); } } ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches
[cp-patches] FYI: fixlet for PlainView
This fix spans 2 commits because I made some errors in my first one. Both patches are attached, the one with the 2 at the end of the name is the second one. This fixes an NPE in PlainView by basically doing a ( != null) check. (second patch) 2005-10-06 Anthony Balkissoon [EMAIL PROTECTED] * javax/swing/text/PlainView.java: (determineMaxLength): Avoid NPE by checking the Segment that getText returns. No need to return Math.max (0, maxLineLength) because maxLineLength is guaranteed to be 0 or greater. (first patch) 2005-10-06 Anthony Balkissoon [EMAIL PROTECTED] * javax/swing/text/PlainView.java: (determineMaxLength): If maxLineLength is -1 we should return 0. (insertOrRemoveUpdate): Avoid NPE by checking the Segment that getText returns. --Tony Index: javax/swing/text/PlainView.java === RCS file: /cvsroot/classpath/classpath/javax/swing/text/PlainView.java,v retrieving revision 1.15 diff -u -r1.15 PlainView.java --- javax/swing/text/PlainView.java 5 Oct 2005 18:12:16 - 1.15 +++ javax/swing/text/PlainView.java 6 Oct 2005 20:43:21 - @@ -250,7 +250,7 @@ } } maxLineLength = span; -return maxLineLength; +return Math.max(maxLineLength, 0); } public float getPreferredSpan(int axis) @@ -348,6 +348,10 @@ catch (BadLocationException ex) { } + + +if (seg == null || seg.array == null || seg.count == 0) + continue; int width = metrics.charsWidth(seg.array, seg.offset, seg.count); if (width longestNewLength) Index: javax/swing/text/PlainView.java === RCS file: /cvsroot/classpath/classpath/javax/swing/text/PlainView.java,v retrieving revision 1.16 diff -u -r1.16 PlainView.java --- javax/swing/text/PlainView.java 6 Oct 2005 20:45:12 - 1.16 +++ javax/swing/text/PlainView.java 6 Oct 2005 20:48:10 - @@ -242,6 +242,10 @@ catch (BadLocationException ex) { } + +if (seg == null || seg.array == null || seg.count == 0) + continue; + int width = metrics.charsWidth(seg.array, seg.offset, seg.count); if (width span) { @@ -250,7 +254,7 @@ } } maxLineLength = span; -return Math.max(maxLineLength, 0); +return maxLineLength; } public float getPreferredSpan(int axis) ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches
Re: [cp-patches] Patch: FYI: fix SetOfIntegerSyntax
Hi Tom, Tom Tromey wrote: I'm checking this in. I happened to notice that SetOfIntegerSyntax was mostly stubs. I implemented the class for real, and added the missing constructor. I started already implementation of javax.print.attribute.standard and some other stuff for javax.print.* I am currently waiting for the FSF paperwork to be done. So if you intend to work more on the javax.print package please contact me so we do not duplicate work. Wolfgang ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches
[cp-patches] [RFC] XML - fix for XMLParser's URL problem
Hi, here is probably a fix for PR classpath/24249 [0]. 2005-10-07 Robert Schuster [EMAIL PROTECTED] * gnu/xml/aelfred2/SAXDriver.java: (absolutize): Replaced URL.toString() with explicit calls to build a new URL. * gnu/xml/dom/ls/DomLSParser.java: (getInputSource): dito. Please have a deep long thought about this and tell me whether this is a valid fix. For me this solves the problem I formerly had, of course. cu Robert [0] - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24249 Index: gnu/xml/aelfred2/SAXDriver.java === RCS file: /cvsroot/classpath/classpath/gnu/xml/aelfred2/SAXDriver.java,v retrieving revision 1.7 diff -u -r1.7 SAXDriver.java --- gnu/xml/aelfred2/SAXDriver.java 2 Jul 2005 20:32:15 - 1.7 +++ gnu/xml/aelfred2/SAXDriver.java 7 Oct 2005 02:39:21 - @@ -751,7 +751,14 @@ } else { -return new URL(new URL(baseURI), systemId).toString(); +URL url = new URL(new URL(baseURI), systemId); + +// Note: The following line contains a workaround for a specific behavior +// of the URL class where +// new URL(new URL(file:foo/baz.xml).toString()).getHost().equals(foo) +// would be true although it is technically wrong +// (foo is a part of the filename). +return url.getProtocol() + :// + url.getHost() + url.getFile(); } } catch (MalformedURLException e) Index: gnu/xml/dom/ls/DomLSParser.java === RCS file: /cvsroot/classpath/classpath/gnu/xml/dom/ls/DomLSParser.java,v retrieving revision 1.3 diff -u -r1.3 DomLSParser.java --- gnu/xml/dom/ls/DomLSParser.java 2 Jul 2005 20:32:16 - 1.3 +++ gnu/xml/dom/ls/DomLSParser.java 7 Oct 2005 02:39:21 - @@ -397,7 +397,13 @@ new File(baseFile, systemId).toURL(); } in = url.openStream(); -systemId = url.toString(); +// Note: The following line contains a workaround for a specific behavior +// of the URL class where +// new URL(new URL(file:foo/baz.xml).toString()).getHost().equals(foo) +// would be true although it is technically wrong +// (foo is a part of the filename). +systemId = url.getProtocol() + :// + url.getHost() + url.getFile(); + source = new InputSource(in); source.setSystemId(systemId); } ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches
[cp-patches] FYI: dssi control handling, midi demo, INSTALL and LICENSE additions
I'm about to check in the following patch collection, most of which I've already posted to the list for comment. Thanks, AG 2005-10-06 Anthony Green [EMAIL PROTECTED] * INSTALL: Describe midi provider dependencies. * native/jni/midi-dssi/README: New file. * LICENSE (terms): Add notice about code copied from the DSSI distribution. * examples/gnu/classpath/examples/midi/Demo.java: New file. * native/jni/midi-dssi/dssi_data.h (dssi_data): Add control_count, control_port_map, control_value_map, sample_rate, and control_values fields. * native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c (DEBUG_DSSI_PROVIDER): New macro. (get_port_default): New function. (set_control): New function. (Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Remove debug output. Reformat. Allocate the control ports and assign proper default values. (Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOn_1): Use JLONG_TO_PTR. (Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOff_1): Ditto. * gnu/javax/sound/midi/dssi/DSSISynthesizer.java (Channel.controlChange): Implement. (controlChange_): New native method. * include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Rebuilt. * gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java: Make instance final. Index: LICENSE === RCS file: /cvsroot/classpath/classpath/LICENSE,v retrieving revision 1.7 diff -u -r1.7 LICENSE --- LICENSE 2 Jul 2005 20:32:07 - 1.7 +++ LICENSE 7 Oct 2005 02:47:11 - @@ -284,3 +284,17 @@ shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder. + + +The file native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c +contains two functions (get_port_default and set_control) derived from +example code in the DSSI distribution (http://dssi.sourceforge.net). +The original DSSI example code is distributed under the following +terms: + + Copyright 2004 Chris Cannam, Steve Harris and Sean Bolton. + + Permission to use, copy, modify, distribute, and sell this software + for any purpose is hereby granted without fee, provided that the + above copyright notice and this permission notice are included in + all copies or substantial portions of the software. Index: gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java === RCS file: /cvsroot/classpath/classpath/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java,v retrieving revision 1.1 diff -u -r1.1 AlsaMidiSequencerDevice.java --- gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java 3 Oct 2005 01:53:12 - 1.1 +++ gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java 7 Oct 2005 02:47:12 - @@ -64,7 +64,7 @@ public class AlsaMidiSequencerDevice implements Sequencer { // The singleton instance. - public static AlsaMidiSequencerDevice instance = new AlsaMidiSequencerDevice(); + public final static AlsaMidiSequencerDevice instance = new AlsaMidiSequencerDevice(); // A pointer to a native chunk of memory private long nativeState; Index: gnu/javax/sound/midi/dssi/DSSISynthesizer.java === RCS file: /cvsroot/classpath/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java,v retrieving revision 1.1 diff -u -r1.1 DSSISynthesizer.java --- gnu/javax/sound/midi/dssi/DSSISynthesizer.java 3 Oct 2005 01:53:12 - 1.1 +++ gnu/javax/sound/midi/dssi/DSSISynthesizer.java 7 Oct 2005 02:47:12 - @@ -85,6 +85,10 @@ else channels[smessage.getChannel()].noteOff(smessage.getData1()); break; +case ShortMessage.CONTROL_CHANGE: + channels[smessage.getChannel()].controlChange(smessage.getData1(), +smessage.getData2()); + break; default: System.out.println (Unhandled message: + message.getStatus()); break; @@ -106,6 +110,7 @@ static native void noteOff_(long handle, int channel, int noteNumber, int velocity); static native void setPolyPressure_(long handle, int channel, int noteNumber, int pressure); static native int getPolyPressure_(long handle, int channel, int noteNumber); + static native void controlChange_(long handle, int channel, int control, int value); static native void open_(long handle); static native void close_(long handle); @@ -184,13 +189,10 @@ return 0; } -/* (non-Javadoc) - * @see javax.sound.midi.MidiChannel#controlChange(int, int) - */ +/* @see
[cp-patches] FYI: ignore unmapped DSSI controls
Some DSSI controls aren't mapped to MIDI controls. This patch ignores them. I'm checking it in. Thanks, AG 2005-10-06 Anthony Green [EMAIL PROTECTED] * native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c (Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Ignore controllers that aren't mapped to MIDI controls. Index: native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c === RCS file: /cvsroot/classpath/classpath/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c,v retrieving revision 1.3 diff -u -r1.3 gnu_javax_sound_midi_dssi_DSSISynthesizer.c --- native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c7 Oct 2005 03:21:05 - 1.3 +++ native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c7 Oct 2005 05:08:37 - @@ -263,7 +263,8 @@ Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1 (JNIEnv *env, jclass clazz __attribute__((unused)), jlong handle) { - unsigned int port_count, j, cindex, controller = 0; + unsigned int port_count, j, cindex; + int controller = 0; dssi_data *data = (dssi_data *) (long) handle; if ((data-jack_client = jack_client_new (data-desc-LADSPA_Plugin-Label)) == 0) { @@ -347,19 +348,19 @@ controller = data-desc- get_midi_controller_for_port(data-plugin_handle, j); - if (DSSI_IS_CC(controller)) + if ((controller != DSSI_NONE) DSSI_IS_CC(controller)) { data-control_value_map[DSSI_CC_NUMBER(controller)] = cindex; data-control_port_map[DSSI_CC_NUMBER(controller)] = j; - } - } #ifdef DEBUG_DSSI_PROVIDER - printf (MIDI Controller 0x%x [%s] = %g\n, - DSSI_CC_NUMBER(controller), - data-desc-LADSPA_Plugin-PortNames[j], - data-control_values[cindex]); + printf (MIDI Controller 0x%x [%s] = %g\n, + DSSI_CC_NUMBER(controller), + data-desc-LADSPA_Plugin-PortNames[j], + data-control_values[cindex]); #endif + } + } cindex++; } ___ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches
Re: request for testing AWT/SWING
I think, the new list would be ok, because this is a new category of information. Or maybe the header could have some specific signature (people receiving many messages per day from several projects use automated sorting). IMO it would be very great to get this working. Tom Tromey wrote: Paul However I wonder if cross reference against daily mauve regressions Paul would help identify and fix these more quickly? Yes. Tom ___ Classpath mailing list Classpath@gnu.org http://lists.gnu.org/mailman/listinfo/classpath
example programs
Hi! I think, that the example program SliderDemo.java is incomplete: http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/classpath/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java?rev=1.1content-type=text/plain For example, there are not icons included. I have found a demo in a book, which you can find at: http://user.web-gear.com/theuserbl/Sliders.zip (unzip it, and start SwingExample) With Java5 and Java6 it looks like: http://user.web-gear.com/theuserbl/Sliders.png An other point is, that I think, that it would be nice, if all example-programs in examples.zip becomes a demo-startplace. I have created one at: http://user.web-gear.com/theuserbl/examples.jar The source code is included. But it is tinkered by using snippets and code-examples from other programs. So the copyright of this program and the program in Sliders.zip is unclear. Be sure, that if your JVM is not called java to create a symlink in the same directory where the JVM is. For example ln -s $HOME/jamvm/bin/jamvm $HOME/jamvm/bin/java java and jamvm must be in the same directory in $JAVA_HOME/bin Then you can try examples.jar by java -jar examples.jar I think, that somethink like this, would make it easyer to start the demo programs. It is easyer then input for every demo program java gnu.classpath.examples An other point is about the JamVM: I think, the property of java.vendor.url is wrong. There stand http://gnu.classpath.org; But this side don't exists. There existing only http://www.classpath.org; and http://www.gnu.org/software/classpath/; Greatings theuserbl ___ Classpath mailing list Classpath@gnu.org http://lists.gnu.org/mailman/listinfo/classpath
Re: example programs
Hi, On 10/6/05, theUser BL [EMAIL PROTECTED] wrote: An other point is about the JamVM: I think, the property of java.vendor.url is wrong. There stand http://gnu.classpath.org; But this side don't exists. There existing only http://www.classpath.org; and http://www.gnu.org/software/classpath/; Yes, it's wrong (well spotted). I'll correct it in CVS and it'll be in the next release. Thanks, Rob. Greatings theuserbl ___ Classpath mailing list Classpath@gnu.org http://lists.gnu.org/mailman/listinfo/classpath ___ Classpath mailing list Classpath@gnu.org http://lists.gnu.org/mailman/listinfo/classpath
Classpath Meeting Minutes (2005-10-07)
--- GNU Classpath Meeting Minutes from 2005-10-07 17:00 UTC --- No fireworks. Just smiling happy hackers wondering when they could get back to business and add some new code... -- Mark Wielaard about the meeting This evening at 17:00 UTC GNU Classpath held its first official meeting! It was suggested by Mark because he thought that a little bit of (real-time) coordination would be nice due to the development taking place at such a high pace these times. The following agenda was adopted: - Intro/Why a meeting? - Next release (when/what) - Testing setup? - Anyone blocked on something? - Random thoughts. No further topics have been suggested. Intro/Why a meeting? Basically, Mark explained, he could not believe that everything is going on smoothly. He studied Apache's procedures and asked the attendents whether these would be useful for Classpath, too. However everybody seemed happy with the way it is and Mark was a surprized that people seem so happy to hack on GNU Classpath while the project has no real formal structure. Next release: - No change is being done to the current bi-monthly release schedule. The next snapshot release will be in November 2005. Mark was worried about introducing dependencies on Gtk+-2.8 and Cairo-1.0.0 . These would be a necessity of the AWT rework[0]. Sven added that he does not expect these changes before 0.19 . Unfortunately Thomas was not present to discuss the item so we remained at postponing any major AWT rework to a time after the November release. Intermission Before we advanced to the next topic everyone thanked Audrius for his truly amazing work on the CORBA implementation. Testing setup? -- Before each and every release Mark does a lot of manual Mauve runs and wondered why this could not be automated. Tom already has some basics for an automated test environment but needs a destination for result notifications. Mark's proposal to create a new mailing list called 'classpath-testresults' was accepted immediately. Having developer.classpath.org and a new box set up by Jim Pick would provide enough resources for an automated Mauve and GUMP run. The latter is already running on one of Apache's machines with Kaffe. Mark reminded himself to ask Leo about sending results to the new testresult mailing list. A short discussion about which testresults should be on the list concluded with the idea to not filter anything in the beginning and refine the involved scripts over time. Additionally Tom's script will be published at some point making it possible for everyone to run fully automated tests. Anyone blocked on something? Integration of GNU Crypto was mentioned and that we have to wait for Casey's rewrite of it. Mark stated that Casey would be the only one being able to do the integration nicely. Random thoughts --- Mark wanted that people go through the bug list from time to time and clean it up. David pleaded for more Mauve tests. Which brought Sven to the idea to ask for more quality control on the tests as he had some problems with broken tests before. He reminds to be extra wary if any test fails on the JDK. Some of them may be correct but sometimes it would be a bit easy to jump to the conclusion that the JDK is wrong, when it is actually ambiguity in the spec. (If the spec is ambiguous, then whatever the JDK does has to be viewed as 'correct'). Mark liked the idea of the FreeSwingApplications page[1] which Robert set up. He hoped to see more lists of free software applications (running on GNU Classpath). James Damour, one of MegaMek's[2] project maintainers and advocate of GNU Classpath, suggested to contact the projects listed on the FreeSwingApplications page to let them know that we are working on getting their programs to run. @James: It would be nice if the authors could add some information about the kind of Swing components they use. Finally James is hoping that there will be more volunteers to help! As this came up after the meeting: If you wonder whether you are tainted or not. The ClasspathFirstSteps page[3] has the appropriate information. Nevertheless having seen parts of the core library does not hinder you from writing (and/or maintaining) Mauve[4] test cases or Classpath demo applications. That was it - Everybody seemed to have enjoyed the meeting. In fact people we in such a good mood that nobody asked for the date of the next meeting. Perhaps this will be solved on the main discussion mailing list. cu Robert [0] - http://developer.classpath.org/mediation/ClasspathGraphicsImagesText [1] - http://developer.classpath.org/mediation/FreeSwingTestApps [2] - http://megamek.sf.net [3] - http://developer.classpath.org/mediation/ClasspathFirstSteps [4] - http://sources.redhat.com/mauve/
[commit-cp] classpath java/util/PropertyResourceBundle.java... [generics-branch]
CVSROOT:/cvsroot/classpath Module name:classpath Branch: generics-branch Changes by: Tom Tromey [EMAIL PROTECTED] 05/10/06 13:41:53 Modified files: java/util : PropertyResourceBundle.java ListResourceBundle.java ResourceBundle.java StringTokenizer.java AbstractMap.java Collections.java TreeSet.java . : ChangeLog Log message: * java/util/ListResourceBundle.java (getKeys): Fixed return type. * java/util/ResourceBundle.java (getKeys): Fixed return type. * java/util/AbstractMap.java (entrySet): Fixed return type. (clone): Updated. (equals): Likewise. (iterator): Likewise. * java/util/Collections.java (fill): Fixed argument type. (reverse): Likewise. (unmodifiableCollection): Likewise. (UnmodifiableCollection): Likewise. (UnmodifiableIterator): Likewise. (unmodifiableSet): Likewise. (UnmodifiableSet): Likewise. (unmodifiableList): Likewise. * java/util/TreeSet.java (TreeSet(SortedSetT)): Fixed argument type. (headSet): Fixed return type. * java/util/StringTokenizer.java: Implements EnumerationObject. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/PropertyResourceBundle.java.diff?only_with_tag=generics-branchtr1=1.14.2.1tr2=1.14.2.2r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/ListResourceBundle.java.diff?only_with_tag=generics-branchtr1=1.10.2.2tr2=1.10.2.3r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/ResourceBundle.java.diff?only_with_tag=generics-branchtr1=1.24.2.6tr2=1.24.2.7r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/StringTokenizer.java.diff?only_with_tag=generics-branchtr1=1.12.2.2tr2=1.12.2.3r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/AbstractMap.java.diff?only_with_tag=generics-branchtr1=1.26.2.5tr2=1.26.2.6r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/Collections.java.diff?only_with_tag=generics-branchtr1=1.28.2.16tr2=1.28.2.17r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/TreeSet.java.diff?only_with_tag=generics-branchtr1=1.15.2.7tr2=1.15.2.8r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?only_with_tag=generics-branchtr1=1.2386.2.156tr2=1.2386.2.157r1=textr2=text
[commit-cp] classpath ./ChangeLog javax/swing/JTree.java ja...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Lillian Angel [EMAIL PROTECTED] 05/10/06 19:26:31 Modified files: . : ChangeLog javax/swing: JTree.java javax/swing/plaf/basic: BasicTreeUI.java Log message: 2005-10-06 Lillian Angel [EMAIL PROTECTED] * javax/swing/plaf/basic/BasicTreeUI.java (startEditing): Should always change the bounds, whenever we start editing. (paintRow): Fixed location where editing component should be drawn. The constant takes care of the space around the icon. * javax/swing/JTree.java (JTree): Called updateUI first so currentVisiblePath is cached right away. Prevents NPEs. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.5136tr2=1.5137r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/javax/swing/JTree.java.diff?tr1=1.43tr2=1.44r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/javax/swing/plaf/basic/BasicTreeUI.java.diff?tr1=1.87tr2=1.88r1=textr2=text
[commit-cp] classpath ./ChangeLog javax/swing/text/Abstract...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Anthony Balkissoon [EMAIL PROTECTED] 05/10/06 19:53:34 Modified files: . : ChangeLog javax/swing/text: AbstractDocument.java Log message: 2005-10-06 Anthony Balkissoon [EMAIL PROTECTED] * javax/swing/text/AbstractDocument.java: Implemeted locking. (insertString): Obtain write lock before altering document. (readLock): Implemented. (readUnlock): Implemented. (remove): Obtain write lock before altering document. (render): Implemented. (writeLock): Implemented. (writeUnlock): Implemented. (getCurrentWriter): Implemented. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.5138tr2=1.5139r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/javax/swing/text/AbstractDocument.java.diff?tr1=1.32tr2=1.33r1=textr2=text
[commit-cp] classpath ./ChangeLog javax/imageio/metadata/II...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Thomas Fitzsimmons [EMAIL PROTECTED] 05/10/06 20:44:17 Modified files: . : ChangeLog javax/imageio/metadata: IIOMetadata.java Log message: 2005-10-06 Thomas Fitzsimmons [EMAIL PROTECTED] * javax/imageio/metadata/IIOMetadata.java: Complete. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.5140tr2=1.5141r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/javax/imageio/metadata/IIOMetadata.java.diff?tr1=1.3tr2=1.4r1=textr2=text
[commit-cp] classpath ./INSTALL ./LICENSE include/gnu_javax...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Anthony Green [EMAIL PROTECTED] 05/10/07 03:21:06 Modified files: . : INSTALL LICENSE include: gnu_javax_sound_midi_dssi_DSSISynthesizer.h native/jni/midi-dssi: dssi_data.h gnu_javax_sound_midi_dssi_DSSISynthesizer.c gnu/javax/sound/midi/alsa: AlsaMidiSequencerDevice.java gnu/javax/sound/midi/dssi: DSSISynthesizer.java Added files: examples/gnu/classpath/examples/midi: Demo.java native/jni/midi-dssi: README Log message: 2005-10-06 Anthony Green [EMAIL PROTECTED] * INSTALL: Describe midi provider dependencies. * native/jni/midi-dssi/README: New file. * LICENSE (terms): Add notice about code copied from the DSSI distribution. * examples/gnu/classpath/examples/midi/Demo.java: New file. * native/jni/midi-dssi/dssi_data.h (dssi_data): Add control_count, control_port_map, control_value_map, sample_rate, and control_values fields. * native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c (DEBUG_DSSI_PROVIDER): New macro. (get_port_default): New function. (set_control): New function. (Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Remove debug output. Reformat. Allocate the control ports and assign proper default values. (Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOn_1): Use JLONG_TO_PTR. (Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOff_1): Ditto. * gnu/javax/sound/midi/dssi/DSSISynthesizer.java (Channel.controlChange): Implement. (controlChange_): New native method. * include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Rebuilt. * gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java: Make instance final. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/INSTALL.diff?tr1=1.32tr2=1.33r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/LICENSE.diff?tr1=1.7tr2=1.8r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/examples/gnu/classpath/examples/midi/Demo.java?rev=1.1 http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h.diff?tr1=1.1tr2=1.2r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/native/jni/midi-dssi/README?rev=1.1 http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/native/jni/midi-dssi/dssi_data.h.diff?tr1=1.2tr2=1.3r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c.diff?tr1=1.2tr2=1.3r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java.diff?tr1=1.1tr2=1.2r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java.diff?tr1=1.1tr2=1.2r1=textr2=text
[commit-cp] classpath ./ChangeLog native/jni/midi-dssi/gnu_...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Anthony Green [EMAIL PROTECTED] 05/10/07 05:12:29 Modified files: . : ChangeLog native/jni/midi-dssi: gnu_javax_sound_midi_dssi_DSSISynthesizer.c Log message: 2005-10-06 Anthony Green [EMAIL PROTECTED] * native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c (Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Ignore controllers that aren't mapped to MIDI controls. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.5144tr2=1.5145r1=textr2=text http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c.diff?tr1=1.3tr2=1.4r1=textr2=text