You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2012/08/24 00:12:56 UTC

svn commit: r1376731 - in /incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic: AddOperation.java SubtractOperation.java

Author: prestonc
Date: Thu Aug 23 22:12:55 2012
New Revision: 1376731

URL: http://svn.apache.org/viewvc?rev=1376731&view=rev
Log:
Fixed a few bad references to the array backed value store.

Modified:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AddOperation.java
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/SubtractOperation.java

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AddOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AddOperation.java?rev=1376731&r1=1376730&r2=1376731&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AddOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/AddOperation.java Thu Aug 23 22:12:55 2012
@@ -36,11 +36,14 @@ public class AddOperation extends Abstra
         // Add duration.
         DateTime.normalizeDateTime(datep1.getYearMonth(), datep1.getDayTime() + longp2.getLong(), dOutInner);
         byte[] bytes = abvsInner.getByteArray();
+        int startOffset = abvsInner.getStartOffset() + 1;
         // Convert to date.
-        bytes[XSDatePointable.TIMEZONE_HOUR_OFFSET] = bytes[XSDateTimePointable.TIMEZONE_HOUR_OFFSET];
-        bytes[XSDatePointable.TIMEZONE_MINUTE_OFFSET] = bytes[XSDateTimePointable.TIMEZONE_MINUTE_OFFSET];
+        bytes[startOffset + XSDatePointable.TIMEZONE_HOUR_OFFSET] = bytes[startOffset
+                + XSDateTimePointable.TIMEZONE_HOUR_OFFSET];
+        bytes[startOffset + XSDatePointable.TIMEZONE_MINUTE_OFFSET] = bytes[startOffset
+                + XSDateTimePointable.TIMEZONE_MINUTE_OFFSET];
         dOut.write(ValueTag.XS_DATE_TAG);
-        dOut.write(bytes, 0, XSDatePointable.TYPE_TRAITS.getFixedLength());
+        dOut.write(bytes, startOffset, XSDatePointable.TYPE_TRAITS.getFixedLength());
     }
 
     @Override
@@ -56,7 +59,8 @@ public class AddOperation extends Abstra
         abvsInner.reset();
         DateTime.normalizeDateTime(datetimep1.getYearMonth(), datetimep1.getDayTime() + longp2.getLong(), dOutInner);
         dOut.write(ValueTag.XS_DATETIME_TAG);
-        dOut.write(abvsInner.getByteArray());
+        dOut.write(abvsInner.getByteArray(), abvsInner.getStartOffset() + 1,
+                XSDateTimePointable.TYPE_TRAITS.getFixedLength());
     }
 
     @Override
@@ -66,7 +70,8 @@ public class AddOperation extends Abstra
         abvsInner.reset();
         DateTime.normalizeDateTime(datetimep.getYearMonth(), datetimep.getDayTime() + intp.getInteger(), dOutInner);
         dOut.write(ValueTag.XS_DATETIME_TAG);
-        dOut.write(abvsInner.getByteArray());
+        dOut.write(abvsInner.getByteArray(), abvsInner.getStartOffset() + 1,
+                XSDateTimePointable.TYPE_TRAITS.getFixedLength());
     }
 
     @Override
@@ -76,11 +81,14 @@ public class AddOperation extends Abstra
         // Add duration.
         DateTime.normalizeDateTime(datep.getYearMonth(), datep.getDayTime() + intp.getInteger(), dOutInner);
         byte[] bytes = abvsInner.getByteArray();
+        int startOffset = abvsInner.getStartOffset() + 1;
         // Convert to date.
