Bug HDF5: Correct the write of emptymatrix test_run('optimization','bug_7093') 62/8762/2
Adeline CARNIS [Tue, 21 Aug 2012 13:37:09 +0000 (15:37 +0200)]
Change-Id: I34c055782b89476fb27c3cb57dc1d35f48502d53

scilab/modules/hdf5/src/c/h5_readDataFromFile.c
scilab/modules/hdf5/src/c/h5_writeDataToFile.c
scilab/modules/hdf5/tests/sample_scilab_data/emptymatrix.sod

index b08bf4f..f436f8f 100644 (file)
@@ -267,7 +267,8 @@ int getDatasetInfo(int _iDatasetId, int* _iComplex, int* _iDims, int* _piDims)
         return -1;
     }
 
-    if(_piDims != 0)
+
+    if(_piDims != NULL)
     {
         int i = 0;
         hsize_t* dims = (hsize_t*)MALLOC(sizeof(hsize_t) * *_iDims);
index a41c69f..19ac052 100644 (file)
@@ -448,15 +448,18 @@ int writeDoubleMatrix(int _iFile, char *_pstDatasetName, int _iDims, int* _piDim
 
     piDims = convertDims(_iDims, _piDims, &iSize);
 
+    //Create dataspace.  Setting maximum size to NULL sets the maximum size to be the current size.
+    space = H5Screate_simple(_iDims, piDims, NULL);
+    if (space < 0)
+    {
+        free(piDims);
+        return -1;
+    }
+
     if (_iDims == 2 && piDims[0] == 0 && piDims[1] == 0)
     {
         // []
-        space = H5Screate_simple(0, NULL, NULL);
-        if (space < 0)
-        {
-            free(piDims);
-            return -1;
-        }
+      
 
         //Create the dataset and write the array data to it.
         iCompress = enableCompression(9, _iDims, piDims);
@@ -490,13 +493,7 @@ int writeDoubleMatrix(int _iFile, char *_pstDatasetName, int _iDims, int* _piDim
         return 0;
     }
 
-    //Create dataspace.  Setting maximum size to NULL sets the maximum size to be the current size.
-    space = H5Screate_simple(_iDims, piDims, NULL);
-    if (space < 0)
-    {
-        free(piDims);
-        return -1;
-    }
+    
 
     //Create the dataset and write the array data to it.
     iCompress = enableCompression(9, _iDims, piDims);
index aaeb4b5..cdaada8 100644 (file)
Binary files a/scilab/modules/hdf5/tests/sample_scilab_data/emptymatrix.sod and b/scilab/modules/hdf5/tests/sample_scilab_data/emptymatrix.sod differ