diff options
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/include/freetype/internal/compiler-macros.h')
-rw-r--r-- | Build/source/libs/freetype2/freetype-src/include/freetype/internal/compiler-macros.h | 152 |
1 files changed, 67 insertions, 85 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/compiler-macros.h b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/compiler-macros.h index d8b61b3dc9f..97c18d3a214 100644 --- a/Build/source/libs/freetype2/freetype-src/include/freetype/internal/compiler-macros.h +++ b/Build/source/libs/freetype2/freetype-src/include/freetype/internal/compiler-macros.h @@ -4,7 +4,7 @@ * * Compiler-specific macro definitions used internally by FreeType. * - * Copyright (C) 2020-2021 by + * Copyright (C) 2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -71,18 +71,12 @@ FT_BEGIN_HEADER */ #define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT -#ifdef __UINTPTR_TYPE__ - /* - * GCC and Clang both provide a `__UINTPTR_TYPE__` that can be used to - * avoid a dependency on `stdint.h`. - */ -# define FT_UINT_TO_POINTER( x ) (void *)(__UINTPTR_TYPE__)(x) -#elif defined( _WIN64 ) +#ifdef _WIN64 /* only 64bit Windows uses the LLP64 data model, i.e., */ /* 32-bit integers, 64-bit pointers. */ -# define FT_UINT_TO_POINTER( x ) (void *)(unsigned __int64)(x) +#define FT_UINT_TO_POINTER( x ) (void *)(unsigned __int64)(x) #else -# define FT_UINT_TO_POINTER( x ) (void *)(unsigned long)(x) +#define FT_UINT_TO_POINTER( x ) (void *)(unsigned long)(x) #endif /* @@ -222,91 +216,79 @@ FT_BEGIN_HEADER #define FT_EXPORT_VAR( x ) FT_FUNCTION_DECLARATION( x ) #endif - /* - * When compiling FreeType as a DLL or DSO with hidden visibility, - * some systems/compilers need a special attribute in front OR after - * the return type of function declarations. - * - * Two macros are used within the FreeType source code to define - * exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. - * - * - `FT_EXPORT( return_type )` - * - * is used in a function declaration, as in - * - * ``` - * FT_EXPORT( FT_Error ) - * FT_Init_FreeType( FT_Library* alibrary ); - * ``` - * - * - `FT_EXPORT_DEF( return_type )` - * - * is used in a function definition, as in - * - * ``` - * FT_EXPORT_DEF( FT_Error ) - * FT_Init_FreeType( FT_Library* alibrary ) - * { - * ... some code ... - * return FT_Err_Ok; - * } - * ``` - * - * You can provide your own implementation of `FT_EXPORT` and - * `FT_EXPORT_DEF` here if you want. - * - * To export a variable, use `FT_EXPORT_VAR`. - */ + /* When compiling FreeType as a DLL or DSO with hidden visibility, */ + /* some systems/compilers need a special attribute in front OR after */ + /* the return type of function declarations. */ + /* */ + /* Two macros are used within the FreeType source code to define */ + /* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. */ + /* */ + /* - `FT_EXPORT( return_type )` */ + /* */ + /* is used in a function declaration, as in */ + /* */ + /* ``` */ + /* FT_EXPORT( FT_Error ) */ + /* FT_Init_FreeType( FT_Library* alibrary ); */ + /* ``` */ + /* */ + /* - `FT_EXPORT_DEF( return_type )` */ + /* */ + /* is used in a function definition, as in */ + /* */ + /* ``` */ + /* FT_EXPORT_DEF( FT_Error ) */ + /* FT_Init_FreeType( FT_Library* alibrary ) */ + /* { */ + /* ... some code ... */ + /* return FT_Err_Ok; */ + /* } */ + /* ``` */ + /* */ + /* You can provide your own implementation of `FT_EXPORT` and */ + /* `FT_EXPORT_DEF` here if you want. */ + /* */ + /* To export a variable, use `FT_EXPORT_VAR`. */ + /* */ /* See `freetype/config/compiler_macros.h` for the `FT_EXPORT` definition */ #define FT_EXPORT_DEF( x ) FT_FUNCTION_DEFINITION( x ) - /* - * The following macros are needed to compile the library with a - * C++ compiler and with 16bit compilers. - */ - - /* - * This is special. Within C++, you must specify `extern "C"` for - * functions which are used via function pointers, and you also - * must do that for structures which contain function pointers to - * assure C linkage -- it's not possible to have (local) anonymous - * functions which are accessed by (global) function pointers. - * - * - * FT_CALLBACK_DEF is used to _define_ a callback function, - * located in the same source code file as the structure that uses - * it. FT_COMPARE_DEF, in addition, ensures the `cdecl` calling - * convention on x86, required by the C library function `qsort`. - * - * FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare - * and define a callback function, respectively, in a similar way - * as FT_BASE and FT_BASE_DEF work. - * - * FT_CALLBACK_TABLE is used to _declare_ a constant variable that - * contains pointers to callback functions. - * - * FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable - * that contains pointers to callback functions. - * - * - * Some 16bit compilers have to redefine these macros to insert - * the infamous `_cdecl` or `__fastcall` declarations. - */ + /* The following macros are needed to compile the library with a */ + /* C++ compiler and with 16bit compilers. */ + /* */ + + /* This is special. Within C++, you must specify `extern "C"` for */ + /* functions which are used via function pointers, and you also */ + /* must do that for structures which contain function pointers to */ + /* assure C linkage -- it's not possible to have (local) anonymous */ + /* functions which are accessed by (global) function pointers. */ + /* */ + /* */ + /* FT_CALLBACK_DEF is used to _define_ a callback function, */ + /* located in the same source code file as the structure that uses */ + /* it. */ + /* */ + /* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */ + /* and define a callback function, respectively, in a similar way */ + /* as FT_BASE and FT_BASE_DEF work. */ + /* */ + /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ + /* contains pointers to callback functions. */ + /* */ + /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */ + /* that contains pointers to callback functions. */ + /* */ + /* */ + /* Some 16bit compilers have to redefine these macros to insert */ + /* the infamous `_cdecl` or `__fastcall` declarations. */ + /* */ #ifdef __cplusplus #define FT_CALLBACK_DEF( x ) extern "C" x #else #define FT_CALLBACK_DEF( x ) static x #endif -#if defined( __i386__ ) -#define FT_COMPARE_DEF( x ) FT_CALLBACK_DEF( x ) __attribute__(( cdecl )) -#elif defined( _M_IX86 ) -#define FT_COMPARE_DEF( x ) FT_CALLBACK_DEF( x ) __cdecl -#else -#define FT_COMPARE_DEF( x ) FT_CALLBACK_DEF( x ) -#endif - #define FT_BASE_CALLBACK( x ) FT_FUNCTION_DECLARATION( x ) #define FT_BASE_CALLBACK_DEF( x ) FT_FUNCTION_DEFINITION( x ) |