Refactoring: replace a bunch of static array size computation or hardcoded constant

with a template function 'arraysize(static_array)', defined in Utils.h.

llvm-svn: 139444
This commit is contained in:
Johnny Chen 2011-09-10 00:48:33 +00:00
parent 964d758d17
commit 7c575b3b3a
9 changed files with 41 additions and 26 deletions

View File

@ -0,0 +1,19 @@
//===-- Utils.h -------------------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef utility_Utils_h_
#define utility_Utils_h_
namespace lldb_private {
template <typename T, unsigned size>
inline unsigned arraysize(T (&v)[size]) { return size; }
} // namespace lldb_private
#endif // utility_Utils

View File

@ -1298,6 +1298,7 @@
B23DD24F12EDFAC1000C3894 /* ARMUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARMUtils.h; path = Utility/ARMUtils.h; sourceTree = "<group>"; }; B23DD24F12EDFAC1000C3894 /* ARMUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARMUtils.h; path = Utility/ARMUtils.h; sourceTree = "<group>"; };
B2462246141AD37D00F3D409 /* OptionGroupWatchpoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OptionGroupWatchpoint.cpp; path = source/Interpreter/OptionGroupWatchpoint.cpp; sourceTree = "<group>"; }; B2462246141AD37D00F3D409 /* OptionGroupWatchpoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OptionGroupWatchpoint.cpp; path = source/Interpreter/OptionGroupWatchpoint.cpp; sourceTree = "<group>"; };
B2462248141AD39B00F3D409 /* OptionGroupWatchpoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OptionGroupWatchpoint.h; path = include/lldb/Interpreter/OptionGroupWatchpoint.h; sourceTree = "<group>"; }; B2462248141AD39B00F3D409 /* OptionGroupWatchpoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OptionGroupWatchpoint.h; path = include/lldb/Interpreter/OptionGroupWatchpoint.h; sourceTree = "<group>"; };
B2462249141AE62200F3D409 /* Utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = include/lldb/Utility/Utils.h; sourceTree = "<group>"; };
B27318411416AC12006039C8 /* WatchpointLocationList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WatchpointLocationList.cpp; path = source/Breakpoint/WatchpointLocationList.cpp; sourceTree = "<group>"; }; B27318411416AC12006039C8 /* WatchpointLocationList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WatchpointLocationList.cpp; path = source/Breakpoint/WatchpointLocationList.cpp; sourceTree = "<group>"; };
B27318431416AC43006039C8 /* WatchpointLocationList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WatchpointLocationList.h; path = include/lldb/Breakpoint/WatchpointLocationList.h; sourceTree = "<group>"; }; B27318431416AC43006039C8 /* WatchpointLocationList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WatchpointLocationList.h; path = include/lldb/Breakpoint/WatchpointLocationList.h; sourceTree = "<group>"; };
B28058A0139988B0002D96D0 /* InferiorCallPOSIX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InferiorCallPOSIX.cpp; path = Utility/InferiorCallPOSIX.cpp; sourceTree = "<group>"; }; B28058A0139988B0002D96D0 /* InferiorCallPOSIX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InferiorCallPOSIX.cpp; path = Utility/InferiorCallPOSIX.cpp; sourceTree = "<group>"; };
@ -1841,6 +1842,7 @@
2682F16A115EDA0D00CCFF99 /* PseudoTerminal.cpp */, 2682F16A115EDA0D00CCFF99 /* PseudoTerminal.cpp */,
94031A9F13CF5B3D00DCFF3C /* PriorityPointerPair.h */, 94031A9F13CF5B3D00DCFF3C /* PriorityPointerPair.h */,
94EBAC8313D9EE26009BA64E /* PythonPointer.h */, 94EBAC8313D9EE26009BA64E /* PythonPointer.h */,
B2462249141AE62200F3D409 /* Utils.h */,
); );
name = Utility; name = Utility;
sourceTree = "<group>"; sourceTree = "<group>";

View File

