This is an automated email from the ASF dual-hosted git repository.

alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new b2daddd  [tools] fix warning on FlagsCategory::ARRAY_SIZE
b2daddd is described below

commit b2daddda9422dacb457b0afcf2e25c4804cb0f54
Author: Alexey Serbin <[email protected]>
AuthorDate: Wed Mar 11 16:50:26 2020 -0700

    [tools] fix warning on FlagsCategory::ARRAY_SIZE
    
    Introducing an extra utility element ARRAY_SIZE into the FlagsCategory
    enumeration lead to compilation warning about unhandled enumeration value
    in switch statements:
    
      Building CXX object src/kudu/tools/CMakeFiles/ksck.dir/ksck.cc.o
      ../../src/kudu/tools/ksck.cc: In function ‘const char* 
kudu::tools::FlagsCategoryToString(kudu::tools::FlagsCategory)’:
      ../../src/kudu/tools/ksck.cc:216:10: warning: enumeration value 
‘ARRAY_SIZE’ not handled in switch [-Wswitch]
    
    I think using FlagsCategory::MAX+1 instead of FlagsCategory::ARRAY_SIZE
    is better than adding some special handling for ephemeral utility value
    in switch statements.
    
    This is a follow-up to a9afbce14454f9b03b9cc5a699a09f4f9935da58.
    
    Change-Id: I629373583ecd010ff6e2e2a1362e5977d3ae191e
    Reviewed-on: http://gerrit.cloudera.org:8080/15413
    Reviewed-by: Andrew Wong <[email protected]>
    Tested-by: Kudu Jenkins
---
 src/kudu/tools/ksck-test.cc | 4 ++--
 src/kudu/tools/ksck.cc      | 2 +-
 src/kudu/tools/ksck.h       | 5 ++---
 3 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/kudu/tools/ksck-test.cc b/src/kudu/tools/ksck-test.cc
index 45cfa3f..db4861a 100644
--- a/src/kudu/tools/ksck-test.cc
+++ b/src/kudu/tools/ksck-test.cc
@@ -93,7 +93,7 @@ class MockKsckMaster : public KsckMaster {
     uuid_ = uuid;
     version_ = "mock-version";
     if (is_get_flags_available_) {
-      for (size_t cat = FlagsCategory::MIN; cat < FlagsCategory::ARRAY_SIZE; 
++cat) {
+      for (size_t cat = FlagsCategory::MIN; cat <= FlagsCategory::MAX; ++cat) {
         flags_by_category_[cat].flags.emplace();
       }
     }
@@ -149,7 +149,7 @@ class MockKsckTabletServer : public KsckTabletServer {
         is_get_flags_available_(is_get_flags_available) {
     version_ = "mock-version";
     if (is_get_flags_available_) {
-      for (size_t cat = FlagsCategory::MIN; cat < FlagsCategory::ARRAY_SIZE; 
++cat) {
+      for (size_t cat = FlagsCategory::MIN; cat <= FlagsCategory::MAX; ++cat) {
         flags_by_category_[cat].flags.emplace();
       }
     }
diff --git a/src/kudu/tools/ksck.cc b/src/kudu/tools/ksck.cc
index 310007d..31643ad 100644
--- a/src/kudu/tools/ksck.cc
+++ b/src/kudu/tools/ksck.cc
@@ -191,7 +191,7 @@ std::ostream& operator<<(std::ostream& lhs, KsckFetchState 
state) {
 
 const FlagsFetchFilter& GetFlagsCategoryFilter(FlagsCategory category) {
   // NOTE: using double braces for std::array aggregate initialization.
-  static const std::array<FlagsFetchFilter, FlagsCategory::ARRAY_SIZE> 
kFilters { {
+  static const std::array<FlagsFetchFilter, FlagsCategory::MAX + 1> kFilters { 
{
     {
       // FlagsCategory::TIME_SOURCE
       { "time_source", "builtin_ntp_servers", },
diff --git a/src/kudu/tools/ksck.h b/src/kudu/tools/ksck.h
index 5dee873..aa95d0a 100644
--- a/src/kudu/tools/ksck.h
+++ b/src/kudu/tools/ksck.h
@@ -186,8 +186,7 @@ enum FlagsCategory {
   // Utility members used for range-related expressions.
   // NOTE: update the MAX member upon updates
   MIN = 0,
-  MAX = UNUSUAL,
-  ARRAY_SIZE = MAX + 1,
+  MAX = UNUSUAL
 };
 
 // Information on flags fetched using GetFlags() RPC. Consists of the status of
@@ -199,7 +198,7 @@ struct FetchedFlags {
 };
 
 // Flags retrieved using GetFlags(), indexed by FlagsCategory.
-typedef std::array<FetchedFlags, FlagsCategory::ARRAY_SIZE> 
FetchedFlagsByCategory;
+typedef std::array<FetchedFlags, FlagsCategory::MAX + 1> 
FetchedFlagsByCategory;
 
 // Structure to represent a filter to build appropriate request for GetFlags()
 // RPC.

Reply via email to