You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ea...@apache.org on 2007/05/11 05:00:17 UTC
svn commit: r537071 - in
/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl:
CASImpl.java CASSerializer.java StringHeap.java
Author: eae
Date: Thu May 10 20:00:17 2007
New Revision: 537071
URL: http://svn.apache.org/viewvc?view=rev&rev=537071
Log:
UIMA-359
Modified:
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringHeap.java
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java?view=diff&rev=537071&r1=537070&r2=537071
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java Thu May 10 20:00:17 2007
@@ -1411,7 +1411,7 @@
this.byteHeap.heapPos = byteheapsz;
// word alignment
- int align = byteheapsz % 4;
+ int align = (4 - (byteheapsz % 4)) % 4;
for (int i = 0; i < align; i++) {
dis.readByte();
}
@@ -1437,7 +1437,7 @@
// word alignment
if (shortheapsz % 2 != 0) {
- dis.readChar();
+ dis.readShort();
}
// long heap
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java?view=diff&rev=537071&r1=537070&r2=537071
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java Thu May 10 20:00:17 2007
@@ -218,13 +218,7 @@
// add 1 for the null at the beginning
stringTotalLength += 1;
}
-
- // word alignment
- if (stringTotalLength % 2 != 0) {
- dos.writeInt(stringTotalLength + 1);
- } else {
- dos.writeInt(stringTotalLength);
- }
+ dos.writeInt(stringTotalLength);
//write the data in the stringheap, if there is any
if (stringTotalLength > 0) {
@@ -282,30 +276,27 @@
}
// 8bit heap
- int byteheapsz = 4 * ((cas.byteHeap.getSize() + 3) / 4);
+ int byteheapsz = cas.byteHeap.getSize();
dos.writeInt(byteheapsz);
for (int i = 0; i < cas.byteHeap.getSize(); i++) {
dos.writeByte(cas.byteHeap.heap[i]);
}
-
// word alignment
- int align = byteheapsz - cas.byteHeap.getSize();
+ int align = (4 - (byteheapsz % 4)) % 4;
for (int i = 0; i < align; i++) {
dos.writeByte(0);
}
// 16bit heap
- int shortheapsz = 2 * ((cas.shortHeap.getSize() * 2 + 2) / 4);
+ int shortheapsz = cas.shortHeap.getSize();
dos.writeInt(shortheapsz);
for (int i = 0; i < cas.shortHeap.getSize(); i++) {
dos.writeShort(cas.shortHeap.heap[i]);
}
-
// word alignment
- align = shortheapsz - (cas.shortHeap.getSize());
- for (int i = 0; i < align; i++) {
- dos.writeChar(0);
- }
+ if (shortheapsz % 2 != 0) {
+ dos.writeShort(0);
+ }
// 64bit heap
int longheapsz = cas.longHeap.getSize();
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringHeap.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringHeap.java?view=diff&rev=537071&r1=537070&r2=537071
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringHeap.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringHeap.java Thu May 10 20:00:17 2007
@@ -236,7 +236,7 @@
// Create the cell.
this.refHeap[cellRef + CHAR_HEAP_POINTER_OFFSET] = charBufStart;
this.refHeap[cellRef + CHAR_HEAP_STRLEN_OFFSET] = length;
- this.charHeapPos += length;
+ this.charHeapPos += length + 1;
ensureCharHeapSize();
System.arraycopy(buffer, start, this.stringHeap, charBufStart, length);
return refHeap2casPointer(cellRef);