@ -13,6 +13,7 @@
// C++ Includes // C++ Includes
// Other libraries and framework includes // Other libraries and framework includes
// Project includes // Project includes
#include "lldb/Utility/Utils.h"
using namespace lldb; using namespace lldb;
using namespace lldb_private; using namespace lldb_private;
@ -29,15 +30,13 @@ OptionGroupArchitecture::~OptionGroupArchitecture ()
static OptionDefinition static OptionDefinition
g_option_table[] = g_option_table[] =
{ {
{ LLDB_OPT_SET_1 , false, "arch" , 'a', required_argument, NULL, 0, eArgTypeArchitecture , "Specify the architecture for the target."}, { LLDB_OPT_SET_1 , false, "arch" , 'a', required_argument, NULL, 0, eArgTypeArchitecture , "Specify the architecture for the target."},
}; };
const uint32_t k_num_file_options = sizeof(g_option_table)/sizeof(OptionDefinition);
uint32_t uint32_t
OptionGroupArchitecture::GetNumDefinitions () OptionGroupArchitecture::GetNumDefinitions ()
{ {
return k_num_file_options; return arraysize(g_option_table);
} }
const OptionDefinition * const OptionDefinition *

View File

@ -13,6 +13,7 @@
// C++ Includes // C++ Includes
// Other libraries and framework includes // Other libraries and framework includes
// Project includes // Project includes
#include "lldb/Utility/Utils.h"
using namespace lldb; using namespace lldb;
using namespace lldb_private; using namespace lldb_private;
@ -35,14 +36,13 @@ OptionGroupFormat::~OptionGroupFormat ()
static OptionDefinition static OptionDefinition
g_option_table[] = g_option_table[] =
{ {
{ LLDB_OPT_SET_1 , false, "format", 'f', required_argument, NULL, 0, eArgTypeFormat , "Specify a format to be used for display."}, { LLDB_OPT_SET_1 , false, "format", 'f', required_argument, NULL, 0, eArgTypeFormat , "Specify a format to be used for display."},
}; };
const uint32_t k_num_file_options = sizeof(g_option_table)/sizeof(OptionDefinition);
uint32_t uint32_t
OptionGroupFormat::GetNumDefinitions () OptionGroupFormat::GetNumDefinitions ()
{ {
return k_num_file_options; return arraysize(g_option_table);
} }
const OptionDefinition * const OptionDefinition *

View File

@ -13,6 +13,7 @@
// C++ Includes // C++ Includes
// Other libraries and framework includes // Other libraries and framework includes
// Project includes // Project includes
#include "lldb/Utility/Utils.h"
using namespace lldb; using namespace lldb;
using namespace lldb_private; using namespace lldb_private;
@ -30,16 +31,14 @@ OptionGroupOutputFile::~OptionGroupOutputFile ()
static OptionDefinition static OptionDefinition
g_option_table[] = g_option_table[] =
{ {
{ LLDB_OPT_SET_1 , false, "outfile", 'o', required_argument, NULL, 0, eArgTypePath , "Specify a path for capturing command output."}, { LLDB_OPT_SET_1 , false, "outfile", 'o', required_argument, NULL, 0, eArgTypePath , "Specify a path for capturing command output."},
{ LLDB_OPT_SET_1 , false, "append-outfile" , 'A', no_argument, NULL, 0, eArgTypeNone , "Append to the the file specified with '--outfile <path>'."}, { LLDB_OPT_SET_1 , false, "append-outfile" , 'A', no_argument, NULL, 0, eArgTypeNone , "Append to the the file specified with '--outfile <path>'."},
}; };
const uint32_t k_num_file_options = sizeof(g_option_table)/sizeof(OptionDefinition);
uint32_t uint32_t
OptionGroupOutputFile::GetNumDefinitions () OptionGroupOutputFile::GetNumDefinitions ()
{ {
return k_num_file_options; return arraysize(g_option_table);
} }
const OptionDefinition * const OptionDefinition *

View File

