diff options
author | Andrew Kaster <andrewdkaster@gmail.com> | 2022-04-09 14:31:54 -0600 |
---|---|---|
committer | Brian Gianforcaro <b.gianfo@gmail.com> | 2022-04-23 10:43:32 -0700 |
commit | 83603d68d2e6fe51673c9857b459138df761327a (patch) | |
tree | 6fb3dd0acf353031b6d8719d3bac6250593a01ea /AK | |
parent | bc7c8879c5d3230c0caf3ea922446e27c6f77cbc (diff) | |
download | serenity-83603d68d2e6fe51673c9857b459138df761327a.zip |
AK: Make sure we don't include Math.h or math.h from KERNEL
Diffstat (limited to 'AK')
-rw-r--r-- | AK/FixedPoint.h | 8 | ||||
-rw-r--r-- | AK/IntegralMath.h | 2 | ||||
-rw-r--r-- | AK/Math.h | 4 | ||||
-rw-r--r-- | AK/PrintfImplementation.h | 11 |
4 files changed, 19 insertions, 6 deletions
diff --git a/AK/FixedPoint.h b/AK/FixedPoint.h index aad0cba7e0..00ff9c34d6 100644 --- a/AK/FixedPoint.h +++ b/AK/FixedPoint.h @@ -9,10 +9,13 @@ #include <AK/Concepts.h> #include <AK/Format.h> #include <AK/IntegralMath.h> -#include <AK/Math.h> #include <AK/NumericLimits.h> #include <AK/Types.h> +#ifndef KERNEL +# include <AK/Math.h> +#endif + namespace AK { // FIXME: this always uses round to nearest break-tie to even @@ -45,11 +48,14 @@ public: { } +#ifndef KERNEL template<FloatingPoint F> explicit ALWAYS_INLINE operator F() const { return (F)m_value * pow<F>(0.5, precision); } +#endif + template<Integral I> explicit constexpr operator I() const { diff --git a/AK/IntegralMath.h b/AK/IntegralMath.h index 0a23debb51..916d9b70cc 100644 --- a/AK/IntegralMath.h +++ b/AK/IntegralMath.h @@ -10,8 +10,6 @@ #include <AK/Concepts.h> #include <AK/Types.h> -#include <AK/Format.h> - namespace AK { template<Integral T> @@ -11,6 +11,10 @@ #include <AK/StdLibExtraDetails.h> #include <AK/Types.h> +#ifdef KERNEL +# error "Including AK/Math.h from the Kernel is never correct! Floating point is disabled." +#endif + namespace AK { template<FloatingPoint T> diff --git a/AK/PrintfImplementation.h b/AK/PrintfImplementation.h index fc46f472d5..f9a46ce10f 100644 --- a/AK/PrintfImplementation.h +++ b/AK/PrintfImplementation.h @@ -9,10 +9,13 @@ #include <AK/Format.h> #include <AK/StdLibExtras.h> #include <AK/Types.h> -#include <math.h> #include <stdarg.h> #include <wchar.h> +#ifndef KERNEL +# include <math.h> +#endif + #ifdef __serenity__ extern "C" size_t strlen(char const*); #else @@ -159,7 +162,7 @@ ALWAYS_INLINE int print_decimal(PutChFunc putch, CharType*& bufptr, u64 number, return field_width; } - +#ifndef KERNEL template<typename PutChFunc, typename CharType> ALWAYS_INLINE int print_double(PutChFunc putch, CharType*& bufptr, double number, bool always_sign, bool left_pad, bool zero_pad, u32 field_width, u32 precision) { @@ -209,7 +212,7 @@ ALWAYS_INLINE int print_double(PutChFunc putch, CharType*& bufptr, double number return length; } - +#endif template<typename PutChFunc, typename CharType> ALWAYS_INLINE int print_octal_number(PutChFunc putch, CharType*& bufptr, u64 number, bool alternate_form, bool left_pad, bool zero_pad, u32 field_width, bool has_precision, u32 precision) { @@ -387,6 +390,7 @@ struct PrintfImpl { { return print_hex(m_putch, m_bufptr, NextArgument<u64>()(ap), false, false, state.left_pad, state.zero_pad, 16, false, 1); } +#ifndef KERNEL ALWAYS_INLINE int format_g(ModifierState const& state, ArgumentListRefT ap) const { return format_f(state, ap); @@ -395,6 +399,7 @@ struct PrintfImpl { { return print_double(m_putch, m_bufptr, NextArgument<double>()(ap), state.always_sign, state.left_pad, state.zero_pad, state.field_width, state.precision); } +#endif ALWAYS_INLINE int format_o(ModifierState const& state, ArgumentListRefT ap) const { return print_octal_number(m_putch, m_bufptr, NextArgument<u32>()(ap), state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); |