Fix comparison size_t with zero (#2710)
author오형석/동작제어Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Mon, 17 Sep 2018 02:02:58 +0000 (11:02 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Mon, 17 Sep 2018 02:02:58 +0000 (11:02 +0900)
Fix comparison size_t with zero (always true)
Compare before casting from int to size_t

Signed-off-by: Hyeongseok Oh <hseok82.oh@samsung.com>
runtimes/pure_arm_compute/src/internal/layers/SimpleEmbeddingLookup.cc

index 45eb207..089c783 100644 (file)
@@ -43,10 +43,10 @@ void SimpleEmbeddingLookup::run()
         const size_t row_bytes = values_info->total_size() / row_size;
         for (size_t i = 0; i < lookups_info->dimension(0); ++i)
         {
-          size_t idx = lookups_buf[i];
-          if (idx >= row_size || idx < 0)
+          if (lookups_buf[i] < 0 || lookups_buf[i] >= row_size)
             throw std::runtime_error("Embedding Lookup: index out of bounds.");
 
+          size_t idx = lookups_buf[i];
           size_t row_offset_by_idx = values_info->offset_element_in_bytes({0, idx});
           size_t row_offset_by_i = output_info->offset_element_in_bytes({0, i});
 
@@ -63,10 +63,10 @@ void SimpleEmbeddingLookup::run()
         const size_t row_bytes = values_info->total_size() / row_size;
         for (size_t i = 0; i < lookups_info->dimension(0); ++i)
         {
-          size_t idx = lookups_buf[i];
-          if (idx >= row_size || idx < 0)
+          if (lookups_buf[i] < 0 || lookups_buf[i] >= row_size)
             throw std::runtime_error("Embedding Lookup: index out of bounds.");
 
+          size_t idx = lookups_buf[i];
           size_t row_offset_by_idx = values_info->offset_element_in_bytes({0, 0, idx});
           size_t row_offset_by_i = output_info->offset_element_in_bytes({0, 0, i});
 
@@ -83,10 +83,10 @@ void SimpleEmbeddingLookup::run()
         const size_t row_bytes = values_info->total_size() / row_size;
         for (size_t i = 0; i < lookups_info->dimension(0); ++i)
         {
-          size_t idx = lookups_buf[i];
-          if (idx >= row_size || idx < 0)
+          if (lookups_buf[i] < 0 || lookups_buf[i] >= row_size)
             throw std::runtime_error("Embedding Lookup: index out of bounds.");
 
+          size_t idx = lookups_buf[i];
           size_t row_offset_by_idx = values_info->offset_element_in_bytes({0, 0, 0, idx});
           size_t row_offset_by_i = output_info->offset_element_in_bytes({0, 0, 0, i});