Christian Göttsche
e6d536dd3f
Add compiler hints on memory allocating utility functions
2021-01-11 21:08:58 +01:00
Christian Göttsche
397b5c4bd0
Introduce spaceship comparison for Processes
...
If currently two unsigned values are compared via `a - b`, in the case b
is actually bigger than a, the result will not be an negative number (as
-1 is expected) but a huge positive number as the subtraction is an
unsigned subtraction.
Avoid over-/underflow affected operations; use comparisons.
Modern compilers will generate sane code, like:
xor eax, eax
cmp rdi, rsi
seta al
sbb eax, 0
ret
2020-11-15 18:25:21 +01:00
Christian Göttsche
f8208f2173
Drop tabs in source indentions
2020-10-20 21:43:36 +02:00
Christian Göttsche
0db398d4c3
Allow low and high value of CLAMP to be equal
...
Can for example occur in RichString_setAttrn(), when pausing and
resuming process tracing:
htop: RichString.c:56: void RichString_setAttrn(RichString *, int, int, int): Assertion `(0) < (this->chlen - 1)' failed.
./htop(backtrace+0x5b)[0x45d9eb]
./htop(CRT_handleSIGSEGV+0x189)[0x4ebab9]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x14140)[0x7fd249d35140]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x141)[0x7fd249b6ac41]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x123)[0x7fd249b54537]
/lib/x86_64-linux-gnu/libc.so.6(+0x2540f)[0x7fd249b5440f]
/lib/x86_64-linux-gnu/libc.so.6(+0x345c2)[0x7fd249b635c2]
./htop(RichString_setAttrn+0x234)[0x526de4]
./htop(RichString_setAttr+0x50)[0x5275c0]
./htop(Panel_draw+0x17b6)[0x514c26]
./htop(InfoScreen_run+0x305)[0x4fe7a5]
./htop[0x4d59d8]
./htop[0x5029cf]
./htop(ScreenManager_run+0x69f)[0x52a82f]
./htop(main+0x704)[0x4f8774]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea)[0x7fd249b55cca]
./htop(_start+0x2a)[0x4268ea]
2020-10-19 14:13:58 +02:00
Benny Baumann
0f5262917f
Make all required includes explicit
...
Information as seen by IWYU 0.12 + clang 9 on Linux
2020-10-18 20:09:05 +02:00
Christian Göttsche
db159e7580
Enclose CLAMP macro arguments in parentheses
2020-10-06 11:46:41 +02:00
Christian Göttsche
db472075a4
Enable -Wcast-qual compiler warning
2020-10-06 11:20:07 +02:00
Christian Göttsche
49bb1b57f8
Assert that low value is lower than the high value in CLAMP
2020-10-05 12:47:56 +02:00
Christian Göttsche
42946ec113
Introduce ARRAYSIZE
2020-10-03 19:05:40 +02:00
Christian Göttsche
7107d1db0b
Refactor __attribute__ usage
...
Use internal macros for compatibility with non GNUC compilers.
2020-09-18 12:28:40 +02:00
Nathan Scott
c5808c56db
Consolidate repeated macro definitions into one header
...
The MIN, MAX, CLAMP, MINIMUM, and MAXIMUM macros appear
throughout the codebase with many re-definitions. Make
a single copy of each in a common header file, and use
the BSD variants of MINIMUM/MAXIMUM due to conflicts in
the system <sys/param.h> headers.
2020-09-09 16:56:04 +10:00