From c550377c89c53ba99b3ce40ac27ba47e4cc2c692 Mon Sep 17 00:00:00 2001 From: coincoin57660 Date: Fri, 21 Aug 2026 14:38:05 +0200 Subject: [PATCH] Fix NaN and infinity detection --- jim2.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/jim2.h b/jim2.h index a314900..a5f24c1 100644 --- a/jim2.h +++ b/jim2.h @@ -210,8 +210,10 @@ void jim_integer(Jim *jim, long long int x) static int is_nan_or_inf(double x) { - unsigned long long int mask = (1ULL << 11ULL) - 1ULL; - return (((*(unsigned long long int*) &x) >> 52ULL) & mask) == mask; + unsigned long long bits; + memcpy(&bits, &x, sizeof(bits)); + + return ((bits >> 52ULL) & 0x7ffULL) == 0x7ffULL; } void jim_float(Jim *jim, double x, int precision)