@ -15,6 +15,7 @@
// Project includes // Project includes
#include "lldb/Interpreter/CommandInterpreter.h" #include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Target/Platform.h" #include "lldb/Target/Platform.h"
#include "lldb/Utility/Utils.h"
using namespace lldb; using namespace lldb;
using namespace lldb_private; using namespace lldb_private;
@ -67,8 +68,6 @@ g_option_table[] =
{ LLDB_OPT_SET_ALL, false, "sysroot" , 's', required_argument, NULL, 0, eArgTypeFilename, "Specify the SDK root directory that contains a root of all remote system files." } { LLDB_OPT_SET_ALL, false, "sysroot" , 's', required_argument, NULL, 0, eArgTypeFilename, "Specify the SDK root directory that contains a root of all remote system files." }
}; };
static const uint32_t k_option_table_size = sizeof(g_option_table)/sizeof (OptionDefinition);
const OptionDefinition* const OptionDefinition*
OptionGroupPlatform::GetDefinitions () OptionGroupPlatform::GetDefinitions ()
{ {
@ -81,8 +80,8 @@ uint32_t
OptionGroupPlatform::GetNumDefinitions () OptionGroupPlatform::GetNumDefinitions ()
{ {
if (m_include_platform_option) if (m_include_platform_option)
return k_option_table_size; return arraysize(g_option_table);
return k_option_table_size - 1; return arraysize(g_option_table) - 1;
} }

View File

@ -13,6 +13,7 @@
// C++ Includes // C++ Includes
// Other libraries and framework includes // Other libraries and framework includes
// Project includes // Project includes
#include "lldb/Utility/Utils.h"
using namespace lldb; using namespace lldb;
using namespace lldb_private; using namespace lldb_private;
@ -29,15 +30,13 @@ OptionGroupUUID::~OptionGroupUUID ()
static OptionDefinition static OptionDefinition
g_option_table[] = g_option_table[] =
{ {
{ LLDB_OPT_SET_1 , false, "uuid", 'u', required_argument, NULL, 0, eArgTypeNone, "A module UUID value."}, { LLDB_OPT_SET_1 , false, "uuid", 'u', required_argument, NULL, 0, eArgTypeNone, "A module UUID value."},
}; };
const uint32_t k_num_file_options = sizeof(g_option_table)/sizeof(OptionDefinition);
uint32_t uint32_t
OptionGroupUUID::GetNumDefinitions () OptionGroupUUID::GetNumDefinitions ()
{ {
return k_num_file_options; return arraysize(g_option_table);
} }
const OptionDefinition * const OptionDefinition *

View File

@ -15,6 +15,7 @@
// Project includes // Project includes
#include "lldb/Target/Target.h" #include "lldb/Target/Target.h"
#include "lldb/Interpreter/CommandInterpreter.h" #include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Utility/Utils.h"
using namespace lldb; using namespace lldb;
using namespace lldb_private; using namespace lldb_private;
@ -45,12 +46,10 @@ g_option_table[] =
{ 0, false, NULL, 0, 0, NULL, NULL, eArgTypeNone, NULL } { 0, false, NULL, 0, 0, NULL, NULL, eArgTypeNone, NULL }
}; };
const uint32_t k_num_file_options = sizeof(g_option_table)/sizeof(OptionDefinition);
uint32_t uint32_t
OptionGroupValueObjectDisplay::GetNumDefinitions () OptionGroupValueObjectDisplay::GetNumDefinitions ()
{ {
return k_num_file_options; return arraysize(g_option_table);
} }
const OptionDefinition * const OptionDefinition *

View File

@ -15,6 +15,7 @@
// Project includes // Project includes
#include "lldb/lldb-enumerations.h" #include "lldb/lldb-enumerations.h"
#include "lldb/Interpreter/Args.h" #include "lldb/Interpreter/Args.h"
#include "lldb/Utility/Utils.h"
using namespace lldb; using namespace lldb;
using namespace lldb_private; using namespace lldb_private;
@ -84,7 +85,5 @@ OptionGroupWatchpoint::GetDefinitions ()
uint32_t uint32_t
OptionGroupWatchpoint::GetNumDefinitions () OptionGroupWatchpoint::GetNumDefinitions ()
{ {
return 1; return arraysize(g_option_table);
} }