-        bytes[XSDatePointable.TIMEZONE_HOUR_OFFSET] = bytes[XSDateTimePointable.TIMEZONE_HOUR_OFFSET];
-        bytes[XSDatePointable.TIMEZONE_MINUTE_OFFSET] = bytes[XSDateTimePointable.TIMEZONE_MINUTE_OFFSET];
+        bytes[startOffset + XSDatePointable.TIMEZONE_HOUR_OFFSET] = bytes[startOffset
+                + XSDateTimePointable.TIMEZONE_HOUR_OFFSET];
+        bytes[startOffset + XSDatePointable.TIMEZONE_MINUTE_OFFSET] = bytes[startOffset
+                + XSDateTimePointable.TIMEZONE_MINUTE_OFFSET];
         dOut.write(ValueTag.XS_DATE_TAG);
-        dOut.write(bytes, 0, XSDatePointable.TYPE_TRAITS.getFixedLength());
+        dOut.write(bytes, startOffset, XSDatePointable.TYPE_TRAITS.getFixedLength());
     }
 
     @Override
@@ -269,14 +277,16 @@ public class AddOperation extends Abstra
         // Add duration.
         DateTime.normalizeDateTime(timep2.getYearMonth(), timep2.getDayTime() + longp1.getLong(), dOutInner);
         byte[] bytes = abvsInner.getByteArray();
+        int startOffset = abvsInner.getStartOffset() + 1;
         // Convert to time.
-        bytes[XSTimePointable.HOUR_OFFSET] = bytes[XSDateTimePointable.HOUR_OFFSET];
-        bytes[XSTimePointable.MINUTE_OFFSET] = bytes[XSDateTimePointable.MINUTE_OFFSET];
-        bytes[XSTimePointable.MILLISECOND_OFFSET] = bytes[XSDateTimePointable.MILLISECOND_OFFSET];
-        bytes[XSTimePointable.TIMEZONE_HOUR_OFFSET] = (byte) timep2.getTimezoneHour();
-        bytes[XSTimePointable.TIMEZONE_MINUTE_OFFSET] = (byte) timep2.getTimezoneMinute();
+        bytes[startOffset + XSTimePointable.HOUR_OFFSET] = bytes[startOffset + XSDateTimePointable.HOUR_OFFSET];
+        bytes[startOffset + XSTimePointable.MINUTE_OFFSET] = bytes[startOffset + XSDateTimePointable.MINUTE_OFFSET];
+        bytes[startOffset + XSTimePointable.MILLISECOND_OFFSET] = bytes[startOffset
+                + XSDateTimePointable.MILLISECOND_OFFSET];
+        bytes[startOffset + XSTimePointable.TIMEZONE_HOUR_OFFSET] = (byte) timep2.getTimezoneHour();
+        bytes[startOffset + XSTimePointable.TIMEZONE_MINUTE_OFFSET] = (byte) timep2.getTimezoneMinute();
         dOut.write(ValueTag.XS_TIME_TAG);
-        dOut.write(bytes, 0, XSTimePointable.TYPE_TRAITS.getFixedLength());
+        dOut.write(bytes, startOffset, XSTimePointable.TYPE_TRAITS.getFixedLength());
     }
 
     @Override

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/SubtractOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/SubtractOperation.java?rev=1376731&r1=1376730&r2=1376731&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/SubtractOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/arithmetic/SubtractOperation.java Thu Aug 23 22:12:55 2012
@@ -30,12 +30,12 @@ public class SubtractOperation extends A
         abvsInner1.reset();
         DateTime.getTimezoneDateTime(datep1, dCtx, dOutInner1);
         XSDateTimePointable datetimep1 = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
-        datetimep1.set(abvsInner1.getByteArray(), abvsInner1.getStartOffset(), abvsInner1.getLength());
+        datetimep1.set(abvsInner1.getByteArray(), abvsInner1.getStartOffset() + 1, abvsInner1.getLength());
 
         abvsInner2.reset();
         DateTime.getTimezoneDateTime(datep2, dCtx, dOutInner2);
         XSDateTimePointable datetimep2 = (XSDateTimePointable) XSDateTimePointable.FACTORY.createPointable();
