"/tmp",
};
- for (int i = 0; i < sizeof(candidates) / sizeof(*candidates); i++) {
+ for (int i = 0; i < ARRAYSIZE(candidates); i++) {
const char *d = candidates[i];
if (!d) continue; // Empty env var
_START_GOOGLE_NAMESPACE_
-// There is a better way, but this is good enough in this file.
-#define NAIVE_ARRAYSIZE(a) (sizeof(a) / sizeof(*(a)))
-
namespace {
// We'll install the failure signal handler for these signals. We could
void DumpSignalInfo(int signal_number, siginfo_t *siginfo) {
// Get the signal name.
const char* signal_name = NULL;
- for (int i = 0; i < NAIVE_ARRAYSIZE(kFailureSignals); ++i) {
+ for (int i = 0; i < ARRAYSIZE(kFailureSignals); ++i) {
if (signal_number == kFailureSignals[i].number) {
signal_name = kFailureSignals[i].name;
}
// Get the stack traces.
void *stack[32];
// +1 to exclude this function.
- const int depth = GetStackTrace(stack, NAIVE_ARRAYSIZE(stack), 1);
+ const int depth = GetStackTrace(stack, ARRAYSIZE(stack), 1);
DumpSignalInfo(signal_number, signal_info);
// Dump the stack traces.
for (int i = 0; i < depth; ++i) {
sig_action.sa_flags |= SA_SIGINFO;
sig_action.sa_sigaction = &FailureSignalHandler;
- for (int i = 0; i < NAIVE_ARRAYSIZE(kFailureSignals); ++i) {
+ for (int i = 0; i < ARRAYSIZE(kFailureSignals); ++i) {
CHECK_ERR(sigaction(kFailureSignals[i].number, &sig_action, NULL));
}
}
static void DumpStackTrace(int skip_count, DebugWriter *writerfn, void *arg) {
// Print stack trace
void* stack[32];
- int depth = GetStackTrace(stack, sizeof(stack)/sizeof(*stack), skip_count+1);
+ int depth = GetStackTrace(stack, ARRAYSIZE(stack), skip_count+1);
for (int i = 0; i < depth; i++) {
#if defined(HAVE_SYMBOLIZE)
if (FLAGS_symbolize_stacktrace) {