vgritsenko 2004/01/06 19:57:52
Modified: java/src/org/apache/xindice/core/data Value.java java/src/org/apache/xindice/core Collection.java Log: optimization: reduce amount of calls to getData() as it has possibility of copying the data Revision Changes Path 1.9 +11 -7 xml-xindice/java/src/org/apache/xindice/core/data/Value.java Index: Value.java =================================================================== RCS file: /home/cvs/xml-xindice/java/src/org/apache/xindice/core/data/Value.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Value.java 16 Dec 2003 14:06:10 -0000 1.8 +++ Value.java 7 Jan 2004 03:57:52 -0000 1.9 @@ -82,14 +82,14 @@ public Value(Value value) { - data = value.data; - pos = value.pos; - len = value.len; + this.data = value.data; + this.pos = value.pos; + this.len = value.len; } public Value(byte[] data) { this.data = data; - len = data.length; + this.len = data.length; } public Value(byte[] data, int pos, int len) { @@ -153,9 +153,13 @@ System.arraycopy(data, pos, tdata, tpos, len); } + public final void copyTo(byte[] tdata, int tpos, int len) { + System.arraycopy(data, pos, tdata, tpos, len); + } + public final String toString() { try { - return new String(getData(), "utf-8"); + return new String(data, pos, len, "utf-8"); } catch (UnsupportedEncodingException e) { throw new XindiceRuntimeException("Java doesn't seem to support UTF-8!", e); } 1.44 +3 -3 xml-xindice/java/src/org/apache/xindice/core/Collection.java Index: Collection.java =================================================================== RCS file: /home/cvs/xml-xindice/java/src/org/apache/xindice/core/Collection.java,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- Collection.java 25 Dec 2003 20:04:40 -0000 1.43 +++ Collection.java 7 Jan 2004 03:57:52 -0000 1.44 @@ -206,7 +206,7 @@ Record rec = set.getNextRecord(); Key key = rec.getKey(); Value val = rec.getValue(); - if (val.getData() != null) { + if (val.getLength() > 0) { try { if (compressed) { Document doc = new DocumentImpl(val.getData(), symbols, new NodeSource(Collection.this, key));