X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/builder/State.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/builder/State.java index 06bf6ca..1e0fe32 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/builder/State.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/builder/State.java @@ -13,20 +13,14 @@ package net.sourceforge.phpdt.internal.core.builder; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.util.ArrayList; import java.util.Date; -import net.sourceforge.phpdt.core.compiler.CharOperation; -import net.sourceforge.phpdt.internal.compiler.util.Util; import net.sourceforge.phpdt.internal.core.util.SimpleLookupTable; -import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceDelta; -import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; public class State { // NOTE: this state cannot contain types that are not defined in this project @@ -36,9 +30,9 @@ public class State { //ClasspathLocation[] binaryLocations; // keyed by the project relative path of the type (ie. "src1/p1/p2/A.java"), value is a ReferenceCollection or an // AdditionalTypeCollection - SimpleLookupTable references; +// SimpleLookupTable references; // keyed by qualified type name "p1/p2/A", value is the project relative path which defines this type "src1/p1/p2/A.java" - SimpleLookupTable typeLocators; +// SimpleLookupTable typeLocators; int buildNumber; long lastStructuralBuildTime; @@ -61,8 +55,8 @@ public class State { this.javaProjectName = javaBuilder.currentProject.getName(); this.sourceLocations = javaBuilder.nameEnvironment.sourceLocations; // this.binaryLocations = javaBuilder.nameEnvironment.binaryLocations; - this.references = new SimpleLookupTable(7); - this.typeLocators = new SimpleLookupTable(7); +// this.references = new SimpleLookupTable(7); +// this.typeLocators = new SimpleLookupTable(7); this.buildNumber = 0; // indicates a full build this.lastStructuralBuildTime = System.currentTimeMillis(); @@ -70,91 +64,91 @@ public class State { } void copyFrom(State lastState) { - try { +// try { this.knownPackageNames = null; this.buildNumber = lastState.buildNumber + 1; this.lastStructuralBuildTime = lastState.lastStructuralBuildTime; - this.references = (SimpleLookupTable) lastState.references.clone(); - this.typeLocators = (SimpleLookupTable) lastState.typeLocators.clone(); - } catch (CloneNotSupportedException e) { - this.references = new SimpleLookupTable(lastState.references.elementSize); - Object[] keyTable = lastState.references.keyTable; - Object[] valueTable = lastState.references.valueTable; - for (int i = 0, l = keyTable.length; i < l; i++) - if (keyTable[i] != null) - this.references.put(keyTable[i], valueTable[i]); - - this.typeLocators = new SimpleLookupTable(lastState.typeLocators.elementSize); - keyTable = lastState.typeLocators.keyTable; - valueTable = lastState.typeLocators.valueTable; - for (int i = 0, l = keyTable.length; i < l; i++) - if (keyTable[i] != null) - this.typeLocators.put(keyTable[i], valueTable[i]); - } - } - - char[][] getDefinedTypeNamesFor(String typeLocator) { - Object c = references.get(typeLocator); - if (c instanceof AdditionalTypeCollection) - return ((AdditionalTypeCollection) c).definedTypeNames; - return null; // means only one type is defined with the same name as the file... saves space - } - - boolean isDuplicateLocator(String qualifiedTypeName, String typeLocator) { - String existing = (String) typeLocators.get(qualifiedTypeName); - return existing != null && !existing.equals(typeLocator); - } - - boolean isKnownPackage(String qualifiedPackageName) { - if (knownPackageNames == null) { - ArrayList names = new ArrayList(typeLocators.elementSize); - Object[] keyTable = typeLocators.keyTable; - for (int i = 0, l = keyTable.length; i < l; i++) { - if (keyTable[i] != null) { - String packageName = (String) keyTable[i]; // is a type name of the form p1/p2/A - int last = packageName.lastIndexOf('/'); - packageName = last == -1 ? null : packageName.substring(0, last); - while (packageName != null && !names.contains(packageName)) { - names.add(packageName); - last = packageName.lastIndexOf('/'); - packageName = last == -1 ? null : packageName.substring(0, last); - } - } - } - knownPackageNames = new String[names.size()]; - names.toArray(knownPackageNames); - } - for (int i = 0, l = knownPackageNames.length; i < l; i++) - if (knownPackageNames[i].equals(qualifiedPackageName)) - return true; - return false; +// this.references = (SimpleLookupTable) lastState.references.clone(); +// this.typeLocators = (SimpleLookupTable) lastState.typeLocators.clone(); +// } catch (CloneNotSupportedException e) { +// this.references = new SimpleLookupTable(lastState.references.elementSize); +// Object[] keyTable = lastState.references.keyTable; +// Object[] valueTable = lastState.references.valueTable; +// for (int i = 0, l = keyTable.length; i < l; i++) +// if (keyTable[i] != null) +// this.references.put(keyTable[i], valueTable[i]); +// +// this.typeLocators = new SimpleLookupTable(lastState.typeLocators.elementSize); +// keyTable = lastState.typeLocators.keyTable; +// valueTable = lastState.typeLocators.valueTable; +// for (int i = 0, l = keyTable.length; i < l; i++) +// if (keyTable[i] != null) +// this.typeLocators.put(keyTable[i], valueTable[i]); +// } } - void record(String typeLocator, char[][][] qualifiedRefs, char[][] simpleRefs, char[] mainTypeName, ArrayList typeNames) { - if (typeNames.size() == 1 && CharOperation.equals(mainTypeName, (char[]) typeNames.get(0))) { - references.put(typeLocator, new ReferenceCollection(qualifiedRefs, simpleRefs)); - } else { - char[][] definedTypeNames = new char[typeNames.size()][]; // can be empty when no types are defined - typeNames.toArray(definedTypeNames); - references.put(typeLocator, new AdditionalTypeCollection(definedTypeNames, qualifiedRefs, simpleRefs)); - } - } - - void recordLocatorForType(String qualifiedTypeName, String typeLocator) { - this.knownPackageNames = null; - typeLocators.put(qualifiedTypeName, typeLocator); - } +// char[][] getDefinedTypeNamesFor(String typeLocator) { +// Object c = references.get(typeLocator); +// if (c instanceof AdditionalTypeCollection) +// return ((AdditionalTypeCollection) c).definedTypeNames; +// return null; // means only one type is defined with the same name as the file... saves space +// } + +// boolean isDuplicateLocator(String qualifiedTypeName, String typeLocator) { +// String existing = (String) typeLocators.get(qualifiedTypeName); +// return existing != null && !existing.equals(typeLocator); +// } + +// boolean isKnownPackage(String qualifiedPackageName) { +// if (knownPackageNames == null) { +// ArrayList names = new ArrayList(typeLocators.elementSize); +// Object[] keyTable = typeLocators.keyTable; +// for (int i = 0, l = keyTable.length; i < l; i++) { +// if (keyTable[i] != null) { +// String packageName = (String) keyTable[i]; // is a type name of the form p1/p2/A +// int last = packageName.lastIndexOf('/'); +// packageName = last == -1 ? null : packageName.substring(0, last); +// while (packageName != null && !names.contains(packageName)) { +// names.add(packageName); +// last = packageName.lastIndexOf('/'); +// packageName = last == -1 ? null : packageName.substring(0, last); +// } +// } +// } +// knownPackageNames = new String[names.size()]; +// names.toArray(knownPackageNames); +// } +// for (int i = 0, l = knownPackageNames.length; i < l; i++) +// if (knownPackageNames[i].equals(qualifiedPackageName)) +// return true; +// return false; +// } + +// void record(String typeLocator, char[][][] qualifiedRefs, char[][] simpleRefs, char[] mainTypeName, ArrayList typeNames) { +// if (typeNames.size() == 1 && CharOperation.equals(mainTypeName, (char[]) typeNames.get(0))) { +// references.put(typeLocator, new ReferenceCollection(qualifiedRefs, simpleRefs)); +// } else { +// char[][] definedTypeNames = new char[typeNames.size()][]; // can be empty when no types are defined +// typeNames.toArray(definedTypeNames); +// references.put(typeLocator, new AdditionalTypeCollection(definedTypeNames, qualifiedRefs, simpleRefs)); +// } +// } +// +// void recordLocatorForType(String qualifiedTypeName, String typeLocator) { +// this.knownPackageNames = null; +// typeLocators.put(qualifiedTypeName, typeLocator); +// } void recordStructuralDependency(IProject prereqProject, State prereqState) { if (prereqState != null) structuralBuildTimes.put(prereqProject.getName(), new Long(prereqState.lastStructuralBuildTime)); } - void removeLocator(String typeLocatorToRemove) { - this.knownPackageNames = null; - references.removeKey(typeLocatorToRemove); - typeLocators.removeValue(typeLocatorToRemove); - } +// void removeLocator(String typeLocatorToRemove) { +// this.knownPackageNames = null; +// references.removeKey(typeLocatorToRemove); +// typeLocators.removeValue(typeLocatorToRemove); +// } void removePackage(IResourceDelta sourceDelta) { IResource resource = sourceDelta.getResource(); @@ -166,15 +160,15 @@ public class State { return; case IResource.FILE : IPath typeLocatorPath = resource.getProjectRelativePath(); - if (Util.isJavaFileName(typeLocatorPath.lastSegment())) - removeLocator(typeLocatorPath.toString()); +// if (ProjectPrefUtil.isJavaFileName(typeLocatorPath.lastSegment())) +// removeLocator(typeLocatorPath.toString()); } } - void removeQualifiedTypeName(String qualifiedTypeNameToRemove) { - this.knownPackageNames = null; - typeLocators.removeKey(qualifiedTypeNameToRemove); - } +// void removeQualifiedTypeName(String qualifiedTypeNameToRemove) { +// this.knownPackageNames = null; +// typeLocators.removeKey(qualifiedTypeNameToRemove); +// } static State read(IProject project, DataInputStream in) throws IOException { if (PHPBuilder.DEBUG) @@ -194,9 +188,10 @@ public class State { } newState.buildNumber = in.readInt(); newState.lastStructuralBuildTime = in.readLong(); - - int length = in.readInt(); - newState.sourceLocations = new ClasspathMultiDirectory[0]; + + int length; +// int length = in.readInt(); +// newState.sourceLocations = new ClasspathMultiDirectory[0]; // newState.sourceLocations = new ClasspathMultiDirectory[length]; // for (int i = 0; i < length; i++) { // IContainer sourceFolder = project, outputFolder = project; @@ -210,7 +205,7 @@ public class State { // newState.sourceLocations[i] = md; // } - length = in.readInt(); +// length = in.readInt(); // newState.binaryLocations = new ClasspathLocation[length]; // IWorkspaceRoot root = project.getWorkspace().getRoot(); // for (int i = 0; i < length; i++) { @@ -237,51 +232,51 @@ public class State { for (int i = 0; i < length; i++) newState.structuralBuildTimes.put(in.readUTF(), new Long(in.readLong())); - String[] internedTypeLocators = new String[length = in.readInt()]; - for (int i = 0; i < length; i++) - internedTypeLocators[i] = in.readUTF(); - - newState.typeLocators = new SimpleLookupTable(length = in.readInt()); - for (int i = 0; i < length; i++) - newState.typeLocators.put(in.readUTF(), internedTypeLocators[in.readInt()]); - - char[][] internedSimpleNames = ReferenceCollection.internSimpleNames(readNames(in), false); - char[][][] internedQualifiedNames = new char[length = in.readInt()][][]; - for (int i = 0; i < length; i++) { - int qLength = in.readInt(); - char[][] qName = new char[qLength][]; - for (int j = 0; j < qLength; j++) - qName[j] = internedSimpleNames[in.readInt()]; - internedQualifiedNames[i] = qName; - } - internedQualifiedNames = ReferenceCollection.internQualifiedNames(internedQualifiedNames); - - newState.references = new SimpleLookupTable(length = in.readInt()); - for (int i = 0; i < length; i++) { - String typeLocator = internedTypeLocators[in.readInt()]; - ReferenceCollection collection = null; - switch (in.readByte()) { - case 1 : - char[][] additionalTypeNames = readNames(in); - char[][][] qualifiedNames = new char[in.readInt()][][]; - for (int j = 0, m = qualifiedNames.length; j < m; j++) - qualifiedNames[j] = internedQualifiedNames[in.readInt()]; - char[][] simpleNames = new char[in.readInt()][]; - for (int j = 0, m = simpleNames.length; j < m; j++) - simpleNames[j] = internedSimpleNames[in.readInt()]; - collection = new AdditionalTypeCollection(additionalTypeNames, qualifiedNames, simpleNames); - break; - case 2 : - char[][][] qNames = new char[in.readInt()][][]; - for (int j = 0, m = qNames.length; j < m; j++) - qNames[j] = internedQualifiedNames[in.readInt()]; - char[][] sNames = new char[in.readInt()][]; - for (int j = 0, m = sNames.length; j < m; j++) - sNames[j] = internedSimpleNames[in.readInt()]; - collection = new ReferenceCollection(qNames, sNames); - } - newState.references.put(typeLocator, collection); - } +// String[] internedTypeLocators = new String[length = in.readInt()]; +// for (int i = 0; i < length; i++) +// internedTypeLocators[i] = in.readUTF(); + +// newState.typeLocators = new SimpleLookupTable(length = in.readInt()); +// for (int i = 0; i < length; i++) +// newState.typeLocators.put(in.readUTF(), internedTypeLocators[in.readInt()]); + +// char[][] internedSimpleNames = ReferenceCollection.internSimpleNames(readNames(in), false); +// char[][][] internedQualifiedNames = new char[length = in.readInt()][][]; +// for (int i = 0; i < length; i++) { +// int qLength = in.readInt(); +// char[][] qName = new char[qLength][]; +// for (int j = 0; j < qLength; j++) +// qName[j] = internedSimpleNames[in.readInt()]; +// internedQualifiedNames[i] = qName; +// } +// internedQualifiedNames = ReferenceCollection.internQualifiedNames(internedQualifiedNames); +// +// newState.references = new SimpleLookupTable(length = in.readInt()); +// for (int i = 0; i < length; i++) { +// String typeLocator = internedTypeLocators[in.readInt()]; +// ReferenceCollection collection = null; +// switch (in.readByte()) { +// case 1 : +// char[][] additionalTypeNames = readNames(in); +// char[][][] qualifiedNames = new char[in.readInt()][][]; +// for (int j = 0, m = qualifiedNames.length; j < m; j++) +// qualifiedNames[j] = internedQualifiedNames[in.readInt()]; +// char[][] simpleNames = new char[in.readInt()][]; +// for (int j = 0, m = simpleNames.length; j < m; j++) +// simpleNames[j] = internedSimpleNames[in.readInt()]; +// collection = new AdditionalTypeCollection(additionalTypeNames, qualifiedNames, simpleNames); +// break; +// case 2 : +// char[][][] qNames = new char[in.readInt()][][]; +// for (int j = 0, m = qNames.length; j < m; j++) +// qNames[j] = internedQualifiedNames[in.readInt()]; +// char[][] sNames = new char[in.readInt()][]; +// for (int j = 0, m = sNames.length; j < m; j++) +// sNames[j] = internedSimpleNames[in.readInt()]; +// collection = new ReferenceCollection(qNames, sNames); +// } +// newState.references.put(typeLocator, collection); +// } if (PHPBuilder.DEBUG) System.out.println("Successfully read state for " + newState.javaProjectName); //$NON-NLS-1$ return newState; @@ -338,14 +333,14 @@ public class State { /* * ClasspathMultiDirectory[] int id String path(s) */ - out.writeInt(length = sourceLocations.length); - for (int i = 0; i < length; i++) { - ClasspathMultiDirectory md = sourceLocations[i]; - out.writeUTF(md.sourceFolder.getProjectRelativePath().toString()); - out.writeUTF(md.binaryFolder.getProjectRelativePath().toString()); - writeNames(md.exclusionPatterns, out); - out.writeBoolean(md.hasIndependentOutputFolder); - } +// out.writeInt(length = sourceLocations.length); +// for (int i = 0; i < length; i++) { +// ClasspathMultiDirectory md = sourceLocations[i]; +// out.writeUTF(md.sourceFolder.getProjectRelativePath().toString()); +// out.writeUTF(md.binaryFolder.getProjectRelativePath().toString()); +// writeNames(md.exclusionPatterns, out); +// out.writeBoolean(md.hasIndependentOutputFolder); +// } /* * ClasspathLocation[] int id String path(s) @@ -399,115 +394,115 @@ public class State { /* * String[] Interned type locators */ - out.writeInt(length = references.elementSize); - ArrayList internedTypeLocators = new ArrayList(length); - if (length > 0) { - keyTable = references.keyTable; - for (int i = 0, l = keyTable.length; i < l; i++) { - if (keyTable[i] != null) { - length--; - String key = (String) keyTable[i]; - out.writeUTF(key); - internedTypeLocators.add(key); - } - } - if (PHPBuilder.DEBUG && length != 0) - System.out.println("references table is inconsistent"); //$NON-NLS-1$ - } +// out.writeInt(length = references.elementSize); +// ArrayList internedTypeLocators = new ArrayList(length); +// if (length > 0) { +// keyTable = references.keyTable; +// for (int i = 0, l = keyTable.length; i < l; i++) { +// if (keyTable[i] != null) { +// length--; +// String key = (String) keyTable[i]; +// out.writeUTF(key); +// internedTypeLocators.add(key); +// } +// } +// if (PHPBuilder.DEBUG && length != 0) +// System.out.println("references table is inconsistent"); //$NON-NLS-1$ +// } /* * Type locators table String type name int interned locator id */ - out.writeInt(length = typeLocators.elementSize); - if (length > 0) { - keyTable = typeLocators.keyTable; - valueTable = typeLocators.valueTable; - for (int i = 0, l = keyTable.length; i < l; i++) { - if (keyTable[i] != null) { - length--; - out.writeUTF((String) keyTable[i]); - out.writeInt(internedTypeLocators.indexOf((String) valueTable[i])); - } - } - if (PHPBuilder.DEBUG && length != 0) - System.out.println("typeLocators table is inconsistent"); //$NON-NLS-1$ - } +// out.writeInt(length = typeLocators.elementSize); +// if (length > 0) { +// keyTable = typeLocators.keyTable; +// valueTable = typeLocators.valueTable; +// for (int i = 0, l = keyTable.length; i < l; i++) { +// if (keyTable[i] != null) { +// length--; +// out.writeUTF((String) keyTable[i]); +// out.writeInt(internedTypeLocators.indexOf((String) valueTable[i])); +// } +// } +// if (PHPBuilder.DEBUG && length != 0) +// System.out.println("typeLocators table is inconsistent"); //$NON-NLS-1$ +// } /* * char[][][] Interned qualified names char[][] Interned simple names */ - ArrayList internedQualifiedNames = new ArrayList(31); - ArrayList internedSimpleNames = new ArrayList(31); - valueTable = references.valueTable; - for (int i = 0, l = valueTable.length; i < l; i++) { - if (valueTable[i] != null) { - ReferenceCollection collection = (ReferenceCollection) valueTable[i]; - char[][][] qNames = collection.qualifiedNameReferences; - for (int j = 0, m = qNames.length; j < m; j++) { - char[][] qName = qNames[j]; - if (!internedQualifiedNames.contains(qName)) { // remember the names have been interned - internedQualifiedNames.add(qName); - for (int k = 0, n = qName.length; k < n; k++) { - char[] sName = qName[k]; - if (!internedSimpleNames.contains(sName)) // remember the names have been interned - internedSimpleNames.add(sName); - } - } - } - char[][] sNames = collection.simpleNameReferences; - for (int j = 0, m = sNames.length; j < m; j++) { - char[] sName = sNames[j]; - if (!internedSimpleNames.contains(sName)) // remember the names have been interned - internedSimpleNames.add(sName); - } - } - } - char[][] internedArray = new char[internedSimpleNames.size()][]; - internedSimpleNames.toArray(internedArray); - writeNames(internedArray, out); - // now write the interned qualified names as arrays of interned simple names - out.writeInt(length = internedQualifiedNames.size()); - for (int i = 0; i < length; i++) { - char[][] qName = (char[][]) internedQualifiedNames.get(i); - int qLength = qName.length; - out.writeInt(qLength); - for (int j = 0; j < qLength; j++) - out.writeInt(internedSimpleNames.indexOf(qName[j])); - } - - /* - * References table int interned locator id ReferenceCollection - */ - out.writeInt(length = references.elementSize); - if (length > 0) { - keyTable = references.keyTable; - for (int i = 0, l = keyTable.length; i < l; i++) { - if (keyTable[i] != null) { - length--; - out.writeInt(internedTypeLocators.indexOf((String) keyTable[i])); - ReferenceCollection collection = (ReferenceCollection) valueTable[i]; - if (collection instanceof AdditionalTypeCollection) { - out.writeByte(1); - AdditionalTypeCollection atc = (AdditionalTypeCollection) collection; - writeNames(atc.definedTypeNames, out); - } else { - out.writeByte(2); - } - char[][][] qNames = collection.qualifiedNameReferences; - int qLength = qNames.length; - out.writeInt(qLength); - for (int j = 0; j < qLength; j++) - out.writeInt(internedQualifiedNames.indexOf(qNames[j])); - char[][] sNames = collection.simpleNameReferences; - int sLength = sNames.length; - out.writeInt(sLength); - for (int j = 0; j < sLength; j++) - out.writeInt(internedSimpleNames.indexOf(sNames[j])); - } - } - if (PHPBuilder.DEBUG && length != 0) - System.out.println("references table is inconsistent"); //$NON-NLS-1$ - } +// ArrayList internedQualifiedNames = new ArrayList(31); +// ArrayList internedSimpleNames = new ArrayList(31); +// valueTable = references.valueTable; +// for (int i = 0, l = valueTable.length; i < l; i++) { +// if (valueTable[i] != null) { +// ReferenceCollection collection = (ReferenceCollection) valueTable[i]; +// char[][][] qNames = collection.qualifiedNameReferences; +// for (int j = 0, m = qNames.length; j < m; j++) { +// char[][] qName = qNames[j]; +// if (!internedQualifiedNames.contains(qName)) { // remember the names have been interned +// internedQualifiedNames.add(qName); +// for (int k = 0, n = qName.length; k < n; k++) { +// char[] sName = qName[k]; +// if (!internedSimpleNames.contains(sName)) // remember the names have been interned +// internedSimpleNames.add(sName); +// } +// } +// } +// char[][] sNames = collection.simpleNameReferences; +// for (int j = 0, m = sNames.length; j < m; j++) { +// char[] sName = sNames[j]; +// if (!internedSimpleNames.contains(sName)) // remember the names have been interned +// internedSimpleNames.add(sName); +// } +// } +// } +// char[][] internedArray = new char[internedSimpleNames.size()][]; +// internedSimpleNames.toArray(internedArray); +// writeNames(internedArray, out); +// // now write the interned qualified names as arrays of interned simple names +// out.writeInt(length = internedQualifiedNames.size()); +// for (int i = 0; i < length; i++) { +// char[][] qName = (char[][]) internedQualifiedNames.get(i); +// int qLength = qName.length; +// out.writeInt(qLength); +// for (int j = 0; j < qLength; j++) +// out.writeInt(internedSimpleNames.indexOf(qName[j])); +// } +// +// /* +// * References table int interned locator id ReferenceCollection +// */ +// out.writeInt(length = references.elementSize); +// if (length > 0) { +// keyTable = references.keyTable; +// for (int i = 0, l = keyTable.length; i < l; i++) { +// if (keyTable[i] != null) { +// length--; +// out.writeInt(internedTypeLocators.indexOf((String) keyTable[i])); +// ReferenceCollection collection = (ReferenceCollection) valueTable[i]; +// if (collection instanceof AdditionalTypeCollection) { +// out.writeByte(1); +// AdditionalTypeCollection atc = (AdditionalTypeCollection) collection; +// writeNames(atc.definedTypeNames, out); +// } else { +// out.writeByte(2); +// } +// char[][][] qNames = collection.qualifiedNameReferences; +// int qLength = qNames.length; +// out.writeInt(qLength); +// for (int j = 0; j < qLength; j++) +// out.writeInt(internedQualifiedNames.indexOf(qNames[j])); +// char[][] sNames = collection.simpleNameReferences; +// int sLength = sNames.length; +// out.writeInt(sLength); +// for (int j = 0; j < sLength; j++) +// out.writeInt(internedSimpleNames.indexOf(sNames[j])); +// } +// } +// if (PHPBuilder.DEBUG && length != 0) +// System.out.println("references table is inconsistent"); //$NON-NLS-1$ +// } } private void writeNames(char[][] names, DataOutputStream out) throws IOException {