diff --git a/docs/reference/glib/conversion-macros.md b/docs/reference/glib/conversion-macros.md
index 32f70fc60..c4f0fb773 100644
--- a/docs/reference/glib/conversion-macros.md
+++ b/docs/reference/glib/conversion-macros.md
@@ -39,8 +39,8 @@ p = (void*) (long) 42;
i = (int) (long) p;
```
-The GLib macros `GPOINTER_TO_INT()`, `GINT_TO_POINTER()`, etc. take care to
-do the right thing on every platform.
+The GLib macros [`GPOINTER_TO_INT()`](#gpointer-to-int), [`GINT_TO_POINTER()`](#gint-to-pointer),
+etc. take care to do the right thing on every platform.
**Warning**: You may not store pointers in integers. This is not portable in
any way, shape or form. These macros only allow storing integers in
@@ -48,18 +48,33 @@ pointers, and only preserve 32 bits of the integer; values outside the range
of a 32-bit integer will be mangled.
-``GINT_TO_POINTER(value)``, ``GPOINTER_TO_INT(value)``
-: Stuffs an integer into a pointer type, and vice versa. Remember, you may not
- store pointers in integers. This is not portable in any way, shape or form.
- These macros only allow storing integers in pointers, and only preserve 32
- bits of the integer; values outside the range of a 32-bit integer will be
- mangled.
+`GINT_TO_POINTER(value)`, `GPOINTER_TO_INT(value)`
-``GUINT_TO_POINTER(value)``, ``GPOINTER_TO_UINT(value)``
-: Stuffs an unsigned integer into a pointer type, and vice versa.
+: Stuffs an integer into a pointer type, and vice versa.
-``GSIZE_TO_POINTER(value)``, ``GPOINTER_TO_SIZE(value)``
-: Stuffs a `size_t` into a pointer type, and vice versa.
+ Remember, you may not store pointers in integers. This is not portable in
+ any way, shape or form. These macros only allow storing integers in
+ pointers, and only preserve 32 bits of the integer; values outside the
+ range of a 32-bit integer will be mangled.
+
+`GUINT_TO_POINTER(value)`, `GPOINTER_TO_UINT(value)`
+
+: Stuffs an unsigned integer into a pointer type, and vice versa.
+
+`GSIZE_TO_POINTER(value)`, `GPOINTER_TO_SIZE(value)`
+
+: Stuffs a `size_t` into a pointer type, and vice versa.
+
+`GTYPE_TO_POINTER(value)`, `GPOINTER_TO_TYPE(value)`
+
+: Stuffs a [`GType`](../gobject/alias.Type.html) into a pointer type, and
+ vice versa.
+
+ These macros should be used instead of [`GSIZE_TO_POINTER()`](#gsize-to-pointer),
+ [`GPOINTER_TO_SIZE()`](#gpointer-to-size) to ensure portability, since
+ `GType` is not guaranteed to be the same as `size_t`.
+
+ Since: 2.80
## Byte Order Conversion
@@ -92,190 +107,250 @@ Note that the byte order conversion macros may evaluate their arguments
multiple times, thus you should not use them with arguments which have
side-effects.
-`G_BYTE_ORDER`
-: The host byte order. This can be either `G_LITTLE_ENDIAN` or `G_BIG_ENDIAN`.
+`G_BYTE_ORDER`
-`G_LITTLE_ENDIAN`
-: Specifies the little endian byte order.
+: The host byte order. This can be either [`G_LITTLE_ENDIAN`](#g-little-endian)
+ or [`G_BIG_ENDIAN`](#g-big-endian).
-`G_BIG_ENDIAN`
-: Specifies the big endian byte order.
+`G_LITTLE_ENDIAN`
-`G_PDP_ENDIAN`
-: Specifies the PDP endian byte order.
+: Specifies the little endian byte order.
+
+`G_BIG_ENDIAN`
+
+: Specifies the big endian byte order.
+
+`G_PDP_ENDIAN`
+
+: Specifies the PDP endian byte order.
### Signed
-`GINT_FROM_BE(value)`
-: Converts an `int` value from big-endian to host byte order.
+`GINT_FROM_BE(value)`
-`GINT_FROM_LE(value)`
-: Converts an `int` value from little-endian to host byte order.
+: Converts an `int` value from big-endian to host byte order.
-`GINT_TO_BE(value)`
-: Converts an `int` value from host byte order to big-endian.
+`GINT_FROM_LE(value)`
-`GINT_TO_LE(value)`
-: Converts an `int` value from host byte order to little-endian.
+: Converts an `int` value from little-endian to host byte order.
-`GLONG_FROM_BE(value)`
-: Converts a `long` value from big-endian to the host byte order.
+`GINT_TO_BE(value)`
-`GLONG_FROM_LE(value)`
-: Converts a `long` value from little-endian to host byte order.
+: Converts an `int` value from host byte order to big-endian.
-`GLONG_TO_BE(value)`
-: Converts a `long` value from host byte order to big-endian.
+`GINT_TO_LE(value)`
-`GLONG_TO_LE(value)`
-: Converts a `long` value from host byte order to little-endian.
+: Converts an `int` value from host byte order to little-endian.
-`GSSIZE_FROM_BE(value)`
-: Converts a `ssize_t` value from big-endian to host byte order.
+`GLONG_FROM_BE(value)`
-`GSSIZE_FROM_LE(value)`
-: Converts a `ssize_t` value from little-endian to host byte order.
+: Converts a `long` value from big-endian to the host byte order.
-`GSSIZE_TO_BE(value)`
-: Converts a `ssize_t` value from host byte order to big-endian.
+`GLONG_FROM_LE(value)`
-`GSSIZE_TO_LE(value)`
-: Converts a `ssize_t` value from host byte order to little-endian.
+: Converts a `long` value from little-endian to host byte order.
-`GINT16_FROM_BE(value)`
-: Converts an `int16_t` value from big-endian to host byte order.
+`GLONG_TO_BE(value)`
-`GINT16_FROM_LE(value)`
-: Converts an `int16_t` value from little-endian to host byte order.
+: Converts a `long` value from host byte order to big-endian.
-`GINT16_TO_BE(value)`
-: Converts an `int16_t` value from host byte order to big-endian.
+`GLONG_TO_LE(value)`
-`GINT16_TO_LE(value)`
-: Converts an `int16_t` value from host byte order to little-endian.
+: Converts a `long` value from host byte order to little-endian.
-`GINT32_FROM_BE(value)`
-: Converts an `int32_t` value from big-endian to host byte order.
+`GSSIZE_FROM_BE(value)`
-`GINT32_FROM_LE(value)`
-: Converts an `int32_t` value from little-endian to host byte order.
+: Converts a `ssize_t` value from big-endian to host byte order.
-`GINT32_TO_BE(value)`
-: Converts an `int32_t` value from host byte order to big-endian.
+`GSSIZE_FROM_LE(value)`
-`GINT32_TO_LE(value)`
-: Converts an `int32_t` value from host byte order to little-endian.
+: Converts a `ssize_t` value from little-endian to host byte order.
-`GINT64_FROM_BE(value)`
-: Converts an `int64_t` value from big-endian to host byte order.
+`GSSIZE_TO_BE(value)`
-`GINT64_FROM_LE(value)`
-: Converts an `int64_t` value from little-endian to host byte order.
+: Converts a `ssize_t` value from host byte order to big-endian.
-`GINT64_TO_BE(value)`
-: Converts an `int64_t` value from host byte order to big-endian.
+`GSSIZE_TO_LE(value)`
-`GINT64_TO_LE(value)`
-: Converts an `int64_t` value from host byte order to little-endian.
+: Converts a `ssize_t` value from host byte order to little-endian.
+
+`GINT16_FROM_BE(value)`
+
+: Converts an `int16_t` value from big-endian to host byte order.
+
+`GINT16_FROM_LE(value)`
+
+: Converts an `int16_t` value from little-endian to host byte order.
+
+`GINT16_TO_BE(value)`
+
+: Converts an `int16_t` value from host byte order to big-endian.
+
+`GINT16_TO_LE(value)`
+
+: Converts an `int16_t` value from host byte order to little-endian.
+
+`GINT32_FROM_BE(value)`
+
+: Converts an `int32_t` value from big-endian to host byte order.
+
+`GINT32_FROM_LE(value)`
+
+: Converts an `int32_t` value from little-endian to host byte order.
+
+`GINT32_TO_BE(value)`
+
+: Converts an `int32_t` value from host byte order to big-endian.
+
+`GINT32_TO_LE(value)`
+
+: Converts an `int32_t` value from host byte order to little-endian.
+
+`GINT64_FROM_BE(value)`
+
+: Converts an `int64_t` value from big-endian to host byte order.
+
+`GINT64_FROM_LE(value)`
+
+: Converts an `int64_t` value from little-endian to host byte order.
+
+`GINT64_TO_BE(value)`
+
+: Converts an `int64_t` value from host byte order to big-endian.
+
+`GINT64_TO_LE(value)`
+
+: Converts an `int64_t` value from host byte order to little-endian.
### Unsigned
-`GUINT_FROM_BE(value)`
-: Converts an `unsigned int` value from big-endian to host byte order.
+`GUINT_FROM_BE(value)`
-`GUINT_FROM_LE(value)`
-: Converts an `unsigned int` value from little-endian to host byte order.
+: Converts an `unsigned int` value from big-endian to host byte order.
-`GUINT_TO_BE(value)`
-: Converts an `unsigned int` value from host byte order to big-endian.
+`GUINT_FROM_LE(value)`
-`GUINT_TO_LE(value)`
-: Converts an `unsigned int` value from host byte order to little-endian.
+: Converts an `unsigned int` value from little-endian to host byte order.
-`GULONG_FROM_BE(value)`
-: Converts an `unsigned long` value from big-endian to host byte order.
+`GUINT_TO_BE(value)`
-`GULONG_FROM_LE(value)`
-: Converts an `unsigned long` value from little-endian to host byte order.
+: Converts an `unsigned int` value from host byte order to big-endian.
-`GULONG_TO_BE(value)`
-: Converts an `unsigned long` value from host byte order to big-endian.
+`GUINT_TO_LE(value)`
-`GULONG_TO_LE(value)`
-: Converts an `unsigned long` value from host byte order to little-endian.
+: Converts an `unsigned int` value from host byte order to little-endian.
-`GSIZE_FROM_BE(value)`
-: Converts a `size_t` value from big-endian to the host byte order.
+`GULONG_FROM_BE(value)`
-`GSIZE_FROM_LE(value)`
-: Converts a `size_t` value from little-endian to host byte order.
+: Converts an `unsigned long` value from big-endian to host byte order.
-`GSIZE_TO_BE(value)`
-: Converts a `size_t` value from host byte order to big-endian.
+`GULONG_FROM_LE(value)`
-`GSIZE_TO_LE(value)`
-: Converts a `size_t` value from host byte order to little-endian.
+: Converts an `unsigned long` value from little-endian to host byte order.
-`GUINT16_FROM_BE(value)`
-: Converts a `uint16_t` value from big-endian to host byte order.
+`GULONG_TO_BE(value)`
-`GUINT16_FROM_LE(value)`
-: Converts a `uint16_t` value from little-endian to host byte order.
+: Converts an `unsigned long` value from host byte order to big-endian.
-`GUINT16_TO_BE(value)`
-: Converts a `uint16_t` value from host byte order to big-endian.
+`GULONG_TO_LE(value)`
-`GUINT16_TO_LE(value)`
-: Converts a `uint16_t` value from host byte order to little-endian.
+: Converts an `unsigned long` value from host byte order to little-endian.
-`GUINT32_FROM_BE(value)`
-: Converts a `uint32_t` value from big-endian to host byte order.
+`GSIZE_FROM_BE(value)`
-`GUINT32_FROM_LE(value)`
-: Converts a `uint32_t` value from little-endian to host byte order.
+: Converts a `size_t` value from big-endian to the host byte order.
-`GUINT32_TO_BE(value)`
-: Converts a `uint32_t` value from host byte order to big-endian.
+`GSIZE_FROM_LE(value)`
-`GUINT32_TO_LE(value)`
-: Converts a `uint32_t` value from host byte order to little-endian.
+: Converts a `size_t` value from little-endian to host byte order.
-`GUINT64_FROM_BE(value)`
-: Converts a `uint64_t` value from big-endian to host byte order.
+`GSIZE_TO_BE(value)`
-`GUINT64_FROM_LE(value)`
-: Converts a `uint64_t` value from little-endian to host byte order.
+: Converts a `size_t` value from host byte order to big-endian.
-`GUINT64_TO_BE(value)`
-: Converts a `uint64_t` value from host byte order to big-endian.
+`GSIZE_TO_LE(value)`
-`GUINT64_TO_LE(value)`
-: Converts a `uint64_t` value from host byte order to little-endian.
+: Converts a `size_t` value from host byte order to little-endian.
-`GUINT16_SWAP_BE_PDP(value)`
-: Converts a `uint16_t` value between big-endian and pdp-endian byte order.
- The conversion is symmetric so it can be used both ways.
+`GUINT16_FROM_BE(value)`
-`GUINT16_SWAP_LE_BE(value)`
-: Converts a `uint16_t` value between little-endian and big-endian byte order.
- The conversion is symmetric so it can be used both ways.
+: Converts a `uint16_t` value from big-endian to host byte order.
-`GUINT16_SWAP_LE_PDP(value)`
-: Converts a `uint16_t` value between little-endian and pdp-endian byte order.
- The conversion is symmetric so it can be used both ways.
+`GUINT16_FROM_LE(value)`
-`GUINT32_SWAP_BE_PDP(value)`
-: Converts a `uint32_t` value between big-endian and pdp-endian byte order.
- The conversion is symmetric so it can be used both ways.
+: Converts a `uint16_t` value from little-endian to host byte order.
-`GUINT32_SWAP_LE_BE(value)`
-: Converts a `uint32_t` value between little-endian and big-endian byte order.
- The conversion is symmetric so it can be used both ways.
+`GUINT16_TO_BE(value)`
-`GUINT32_SWAP_LE_PDP(value)`
-: Converts a `uint32_t` value between little-endian and pdp-endian byte order.
- The conversion is symmetric so it can be used both ways.
+: Converts a `uint16_t` value from host byte order to big-endian.
-`GUINT64_SWAP_LE_BE(value)`
-: Converts a `uint64_t` value between little-endian and big-endian byte order.
- The conversion is symmetric so it can be used both ways.
+`GUINT16_TO_LE(value)`
+
+: Converts a `uint16_t` value from host byte order to little-endian.
+
+`GUINT32_FROM_BE(value)`
+
+: Converts a `uint32_t` value from big-endian to host byte order.
+
+`GUINT32_FROM_LE(value)`
+
+: Converts a `uint32_t` value from little-endian to host byte order.
+
+`GUINT32_TO_BE(value)`
+
+: Converts a `uint32_t` value from host byte order to big-endian.
+
+`GUINT32_TO_LE(value)`
+
+: Converts a `uint32_t` value from host byte order to little-endian.
+
+`GUINT64_FROM_BE(value)`
+
+: Converts a `uint64_t` value from big-endian to host byte order.
+
+`GUINT64_FROM_LE(value)`
+
+: Converts a `uint64_t` value from little-endian to host byte order.
+
+`GUINT64_TO_BE(value)`
+
+: Converts a `uint64_t` value from host byte order to big-endian.
+
+`GUINT64_TO_LE(value)`
+
+: Converts a `uint64_t` value from host byte order to little-endian.
+
+`GUINT16_SWAP_BE_PDP(value)`
+
+: Converts a `uint16_t` value between big-endian and pdp-endian byte order.
+ The conversion is symmetric so it can be used both ways.
+
+`GUINT16_SWAP_LE_BE(value)`
+
+: Converts a `uint16_t` value between little-endian and big-endian byte order.
+ The conversion is symmetric so it can be used both ways.
+
+`GUINT16_SWAP_LE_PDP(value)`
+
+: Converts a `uint16_t` value between little-endian and pdp-endian byte order.
+ The conversion is symmetric so it can be used both ways.
+
+`GUINT32_SWAP_BE_PDP(value)`
+
+: Converts a `uint32_t` value between big-endian and pdp-endian byte order.
+ The conversion is symmetric so it can be used both ways.
+
+`GUINT32_SWAP_LE_BE(value)`
+
+: Converts a `uint32_t` value between little-endian and big-endian byte order.
+ The conversion is symmetric so it can be used both ways.
+
+`GUINT32_SWAP_LE_PDP(value)`
+
+: Converts a `uint32_t` value between little-endian and pdp-endian byte order.
+ The conversion is symmetric so it can be used both ways.
+
+`GUINT64_SWAP_LE_BE(value)`
+
+: Converts a `uint64_t` value between little-endian and big-endian byte order.
+ The conversion is symmetric so it can be used both ways.