changeset 1630:6c839b5cc1e2

8169011: Resizing XML parse trees Reviewed-by: joehw
author aefimov
date Fri, 20 Jan 2017 14:50:00 +0300
parents 6d1915d87ad4
children 04867c83f747
files src/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java src/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java
diffstat 4 files changed, 24 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java	Tue Dec 20 13:40:24 2016 -0800
+++ b/src/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java	Fri Jan 20 14:50:00 2017 +0300
@@ -1,13 +1,14 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
  */
 
 /*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
@@ -136,7 +137,7 @@
         if (DEBUG_START_END_ELEMENT)
             System.out.println(">>> scanStartElementNS()");
                 // Note: namespace processing is on by default
-        fEntityScanner.scanQName(fElementQName, NameType.ATTRIBUTE);
+        fEntityScanner.scanQName(fElementQName, NameType.ELEMENTSTART);
         // REVISIT - [Q] Why do we need this local variable? -- mrglavas
         String rawname = fElementQName.rawname;
         if (fBindNamespaces) {
@@ -346,7 +347,7 @@
     protected void scanStartElementName ()
         throws IOException, XNIException {
         // Note: namespace processing is on by default
-        fEntityScanner.scanQName(fElementQName, NameType.ATTRIBUTE);
+        fEntityScanner.scanQName(fElementQName, NameType.ELEMENTSTART);
         // Must skip spaces here because the DTD scanner
         // would consume them at the end of the external subset.
         fSawSpace = fEntityScanner.skipSpaces();
@@ -572,7 +573,7 @@
             System.out.println(">>> scanAttribute()");
 
         // name
-        fEntityScanner.scanQName(fAttributeQName, NameType.ATTRIBUTE);
+        fEntityScanner.scanQName(fAttributeQName, NameType.ATTRIBUTENAME);
 
         // equals
         fEntityScanner.skipSpaces();
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java	Tue Dec 20 13:40:24 2016 -0800
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java	Fri Jan 20 14:50:00 2017 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
  */
 
 /*
@@ -1222,7 +1222,7 @@
 
         // definitions
         while (!fEntityScanner.skipChar('>', null)) {
-            String name = fEntityScanner.scanName(NameType.ATTRIBUTE);
+            String name = fEntityScanner.scanName(NameType.ATTRIBUTENAME);
             if (name == null) {
                 reportFatalError("AttNameRequiredInAttDef",
                 new Object[]{elName});
@@ -1366,7 +1366,7 @@
             fMarkUpDepth++;
             do {
                 skipSeparator(false, !scanningInternalSubset());
-                String aName = fEntityScanner.scanName(NameType.ATTRIBUTE);
+                String aName = fEntityScanner.scanName(NameType.ATTRIBUTENAME);
                 if (aName == null) {
                     reportFatalError("MSG_NAME_REQUIRED_IN_NOTATIONTYPE",
                     new Object[]{elName, atName});
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java	Tue Dec 20 13:40:24 2016 -0800
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java	Fri Jan 20 14:50:00 2017 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
  */
 
 /*
@@ -405,7 +405,7 @@
         if (DEBUG_START_END_ELEMENT) System.out.println(this.getClass().toString() +">>> scanAttribute()");
 
         // name
-        fEntityScanner.scanQName(fAttributeQName, NameType.ATTRIBUTE);
+        fEntityScanner.scanQName(fAttributeQName, NameType.ATTRIBUTENAME);
 
         // equals
         fEntityScanner.skipSpaces();
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java	Tue Dec 20 13:40:24 2016 -0800
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLStreamReaderImpl.java	Fri Jan 20 14:50:00 2017 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -562,6 +562,14 @@
                 switchToXML11Scanner();
             }
 
+            if (fEventType == XMLStreamConstants.CHARACTERS ||
+                    fEventType == XMLStreamConstants.ENTITY_REFERENCE ||
+                    fEventType == XMLStreamConstants.PROCESSING_INSTRUCTION ||
+                    fEventType == XMLStreamConstants.COMMENT ||
+                    fEventType == XMLStreamConstants.CDATA) {
+                    fEntityScanner.checkNodeCount(fEntityScanner.fCurrentEntity);
+            }
+
             return fEventType;
         } catch (IOException ex) {
             // if this error occured trying to resolve the external DTD subset