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.