]> gerrit.simantics Code Review - simantics/sysdyn.git/commitdiff
using long to calculate offsets.
authorluukkainen <luukkainen@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Fri, 7 Sep 2012 10:56:54 +0000 (10:56 +0000)
committerluukkainen <luukkainen@ac1ea38d-2e2b-0410-8846-a27921b304fc>
Fri, 7 Sep 2012 10:56:54 +0000 (10:56 +0000)
refs #3692

git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@25687 ac1ea38d-2e2b-0410-8846-a27921b304fc

org.simantics.modelica/src/org/simantics/modelica/reader/MatFileReader.java

index 85074f8fa5d43e4246bec2b30422d0b32ad89d4a..786faae1c4326cd7100d71317dfa182adcf9c948 100644 (file)
@@ -25,8 +25,8 @@ public class MatFileReader implements ResultFileReader {
        private Map<String, Integer> indices = new HashMap<String, Integer>();\r
        \r
        \r
-       int readBytes = 0; // tracking read data\r
-       int dataMark = 0;  // mark for actual data\r
+       long readBytes = 0; // tracking read data\r
+       long dataMark = 0;  // mark for actual data\r
        \r
        IntMatrix info;\r
        int[] infoData;\r
@@ -345,11 +345,11 @@ public class MatFileReader implements ResultFileReader {
                int rows = header.rows;\r
                double[] v = new double[count];\r
                int sc = infoData[row * 4 + 1];\r
-               int c = sc > 0 ? sc-1 : -sc-1;\r
+               long c = sc > 0 ? sc-1 : -sc-1;\r
                \r
 \r
 \r
-       skip((c+start*rows) * 8, in);\r
+       skip((c+((long)start*(long)rows)) * 8L, in);\r
        for (int j = 0; j < v.length; ++j) {\r
                \r
                double d = getDouble(in);\r
@@ -413,7 +413,7 @@ public class MatFileReader implements ResultFileReader {
                \r
                \r
 \r
-       skip(c[0] * 8, in);\r
+       skip((long)c[0] * 8L, in);\r
        for (int j = 0; j < size; ++j) {\r
                for (int index = 0; index < sortedRows.size(); index++) {\r
                                \r
@@ -532,8 +532,10 @@ public class MatFileReader implements ResultFileReader {
        \r
                \r
                \r
-               \r
-               skip((start*rows) * 8, in);\r
+               long s = start;\r
+               s *= (long)rows;\r
+               s *= 8L;\r
+               skip(s, in);\r
        skip(c[0] * 8, in);\r
        for (int j = 0; j < count; ++j) {\r
                for (int index = 0; index < sortedRows.size(); index++) {\r
@@ -583,8 +585,8 @@ public class MatFileReader implements ResultFileReader {
        \r
        return vs;\r
     }\r
-    private void skip(int skipBytes, InputStream in) throws IOException {\r
-       int skip = 0; \r
+    private void skip(long skipBytes, InputStream in) throws IOException {\r
+       long skip = 0; \r
        while (skip < skipBytes) {\r
                skip += in.skip(skipBytes-skip);\r
        }\r