-        datetimep2.set(abvsInner2.getByteArray(), abvsInner2.getStartOffset(), abvsInner2.getLength());
+        datetimep2.set(abvsInner2.getByteArray(), abvsInner2.getStartOffset() + 1, abvsInner2.getLength());
 
         operateDatetimeDatetime(datetimep1, datetimep2, dCtx, dOut);
     }
@@ -47,11 +47,14 @@ public class SubtractOperation extends A
         abvsInner1.reset();
         DateTime.normalizeDateTime(datep1.getYearMonth(), datep1.getDayTime() - longp2.getLong(), dOutInner1);
         byte[] bytes = abvsInner1.getByteArray();
+        int startOffset = abvsInner1.getStartOffset() + 1;
         // Convert to date.
-        bytes[XSDatePointable.TIMEZONE_HOUR_OFFSET] = bytes[XSDateTimePointable.TIMEZONE_HOUR_OFFSET];
-        bytes[XSDatePointable.TIMEZONE_MINUTE_OFFSET] = bytes[XSDateTimePointable.TIMEZONE_MINUTE_OFFSET];
+        bytes[startOffset + XSDatePointable.TIMEZONE_HOUR_OFFSET] = bytes[startOffset
+                + XSDateTimePointable.TIMEZONE_HOUR_OFFSET];
+        bytes[startOffset + XSDatePointable.TIMEZONE_MINUTE_OFFSET] = bytes[startOffset
+                + XSDateTimePointable.TIMEZONE_MINUTE_OFFSET];
         dOut.write(ValueTag.XS_DATE_TAG);
-        dOut.write(bytes, 0, XSDatePointable.TYPE_TRAITS.getFixedLength());
+        dOut.write(bytes, startOffset, XSDatePointable.TYPE_TRAITS.getFixedLength());
     }
 
     @Override
@@ -60,14 +63,17 @@ public class SubtractOperation extends A
         abvsInner1.reset();
         DateTime.getTimezoneDateTime(datetimep1, dCtx, dOutInner1);
         byte[] bytes1 = abvsInner1.getByteArray();
-
+        int startOffset1 = abvsInner1.getStartOffset() + 1;
+        
         abvsInner2.reset();
         DateTime.getTimezoneDateTime(datetimep2, dCtx, dOutInner2);
         byte[] bytes2 = abvsInner2.getByteArray();
-
-        long dayTime1 = XSDateTimePointable.getDayTime(bytes1, 0);
-        long dayTime2 = XSDateTimePointable.getDayTime(bytes2, 0);
-        long yearMonth = XSDateTimePointable.getYearMonth(bytes1, 0) - XSDateTimePointable.getYearMonth(bytes2, 0);
+        int startOffset2 = abvsInner2.getStartOffset() + 1;
+        
+        long dayTime1 = XSDateTimePointable.getDayTime(bytes1, startOffset1);
+        long dayTime2 = XSDateTimePointable.getDayTime(bytes2, startOffset2);
+        long yearMonth = XSDateTimePointable.getYearMonth(bytes1, startOffset1)
+                - XSDateTimePointable.getYearMonth(bytes2, startOffset2);
         // Find duration.
         dayTime1 -= dayTime2;
         // Default
@@ -106,7 +112,8 @@ public class SubtractOperation extends A
         abvsInner1.reset();
         DateTime.normalizeDateTime(datetimep.getYearMonth(), datetimep.getDayTime() - longp.getLong(), dOutInner1);
         dOut.write(ValueTag.XS_DATETIME_TAG);
-        dOut.write(abvsInner1.getByteArray());
+        dOut.write(abvsInner1.getByteArray(), abvsInner1.getStartOffset() + 1,
+                XSDateTimePointable.TYPE_TRAITS.getFixedLength());
     }
 
     @Override
@@ -115,8 +122,9 @@ public class SubtractOperation extends A
         // Add duration.
         abvsInner1.reset();
         DateTime.normalizeDateTime(datetimep.getYearMonth() - intp.getInteger(), datetimep.getDayTime(), dOutInner1);
