Resolve DEBUG compilation issues

Use NDEBUG conditional instead of DEBUG.

Do not call static functions in extern inline ones.
    Vector.c:67:11: error: static function 'Vector_isConsistent' is used in an inline function with external linkage [-Werror,-Wstatic-in-inline]
This commit is contained in:
Christian Göttsche 2020-09-17 22:27:33 +02:00 committed by cgzones
parent b7f63292e5
commit d69585b82a
8 changed files with 32 additions and 61 deletions

4
CRT.c
View File

@ -631,13 +631,13 @@ void CRT_init(int delay, int colorScheme, bool allowUnicode) {
define_key(sequence, KEY_ALT('A' + (c - 'a')));
}
}
#ifndef DEBUG
struct sigaction act;
sigemptyset (&act.sa_mask);
act.sa_flags = (int)SA_RESETHAND;
act.sa_handler = CRT_handleSIGSEGV;
sigaction (SIGSEGV, &act, &old_sigsegv_handler);
#endif
signal(SIGTERM, CRT_handleSIGTERM);
signal(SIGQUIT, CRT_handleSIGTERM);
use_default_colors();

View File

@ -12,7 +12,7 @@ in the source distribution for its full text.
#include <assert.h>
#ifdef DEBUG
#ifndef NDEBUG
static bool Hashtable_isConsistent(Hashtable* this) {
int items = 0;
@ -39,7 +39,7 @@ int Hashtable_count(Hashtable* this) {
return items;
}
#endif
#endif /* NDEBUG */
static HashtableItem* HashtableItem_new(unsigned int key, void* value) {
HashtableItem* this;
@ -124,7 +124,7 @@ void* Hashtable_remove(Hashtable* this, unsigned int key) {
return NULL;
}
inline void* Hashtable_get(Hashtable* this, unsigned int key) {
void* Hashtable_get(Hashtable* this, unsigned int key) {
unsigned int index = key % this->size;
HashtableItem* bucketPtr = this->buckets[index];
while (true) {

View File

@ -26,11 +26,11 @@ struct Hashtable_ {
bool owner;
};
#ifdef DEBUG
#ifndef NDEBUG
int Hashtable_count(Hashtable* this);
#endif
#endif /* NDEBUG */
Hashtable* Hashtable_new(int size, bool owner);

View File

@ -12,7 +12,7 @@ ObjectClass Object_class = {
.extends = NULL
};
#ifdef DEBUG
#ifndef NDEBUG
bool Object_isA(Object* o, const ObjectClass* klass) {
if (!o)
@ -26,4 +26,4 @@ bool Object_isA(Object* o, const ObjectClass* klass) {
return false;
}
#endif
#endif /* NDEBUG */

View File

@ -48,10 +48,10 @@ typedef union {
extern ObjectClass Object_class;
#ifdef DEBUG
#ifndef NDEBUG
bool Object_isA(Object* o, const ObjectClass* klass);
#endif
#endif /* NDEBUG */
#endif

View File

@ -38,9 +38,9 @@ void Vector_delete(Vector* this) {
free(this);
}
#ifdef DEBUG
#ifndef NDEBUG
static inline bool Vector_isConsistent(Vector* this) {
static bool Vector_isConsistent(Vector* this) {
assert(this->items <= this->arraySize);
if (this->owner) {
for (int i = 0; i < this->items; i++)
@ -62,7 +62,18 @@ int Vector_count(Vector* this) {
return items;
}
#endif
Object* Vector_get(Vector* this, int idx) {
assert(idx < this->items);
assert(Vector_isConsistent(this));
return this->array[idx];
}
int Vector_size(Vector* this) {
assert(Vector_isConsistent(this));
return this->items;
}
#endif /* NDEBUG */
void Vector_prune(Vector* this) {
assert(Vector_isConsistent(this));
@ -251,33 +262,6 @@ void Vector_set(Vector* this, int idx, void* data_) {
assert(Vector_isConsistent(this));
}
#ifdef DEBUG
inline Object* Vector_get(Vector* this, int idx) {
assert(idx < this->items);
assert(Vector_isConsistent(this));
return this->array[idx];
}
#else
// In this case, Vector_get is defined as a macro in vector.h
#endif
#ifdef DEBUG
inline int Vector_size(Vector* this) {
assert(Vector_isConsistent(this));
return this->items;
}
#else
// In this case, Vector_size is defined as a macro in vector.h
#endif
/*
static void Vector_merge(Vector* this, Vector* v2) {
@ -303,7 +287,7 @@ void Vector_add(Vector* this, void* data_) {
assert(Vector_isConsistent(this));
}
inline int Vector_indexOf(Vector* this, void* search_, Object_Compare compare) {
int Vector_indexOf(Vector* this, void* search_, Object_Compare compare) {
Object* search = search_;
assert(Object_isA((Object*)search, this->type));
assert(compare);

View File

@ -28,12 +28,6 @@ Vector* Vector_new(ObjectClass* type, bool owner, int size);
void Vector_delete(Vector* this);
#ifdef DEBUG
int Vector_count(Vector* this);
#endif
void Vector_prune(Vector* this);
void Vector_quickSort(Vector* this);
@ -52,25 +46,18 @@ void Vector_moveDown(Vector* this, int idx);
void Vector_set(Vector* this, int idx, void* data_);
#ifdef DEBUG
#ifndef NDEBUG
Object* Vector_get(Vector* this, int idx);
int Vector_size(Vector* this);
int Vector_count(Vector* this);
#else
#else /* NDEBUG */
#define Vector_get(v_, idx_) ((v_)->array[idx_])
#endif
#ifdef DEBUG
int Vector_size(Vector* this);
#else
#define Vector_size(v_) ((v_)->items)
#endif
#endif /* NDEBUG */
void Vector_add(Vector* this, void* data_);

View File

@ -670,7 +670,7 @@ static int handleNetlinkMsg(struct nl_msg *nlmsg, void *linuxProcess) {
if ((nlattr = nlattrs[TASKSTATS_TYPE_AGGR_PID]) || (nlattr = nlattrs[TASKSTATS_TYPE_NULL])) {
stats = nla_data(nla_next(nla_data(nlattr), &rem));
assert(lp->super.pid == stats->ac_pid);
assert(lp->super.pid == (pid_t)stats->ac_pid);
timeDelta = (stats->ac_etime*1000 - lp->delay_read_time);
#define BOUNDS(x) isnan(x) ? 0.0 : (x > 100) ? 100.0 : x;
#define DELTAPERC(x,y) BOUNDS((float) (x - y) / timeDelta * 100);