Skip to content

girepository: Expose GITypeInfo and GIArgInfo as stack allocatable

Philip Withnall requested to merge pwithnall/glib:3217-gir-stack into main

There are a handful of APIs in libgirepository which are used on performance-sensitive code paths in language bindings (such as looking at arguments when doing function calls). Historically libgirepository has provided a stack-allocated variant for them, which avoids returning a newly allocated GIBaseInfo. Since moving to glib.git and porting to GTypeInstance, that stack allocated version has been broken.

This commit fixes it, by exposing obfuscated stack allocatable versions of GITypeInfo and GIArgInfo, which are the two GIBaseInfo subtypes which can be returned by the stack allocation functions.

The commit includes unit tests for them.

Signed-off-by: Philip Withnall pwithnall@gnome.org

Fixes: #3217 (closed)

Closes #3217 (closed)

Merge request reports