-        dOut.write(ValueTag.XS_DATE_TAG);
-        dOut.write(abvsInner1.getByteArray());
+        dOut.write(ValueTag.XS_DATETIME_TAG);
+        dOut.write(abvsInner1.getByteArray(), abvsInner1.getStartOffset() + 1,
+                XSDateTimePointable.TYPE_TRAITS.getFixedLength());
     }
 
     @Override
@@ -126,11 +134,14 @@ public class SubtractOperation extends A
         abvsInner1.reset();
         DateTime.normalizeDateTime(datep.getYearMonth() - intp.getInteger(), datep.getDayTime(), dOutInner1);
         byte[] bytes = abvsInner1.getByteArray();
+        int startOffset = abvsInner1.getStartOffset() + 1;
         // Convert to date.
-        bytes[XSDatePointable.TIMEZONE_HOUR_OFFSET] = bytes[XSDateTimePointable.TIMEZONE_HOUR_OFFSET];
-        bytes[XSDatePointable.TIMEZONE_MINUTE_OFFSET] = bytes[XSDateTimePointable.TIMEZONE_MINUTE_OFFSET];
+        bytes[startOffset + XSDatePointable.TIMEZONE_HOUR_OFFSET] = bytes[startOffset
+                + XSDateTimePointable.TIMEZONE_HOUR_OFFSET];
+        bytes[startOffset + XSDatePointable.TIMEZONE_MINUTE_OFFSET] = bytes[startOffset
+                + XSDateTimePointable.TIMEZONE_MINUTE_OFFSET];
         dOut.write(ValueTag.XS_DATE_TAG);
-        dOut.write(bytes, 0, XSDatePointable.TYPE_TRAITS.getFixedLength());
+        dOut.write(bytes, startOffset, XSDatePointable.TYPE_TRAITS.getFixedLength());
     }
 
     @Override
@@ -443,13 +454,15 @@ public class SubtractOperation extends A
         DateTime.normalizeDateTime(0, timep1.getDayTime() - longp2.getLong(), dOutInner1);
         byte[] bytes = abvsInner1.getByteArray();
         // Convert to date.
-        bytes[XSTimePointable.HOUR_OFFSET] = bytes[XSDateTimePointable.HOUR_OFFSET];
-        bytes[XSTimePointable.MINUTE_OFFSET] = bytes[XSDateTimePointable.MINUTE_OFFSET];
-        bytes[XSTimePointable.MILLISECOND_OFFSET] = bytes[XSDateTimePointable.MILLISECOND_OFFSET];
-        bytes[XSTimePointable.TIMEZONE_HOUR_OFFSET] = (byte) timep1.getTimezoneHour();
-        bytes[XSTimePointable.TIMEZONE_MINUTE_OFFSET] = (byte) timep1.getTimezoneMinute();
+        int startOffset1 = abvsInner1.getStartOffset() + 1;
+        bytes[startOffset1 + XSTimePointable.HOUR_OFFSET] = bytes[startOffset1 + XSDateTimePointable.HOUR_OFFSET];
+        bytes[startOffset1 + XSTimePointable.MINUTE_OFFSET] = bytes[startOffset1 + XSDateTimePointable.MINUTE_OFFSET];
+        bytes[startOffset1 + XSTimePointable.MILLISECOND_OFFSET] = bytes[startOffset1
+                + XSDateTimePointable.MILLISECOND_OFFSET];
+        bytes[startOffset1 + XSTimePointable.TIMEZONE_HOUR_OFFSET] = (byte) timep1.getTimezoneHour();
+        bytes[startOffset1 + XSTimePointable.TIMEZONE_MINUTE_OFFSET] = (byte) timep1.getTimezoneMinute();
         dOut.write(ValueTag.XS_TIME_TAG);
-        dOut.write(bytes, 0, XSDatePointable.TYPE_TRAITS.getFixedLength());
+        dOut.write(bytes, startOffset1, XSDatePointable.TYPE_TRAITS.getFixedLength());
     }
 
     @Override