[C-API] Fix set tensor dimension order
authorYelin Jeong <yelini.jeong@samsung.com>
Tue, 11 Apr 2023 10:46:43 +0000 (19:46 +0900)
committerwooksong <wook16.song@samsung.com>
Wed, 19 Apr 2023 04:19:24 +0000 (13:19 +0900)
This patch fixes the order of ml_tensors_info_set_tensor_dimension.
If tensors_info is not extended, user may regard dimension array's length to 4.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
c/src/ml-api-common.c

index c78f96c..c5afff6 100644 (file)
@@ -506,14 +506,13 @@ ml_tensors_info_set_tensor_dimension (ml_tensors_info_h info,
         tensors_info->num_tensors, index, index);
   }
 
-  for (i = 0; i < ML_TENSOR_RANK_LIMIT; i++) {
+  for (i = 0; i < ML_TENSOR_RANK_LIMIT_PREV; i++) {
     tensors_info->info[index].dimension[i] = dimension[i];
   }
 
-  if (!tensors_info->is_extended) {
-    for (i = ML_TENSOR_RANK_LIMIT_PREV; i < ML_TENSOR_RANK_LIMIT; i++) {
-      tensors_info->info[index].dimension[i] = 1;
-    }
+  for (i = ML_TENSOR_RANK_LIMIT_PREV; i < ML_TENSOR_RANK_LIMIT; i++) {
+    tensors_info->info[index].dimension[i] =
+        (tensors_info->is_extended ? dimension[i] : 1);
   }
 
   G_UNLOCK_UNLESS_NOLOCK (*tensors_info);
@@ -551,6 +550,10 @@ ml_tensors_info_get_tensor_dimension (ml_tensors_info_h info,
     dimension[i] = tensors_info->info[index].dimension[i];
   }
 
+  /* Fill remained dim (default value 1) */
+  for (i = valid_rank; i < ML_TENSOR_RANK_LIMIT; i++)
+    dimension[i] = 1;
+
   G_UNLOCK_UNLESS_NOLOCK (*tensors_info);
   return ML_ERROR_NONE;
 }