The following is a list of libvirt APIs that should no longer be
used in new code, and their suggested GLib replacements:
-Memory allocation
- ``VIR_ALLOC``, ``VIR_REALLOC``, ``VIR_RESIZE_N``,
- ``VIR_EXPAND_N``, ``VIR_SHRINK_N``, ``VIR_FREE``
-
- https://developer.gnome.org/glib/stable/glib-Memory-Allocation.html
-
- Prefer the GLib APIs ``g_new0``/``g_renew``/ ``g_free`` in most
- cases. There should rarely be a need to use
- ``g_malloc``/``g_realloc``. **NEVER MIX** use of the classic
- libvirt memory allocation APIs and GLib APIs within a single
- method. Keep the style consistent, converting existing code to
- GLib style in a separate, prior commit.
-
Array operations
``VIR_APPEND_ELEMENT``, ``VIR_INSERT_ELEMENT``, ``VIR_DELETE_ELEMENT``
These all use a struct to track the array memory and size
together and efficiently resize.
-String arrays
- ``virStringList*``, ``virStringListCount*``
-
- https://developer.gnome.org/glib/stable/glib-String-Utility-Functions.html
-
- Prefer the NULL-terminated variant instead of storing the count
- separately. Prefer ``g_str*v`` functions instead of their ``vir*``
- counterparts. For use with ``g_auto`` GLib provides the ``GStrv`` type.
-
Objects
``virObject``