[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [labplot] src/backend/datasources/filters: (HDF) fixed reading rank 1 strings
From: Stefan Gerlach <null () kde ! org>
Date: 2017-01-06 23:10:58
Message-ID: E1cPdf0-0002mc-BO () code ! kde ! org
[Download RAW message or body]
Git commit 1ef57462dc533e146c4f8cadb9166bb0ab645743 by Stefan Gerlach.
Committed on 06/01/2017 at 23:10.
Pushed by sgerlach into branch 'master'.
(HDF) fixed reading rank 1 strings
M +12 -12 src/backend/datasources/filters/HDFFilter.cpp
https://commits.kde.org/labplot/1ef57462dc533e146c4f8cadb9166bb0ab645743
diff --git a/src/backend/datasources/filters/HDFFilter.cpp \
b/src/backend/datasources/filters/HDFFilter.cpp index 018ccf5e..a2343def 100644
--- a/src/backend/datasources/filters/HDFFilter.cpp
+++ b/src/backend/datasources/filters/HDFFilter.cpp
@@ -1255,7 +1255,7 @@ QString HDFFilterPrivate::readCurrentDataSet(const QString & \
fileName, AbstractD
switch (dclass) {
case H5T_STRING: {
- char* data = (char *) malloc(typeSize * sizeof (char));
+ char* data = (char *) malloc(typeSize * sizeof(char));
hid_t memtype = H5Tcopy(H5T_C_S1);
handleError((int)memtype, "H5Tcopy");
status = H5Tset_size(memtype, typeSize);
@@ -1263,7 +1263,7 @@ QString HDFFilterPrivate::readCurrentDataSet(const QString & \
fileName, AbstractD
status = H5Dread(dataset, memtype, H5S_ALL, H5S_ALL, H5P_DEFAULT, data);
handleError(status, "H5Tread");
- dataString << data << QLatin1String("\n");
+ dataString << data;
free(data);
break;
}
@@ -1310,23 +1310,23 @@ QString HDFFilterPrivate::readCurrentDataSet(const QString & \
fileName, AbstractD
switch (dclass) {
case H5T_STRING: {
- char** data = (char **) malloc(rows * sizeof (char *));
- data[0] = (char *) malloc(rows * typeSize * sizeof (char));
- for (int i = 1; i < rows; i++)
- data[i] = data[0] + i * typeSize;
+ char **data = (char **) malloc(rows * sizeof(char *));
hid_t memtype = H5Tcopy(H5T_C_S1);
handleError((int)memtype, "H5Tcopy");
- status = H5Tset_size(memtype, typeSize);
+ //status = H5Tset_size(memtype, typeSize);
+ status = H5Tset_size(memtype, H5T_VARIABLE);
handleError((int)memtype, "H5Tset_size");
- status = H5Dread(dataset, memtype, H5S_ALL, H5S_ALL, H5P_DEFAULT, data[0]);
- handleError(status,"H5Dread");
+ status = H5Dread(dataset, memtype, H5S_ALL, H5S_ALL, H5P_DEFAULT, data);
+ handleError(status, "H5Dread");
- for (int i = startRow-1; i < qMin(endRow, lines+startRow-1); i++)
- dataString << data[i] << QLatin1String("\n");
+ for (int i = startRow-1; i < qMin(endRow, lines+startRow-1); i++) {
+ dataString << data[i];
+ if (i < qMin(endRow, lines+startRow-1)-1)
+ dataString << QLatin1String("\n");
+ }
- free(data[0]);
free(data);
break;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic