| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Also fix some comments of isNaN() and isPositive() functions.
No code changes.
|
| |
|
|
|
|
|
|
|
| |
The main reason I do this is to document the minimum compiler version
(GCC 3.3) for the attribute. But it may work with other compilers, too.
Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
|
|\
| |
| |
| | |
into BenBE-style-header-consistency
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The standard isnan() function is defined to never throw FP exceptions
even when the argument is a "signaling" NaN. This makes isnan() more
expensive than (x != x) expression unless the compiler flag
'-fno-signaling-nans' is given.
Introduce functions isNaN(), isNonnegative(), isPositive(),
sumPositiveValues() and compareRealNumbers(), and replace isnan() in
htop's codebase with the new functions. These functions utilize
isgreater() and isgreaterequal() comparisons, which do not throw FP
exceptions on "quiet" NaNs, which htop uses extensively.
With isnan() removed, there is no need to suppress the warning
'-Wno-c11-extensions' in FreeBSD. Remove the code from 'configure.ac'.
Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
|
|
|
|
| |
Supported by GCC since version 10.
|
| |
|
|
|
|
| |
duplication.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Rename internal identifier from TTY_NR to just TTY
* Unify column header on platforms
* Use devname(3) on BSD derivate to show the actual terminal,
simplifies current FreeBSD implementation.
* Use 'unsigned long int' as id type, to fit dev_t on Linux.
Only on Solaris the terminal path is not yet resolved.
|
|
|
|
|
|
|
| |
This prefers the `#if defined()` syntax over the `#ifdef` variant
whenever there's also a `#elif defined()` clause, thus making the
multiple branching structure more obvious and the overall use
more consistent.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]
|
|
|
|
| |
Information as seen by IWYU 0.12 + clang 9 on Linux
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Use internal macros for compatibility with non GNUC compilers.
|
|
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.
|