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);