Просмотр исходного кода

solving multiple read issue in the VdataItem

Patrik Kovacs 6 лет назад
Родитель
Сommit
ea251fe4c9
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      include/hdf4cpp/HdfItem.h

+ 4 - 0
include/hdf4cpp/HdfItem.h

@@ -275,6 +275,7 @@ class HdfItem : public HdfObject {
                 records = nrRecords;
             }
 
+
             if (VSsetfields(id, field.c_str()) == FAIL) {
                 raiseException(STATUS_RETURN_FAIL);
             }
@@ -286,9 +287,11 @@ class HdfItem : public HdfObject {
 
             size_t size = records * fieldSize;
             std::vector<uint8> buff(size);
+
             if (VSread(id, buff.data(), records, interlace) == FAIL) {
                 raiseException(STATUS_RETURN_FAIL);
             }
+            VSseek(id, 0);
 
             dest.resize(records);
             VOIDP buffptrs[1];
@@ -323,6 +326,7 @@ class HdfItem : public HdfObject {
             if (VSread(id, buff.data(), records, interlace) == FAIL) {
                 raiseException(STATUS_RETURN_FAIL);
             }
+            VSseek(id, 0);
 
             int32 divided = fieldSize / sizeof(T);
             dest.resize(records, std::vector<T>(divided));