There have been an error in text buffer access in javax.swing.text which cause the bug https://savannah.gnu.org/bugs/?func=detailitem&item_id=13262

This is fixed by the attached patch.

2005-06-03  Roman Kennke  <[EMAIL PROTECTED]>

   * javax/swing/text/PlainDocument.java
   (removeUpdate): Fixed indices in text buffer access.
   * javax/swing/text/PlainView.java
   (drawLine): Simplified element access.

/Roman

Index: PlainDocument.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/text/PlainDocument.java,v
retrieving revision 1.10
diff -u -r1.10 PlainDocument.java
--- PlainDocument.java  1 Jun 2005 09:28:24 -0000       1.10
+++ PlainDocument.java  3 Jun 2005 14:25:24 -0000
@@ -117,8 +117,8 @@
     super.removeUpdate(event);
 
     int p0 = event.getOffset();
-    int p1 = event.getLength() + p0;
     int len = event.getLength();
+    int p1 = len + p0;
 
     // check if we must collapse some elements
     int i1 = rootElement.getElementIndex(p0);
@@ -133,7 +133,7 @@
         Element newEl = createLeafElement(rootElement,
                                           SimpleAttributeSet.EMPTY,
                                           start, end - len);
-        rootElement.replace(i1, i1 - i1, new Element[]{ newEl });
+        rootElement.replace(i1, i2 - i1, new Element[]{ newEl });
       }
     else
       {
Index: PlainView.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/text/PlainView.java,v
retrieving revision 1.7
diff -u -r1.7 PlainView.java
--- PlainView.java      6 May 2005 10:31:59 -0000       1.7
+++ PlainView.java      3 Jun 2005 14:25:25 -0000
@@ -123,7 +123,7 @@
       {
        metrics = g.getFontMetrics();
        // FIXME: Selected text are not drawn yet.
-       Element line = 
getDocument().getDefaultRootElement().getElement(lineIndex);
+       Element line = getElement().getElement(lineIndex);
        drawUnselectedText(g, x, y, line.getStartOffset(), line.getEndOffset());
        //drawSelectedText(g, , , , );
       }
_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to