diff options
Diffstat (limited to 'include/ruby/internal/arithmetic/size_t.h')
| -rw-r--r-- | include/ruby/internal/arithmetic/size_t.h | 45 |
1 files changed, 30 insertions, 15 deletions
diff --git a/include/ruby/internal/arithmetic/size_t.h b/include/ruby/internal/arithmetic/size_t.h index 8341c80a35..1082160b8e 100644 --- a/include/ruby/internal/arithmetic/size_t.h +++ b/include/ruby/internal/arithmetic/size_t.h @@ -17,7 +17,7 @@ * recursively included from extension libraries written in C++. * Do not expect for instance `__VA_ARGS__` is always available. * We assume C99 for ruby itself but we don't assume languages of - * extension libraries. They could be written in C++98. + * extension libraries. They could be written in C++98. * @brief Arithmetic conversion between C's `size_t` and Ruby's. */ #include "ruby/internal/config.h" @@ -26,26 +26,41 @@ #include "ruby/internal/arithmetic/long_long.h" #include "ruby/backward/2/long_long.h" -#if SIZEOF_SIZE_T == SIZEOF_LONG_LONG -# define SIZET2NUM RB_ULL2NUM -# define SSIZET2NUM RB_LL2NUM +#if defined(__DOXYGEN__) +# /** Converts a C's `size_t` into an instance of ::rb_cInteger. */ +# define RB_SIZE2NUM RB_ULONG2NUM +# /** Converts a C's `ssize_t` into an instance of ::rb_cInteger. */ +# define RB_SSIZE2NUM RB_LONG2NUM +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define RB_SIZE2NUM RB_ULL2NUM +# define RB_SSIZE2NUM RB_LL2NUM #elif SIZEOF_SIZE_T == SIZEOF_LONG -# define SIZET2NUM RB_ULONG2NUM -# define SSIZET2NUM RB_LONG2NUM +# define RB_SIZE2NUM RB_ULONG2NUM +# define RB_SSIZE2NUM RB_LONG2NUM #else -# define SIZET2NUM RB_UINT2NUM -# define SSIZET2NUM RB_INT2NUM +# define RB_SIZE2NUM RB_UINT2NUM +# define RB_SSIZE2NUM RB_INT2NUM #endif -#if SIZEOF_SIZE_T == SIZEOF_LONG_LONG -# define NUM2SIZET RB_NUM2ULL -# define NUM2SSIZET RB_NUM2LL +#if defined(__DOXYGEN__) +# /** Converts an instance of ::rb_cInteger into C's `size_t`. */ +# define RB_NUM2SIZE RB_NUM2ULONG +# /** Converts an instance of ::rb_cInteger into C's `ssize_t`. */ +# define RB_NUM2SSIZE RB_NUM2LONG +#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG +# define RB_NUM2SIZE RB_NUM2ULL +# define RB_NUM2SSIZE RB_NUM2LL #elif SIZEOF_SIZE_T == SIZEOF_LONG -# define NUM2SIZET RB_NUM2ULONG -# define NUM2SSIZET RB_NUM2LONG +# define RB_NUM2SIZE RB_NUM2ULONG +# define RB_NUM2SSIZE RB_NUM2LONG #else -# define NUM2SIZET RB_NUM2UINT -# define NUM2SSIZET RB_NUM2INT +# define RB_NUM2SIZE RB_NUM2UINT +# define RB_NUM2SSIZE RB_NUM2INT #endif +#define NUM2SIZET RB_NUM2SIZE /**< @old{RB_NUM2SIZE} */ +#define SIZET2NUM RB_SIZE2NUM /**< @old{RB_SIZE2NUM} */ +#define NUM2SSIZET RB_NUM2SSIZE /**< @old{RB_NUM2SSIZE} */ +#define SSIZET2NUM RB_SSIZE2NUM /**< @old{RB_SSIZE2NUM} */ + #endif /* RBIMPL_ARITHMETIC_SIZE_T_H */ |
