summaryrefslogtreecommitdiff
path: root/include/ruby/internal/arithmetic/size_t.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ruby/internal/arithmetic/size_t.h')
-rw-r--r--include/ruby/internal/arithmetic/size_t.h45
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 */