diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2020-09-17 22:27:33 +0200 |
---|---|---|
committer | cgzones <cgzones@googlemail.com> | 2020-10-03 19:04:27 +0200 |
commit | d69585b82abfdaede9e8c358982a4953c432e8d2 (patch) | |
tree | 7b087349e21cd51dab789bc44da73272d336937c | |
parent | b7f63292e5394ca7eee2dc5d14d0d1244db61c17 (diff) |
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]
-rw-r--r-- | CRT.c | 4 | ||||
-rw-r--r-- | Hashtable.c | 6 | ||||
-rw-r--r-- | Hashtable.h | 4 | ||||
-rw-r--r-- | Object.c | 4 | ||||
-rw-r--r-- | Object.h | 4 | ||||
-rw-r--r-- | Vector.c | 46 | ||||
-rw-r--r-- | Vector.h | 23 | ||||
-rw-r--r-- | linux/LinuxProcessList.c | 2 |
8 files changed, 32 insertions, 61 deletions
@@ -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(); diff --git a/Hashtable.c b/Hashtable.c index bb9517ad..f8815f93 100644 --- a/Hashtable.c +++ b/Hashtable.c @@ -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) { diff --git a/Hashtable.h b/Hashtable.h index 144f01cf..aacbb340 100644 --- a/Hashtable.h +++ b/Hashtable.h @@ -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); @@ -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 */ @@ -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 @@ -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); @@ -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); - -#else - -#define Vector_get(v_, idx_) ((v_)->array[idx_]) - -#endif - -#ifdef DEBUG - int Vector_size(Vector* this); +int Vector_count(Vector* this); -#else +#else /* NDEBUG */ +#define Vector_get(v_, idx_) ((v_)->array[idx_]) #define Vector_size(v_) ((v_)->items) -#endif +#endif /* NDEBUG */ void Vector_add(Vector* this, void* data_); diff --git a/linux/LinuxProcessList.c b/linux/LinuxProcessList.c index 1df7b32b..dcef14cf 100644 --- a/linux/LinuxProcessList.c +++ b/linux/LinuxProcessList.c @@ -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); |