summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* gimarshallingtests: Return new floating gvariant in transfer containerHEADmainMarco Trevisan (Treviño)2023-04-171-1/+2
| | | | | | Apply the logic of previous commit to the array gvariant container function, so that bindings can test better the memory handling of those cases.
* gimarshallingtests: Add strong references to transfer full variantsMarco Trevisan (Treviño)2023-04-171-3/+9
| | | | | | | | | | We marked GVariant arrays containing floating references as transfer-full and this is leading bindings (i.e. gjs) to misleading behavior (see https://gitlab.gnome.org/GNOME/gjs/-/issues/499). This was definitely wrong, in fact a function returning a floating reference should have been transfer none, and so in this case the actual function transfer would have been container.
* gitypelib-internal: Use a switch to check if blob is a registered typeMarco Trevisan (Treviño)2023-04-101-0/+28
| | | | | | | | No need to go through all the possible blob types, while we can use an inline function to check it. Use an attribute to ensure the function will be inlined, when this is not available just fallback to the previous definition
* tests/gimarshallingtests: Add a test case for zero-terminated GValue arraysMarco Trevisan (Treviño)2023-04-102-0/+24
| | | | Required to test how gjs handles this case.
* tests/gimarshallingtests: Unrefe the GByteArray object propertyMarco Trevisan (Treviño)2023-04-091-0/+1
| | | | We were leaking this, and so it was a false positive for the bindings
* gimarshallingtests: Do not leak GIMarshallingTests boxed structureMarco Trevisan (Treviño)2023-04-091-2/+4
| | | | | | | These are part of the array that we return, so there's no need to allocate a new structure. And this was leading to false positive leaks in bindings.
* Post-release version bump to 1.76.2Emmanuele Bassi2023-03-221-1/+1
|
* Release gobject-introspection 1.76.11.76.1Emmanuele Bassi2023-03-221-0/+6
|
* Special-case pointer-sized value typesEmmanuele Bassi2023-03-201-13/+44
| | | | | | | | | GValues containing pointer-sized things can hold a NULL value, and various transformation functions in the wild are not NULL safe. Fixes: #457 See also: https://gitlab.gnome.org/GNOME/mutter/-/issues/2625
* Protect ourselves against properties with no default valueEmmanuele Bassi2023-03-201-1/+4
| | | | | If the GParamSpec does not have a default value, we should not try to turn it into a string.
* build: Reset GLib version checkEmmanuele Bassi2023-03-201-2/+2
| | | | We overtook GLib, once again.
* docs: Add Emmanuele's suggestions to "Writing Bindable APIs"Emmanuele Bassi2023-03-181-5/+11
| | | These suggestions came up in code review.
* docs: Advice on transfer-none return valuesPhilip Chimento2023-03-181-0/+26
| | | | | | | APIs such as the Gio.AppInfo.get_id vfunc which contravene this advice, can cause memory leaks. (See https://gitlab.gnome.org/GNOME/gjs/-/issues/519) Document it here so that it hopefully happens less often in the future.
* docs: Incorporate Emmanuele's bindable API advicePhilip Chimento2023-03-181-2/+58
| | | | | | This includes the new points from Emmanuele's recent blog post https://www.bassi.io/articles/2023/02/20/bindable-api-2023/ into the "Writing Bindable APIs" doc.
* Release gobject-introspection 1.76.01.76.0Emmanuele Bassi2023-03-132-2/+8
|
* Update GIR data for GLibEmmanuele Bassi2023-03-133-25/+88
| | | | Sync up to GLib 2.76.0
* CI: Show the exact commit we are building for each subprojectSimon McVittie2023-03-133-0/+14
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* docs: Fix `deprecated` typeNahu2023-03-041-1/+1
|
* Post-release version bump to 1.75.7Emmanuele Bassi2023-02-141-1/+1
|
* Release gobject-introspection 1.75.61.75.6Emmanuele Bassi2023-02-132-1/+8
|
* Reword closure annotation documentationbadcel2023-02-131-8/+6
|
* docs: Be more specific on error out casesCorentin Noël2023-02-131-1/+3
| | | | | Add a disambiguation of what to return and do with the out values in case an error is thrown.
* Update GLib introspection dataEmmanuele Bassi2023-02-132-76/+469
| | | | Use GLib 2.75.3.
* build: Disable GLib's tests when building it as a subprojectSimon McVittie2023-02-131-1/+2
| | | | | | | | We don't need to compile or run GLib's test suite as part of building GObject-Introspection: any failures there are not GObject-Introspection issues. This should make CI somewhat quicker. Signed-off-by: Simon McVittie <smcv@debian.org>
* ci: Allow MSYS2 jobs to failEmmanuele Bassi2023-02-131-0/+2
| | | | | | There's something broken in the MSYS2 jobs, and nobody is actually looking at them. We can't let this block forever, so we temporarily allow them to fail until somebody can diagnose the issue.
* Update GLib introspection datawip/smcv/testbuildRico Tzschichholz2023-01-303-106/+138
| | | | Use GLib commit f499e37979c09409d553a49562c6a0a9a65267af
* Update GLib introspection dataSebastian Dröge2023-01-302-25/+83
| | | | This is based on GLib ce876ab28bb81ac0b1c313223284de722d8208a1.
* Fix gir build when using subprojects' dependenciesAndoni Morales Alastruey2023-01-273-0/+16
| | | | | | | | https://github.com/mesonbuild/meson/pull/10275 introduced support in meson to use uninstalled .pc files in the meson-uninstalled directory to resolve dependencies built with subprojects. Replicate the same solution while all the custom_target are migrated to gnome.generate_dir
* Post-release version bump to 1.75.5Emmanuele Bassi2023-01-091-1/+1
|
* Release GObject-introspection 1.75.41.75.4Emmanuele Bassi2023-01-092-2/+7
|
* build: Remove subproject fallbackEmmanuele Bassi2023-01-091-14/+8
| | | | We don't need it any more.
* build: Override required GLib versionEmmanuele Bassi2023-01-091-2/+3
| | | | We passed GLib's own version, so we need to reset the requirement.
* Post-release version bump to 1.75.3Emmanuele Bassi2023-01-091-1/+1
|
* Release gobject-introspection 1.75.21.75.2Emmanuele Bassi2023-01-092-1/+11
|
* Update version to 1.75.1Emmanuele Bassi2023-01-081-1/+1
|
* tests: Use the appropriate assertion methodEmmanuele Bassi2023-01-081-53/+55
| | | | | | - assertEqual(value, None) → assertIsNone(value) - assertTrue(value is not None) → assertIsNotNone(value) - assertTrue(isinstance(value, Type)) → assertIsInstance(value, Type)
* Use the pointer attribute in libgirepositoryEmmanuele Bassi2023-01-084-20/+75
| | | | | | The "disguised" attribute is there only for backward compatibility; we use the "pointer" attribute as the authoritative way to indicate a typedef to a struct pointer.
* Split disguised attribute into twoEmmanuele Bassi2023-01-0811-20/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The disguised attribute started off as a way to indicate a typedef to a structure pointer, e.g. typedef struct Foo* FooPtr; Over the years, though, it started to include opaque structure types, e.g. typedef struct _FooObject FooObject; typedef struct _FooObjectClass FooObjectClass; This has led to issues in language bindings, code generators, and documentation generators, which now have issues when dealing with both pointer aliases and opaque types. An initial attempt at fixing this mess in commit f606183a ended up breaking Vala, and had to be reverted. To avoid breaking existing users we can follow a similar approach to the allow-none/nullable/optional solution: 1. introduce a new pair of attributes: "pointer" and "opaque" 2. deprecate the "disguised" attribute The "pointer" attribute covers the case of pointer types. The "opaque" attribute covers the case of opaque structured types. See also: https://gitlab.gnome.org/GNOME/vala/-/issues/735 Fixes: #101
* Revert "scanner: don't accept invalid symbols in binary expressions"Emmanuele Bassi2023-01-087-41/+84
| | | | This reverts commit b37f24b7e27a77c398f41cc331608aff806f0d42.
* GIMarshallingTests: Free and copy GStrv instancesMarco Trevisan (Treviño)2023-01-081-0/+2
| | | | | A GIMarshallingTestsBoxedStruct includes a GStrv, but we don't copy or free it properly.
* Document the newly added attributesEmmanuele Bassi2023-01-082-0/+16
| | | | | Add the (copy-func) and (free-func) annotations to the documentation, and the copy-function and free-function attributes to the GIR schema.
* test: Add regression test for the new tagsEmmanuele Bassi2023-01-086-229/+260
|
* Add copy and free function annotations for POD typesEmmanuele Bassi2023-01-0814-15/+287
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Plain Old Data (POD) types with or without a representation in the GType type system can still have a copy and/or a free function. We should allow annotating these types with their corresponding functions for copying their data into a new instance, and freeing their data. From a language bindings perspective, POD types should have a boxed GType wrapper around them, so they can use the generic GBoxed API to copy and free instances; from a documentation perspective, though, it'd be good to have a way to match a structured type, like a struct or a union, with its copy and free functions. In order to do that, we add two new header block annotations: - (copy-func function_name) - (free-func function_name) These annotations work exactly like ref-func and unref-func for typed instances: /** * GdkRGBA: (copy-func gdk_rgba_copy) * (free-func gdk_rgba_free) * @red: ... * @green: ... * @blue: ... * @alpha: ... * * ... */ The function is stored in the GIR data as two new attributes for the `<record>` and `<union>` elements: <record name="RGBA" c:type="GdkRGBA" copy-function="gdk_rgba_copy" free-function="gdk_rgba_free" glib:type-name="GdkRGBA" glib:get-type="gdk_rgba_get_type" c:symbol-prefix="gdk_rgba"> The annotations are not mandatory. See: #14
* Open g-i 1.75 developmentEmmanuele Bassi2023-01-081-0/+14
|
* Add `default-value` annotationEmmanuele Bassi2023-01-085-7/+37
| | | | | | | An escape hatch to specify a freeform string for the default value of a property. Fixes: #4
* Skip default-value for non-transformable propertiesEmmanuele Bassi2023-01-083-45/+34
| | | | | | | If we can't transform a property default value to string, we are not going to add a default-value attribute to the GIR. This is necessary because non-transformable values may not always be pointers, so we cannot default to "NULL".
* Add an optional attribute for the property default valueEmmanuele Bassi2023-01-086-25/+75
| | | | | | | | | The default-value attribute for a property element is fundamentally meant for documentation generators. We only care about the GIR data, as the conversion from the default value to a string is lossy by definition, and may very well not roundtrip.
* Dump the default value of object propertiesEmmanuele Bassi2023-01-081-2/+45
| | | | | | We use g_param_spec_get_default_value() to get the default GValue of a GParamSpec, and then we serialize it into a string according to the value's own contents and type.
* Remove function "FT_Library_Version"badcel2023-01-081-7/+0
| | | | The function is not usable for language bindings as no shared library name is defined in the gir file and the parameters do not match upstream function signature.
* Update GLib introspection dataEmmanuele Bassi2023-01-083-50/+509
| | | | Use GLib commit ec3b1bfc45216850c1a861055ad2fd9d9906813a (tag: 2.75.2)