PatchSet 5982 
Date: 2005/02/05 20:59:51
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Resynced with GNU Classpath: SAX fix

2005-02-05  Dalibor Topic  <[EMAIL PROTECTED]>

        Resynced with GNU Classpath.

        2005-02-04  Chris Burdess  <[EMAIL PROTECTED]>

        * gnu/xml/aelfred2/SAXDriver.java: Corrected implementation of
        isDeclared methods. Improved performance of isSpecified methods.

Members: 
        ChangeLog:1.3520->1.3521 
        libraries/javalib/gnu/xml/aelfred2/SAXDriver.java:1.15->1.16 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3520 kaffe/ChangeLog:1.3521
--- kaffe/ChangeLog:1.3520      Sat Feb  5 20:53:54 2005
+++ kaffe/ChangeLog     Sat Feb  5 20:59:51 2005
@@ -2,6 +2,15 @@
 
        Resynced with GNU Classpath.
 
+       2005-02-04  Chris Burdess  <[EMAIL PROTECTED]>
+
+        * gnu/xml/aelfred2/SAXDriver.java: Corrected implementation of
+        isDeclared methods. Improved performance of isSpecified methods.
+
+2005-02-05  Dalibor Topic  <[EMAIL PROTECTED]>
+
+       Resynced with GNU Classpath.
+
        2005-02-04  Michael Koch  <[EMAIL PROTECTED]>
 
         * javax/swing/SortingFocusTraversalPolicy.java
Index: kaffe/libraries/javalib/gnu/xml/aelfred2/SAXDriver.java
diff -u kaffe/libraries/javalib/gnu/xml/aelfred2/SAXDriver.java:1.15 
kaffe/libraries/javalib/gnu/xml/aelfred2/SAXDriver.java:1.16
--- kaffe/libraries/javalib/gnu/xml/aelfred2/SAXDriver.java:1.15        Wed Jan 
 5 17:11:39 2005
+++ kaffe/libraries/javalib/gnu/xml/aelfred2/SAXDriver.java     Sat Feb  5 
20:59:57 2005
@@ -150,10 +150,7 @@
     private Stack                      entityStack;
 
     // one vector (of object/struct): faster, smaller
-    private List                       attributesList = 
Collections.synchronizedList(new ArrayList());
-  
-    private boolean                    attributeSpecified [] = new boolean[10];
-    private boolean                    attributeDeclared [] = new boolean[10];
+    private List                       attributesList;
 
     private boolean                    namespaces = true;
     private boolean                    xmlNames = false;
@@ -183,8 +180,6 @@
       elementName = null;
       entityStack = new Stack ();
       attributesList = Collections.synchronizedList(new ArrayList());
-      attributeSpecified = new boolean[10];
-      attributeDeclared = new boolean[10];
       attributeCount = 0;
       attributes = false;
       nsTemp = new String[3];
@@ -849,17 +844,10 @@
   }
        // remember this attribute ...
 
-       if (attributeCount == attributeSpecified.length) {      // grow array?
-           boolean temp [] = new boolean [attributeSpecified.length + 5];
-           System.arraycopy (attributeSpecified, 0, temp, 0, attributeCount);
-           attributeSpecified = temp;
-       }
-       attributeSpecified [attributeCount] = isSpecified;
-
        attributeCount++;
        
        // attribute type comes from querying parser's DTD records
-       attributesList.add(new Attribute(qname, value));
+       attributesList.add(new Attribute(qname, value, isSpecified));
 
     }
 
@@ -1212,31 +1200,31 @@
     {
        if (index < 0 || index >= attributeCount) 
            throw new ArrayIndexOutOfBoundsException ();
-       return attributeDeclared [index];
+        String type = parser.getAttributeType(elementName, getQName(index));
+        return (type != null);
     }
 
     /** @return false unless the attribute was declared in the DTD.
      * @throws java.lang.IllegalArgumentException
      *   When the supplied names do not identify an attribute.
      */
-    public boolean isDeclared (java.lang.String qName)
+    public boolean isDeclared (String qName)
     {
        int index = getIndex (qName);
        if (index < 0)
            throw new IllegalArgumentException ();
-       return attributeDeclared [index];
+        String type = parser.getAttributeType(elementName, qName);
+        return (type != null);
     }
 
     /** @return false unless the attribute was declared in the DTD.
      * @throws java.lang.IllegalArgumentException
      *   When the supplied names do not identify an attribute.
      */
-    public boolean isDeclared (java.lang.String uri, java.lang.String 
localName)
+    public boolean isDeclared (String uri, String localName)
     {
        int index = getIndex (uri, localName);
-       if (index < 0)
-           throw new IllegalArgumentException ();
-       return attributeDeclared [index];
+        return isDeclared(index);
     }
 
 
@@ -1245,9 +1233,7 @@
      */
     public boolean isSpecified (int index)
     {
-       if (index < 0 || index >= attributeCount) 
-           throw new ArrayIndexOutOfBoundsException ();
-       return attributeSpecified [index];
+       return ((Attribute) attributesList.get(index)).specified;
     }
 
     /**
@@ -1256,10 +1242,7 @@
     public boolean isSpecified (String uri, String local)
     {
        int index = getIndex (uri, local);
-
-       if (index < 0)
-           throw new IllegalArgumentException ();
-       return attributeSpecified [index];
+        return isSpecified(index);
     }
 
     /**
@@ -1268,10 +1251,7 @@
     public boolean isSpecified (String xmlName)
     {
        int index = getIndex (xmlName);
-
-       if (index < 0)
-           throw new IllegalArgumentException ();
-       return attributeSpecified [index];
+        return isSpecified(index);
     }
 
 
@@ -1374,12 +1354,14 @@
     String value;
     String nameSpace;
     String localName;
+    boolean specified;
 
-    Attribute(String name, String value)
+    Attribute(String name, String value, boolean specified)
     {
         this.name = name;
         this.value = value;
         this.nameSpace = "";
+        this.specified = specified;
     }
 }
 

_______________________________________________
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to