Commit Graph

30872 Commits

Author SHA1 Message Date
Benoit Pierre
caf7f8ef49 tests: fix some Windows testsuite failures
Add test dependencies on the 2 spawn helpers required on Windows.
2024-07-04 19:35:47 +00:00
Andy Holmes
da3510575e
gthreadedresolver: ref-sink returned records in lookup_records()
The return value to `lookup_records()` methods is set as `transfer full`
but the code path in `g_resolver_records_from_res_query()` doesn't
sink the GVariant.

Add the `g_variant_ref_sink()` call when prepending the record, so
the list hold a full reference on each records.

closes #3393
2024-07-04 12:06:12 -07:00
Philip Withnall
b29f249544 Merge branch 'async_queue_copy_free_func' into 'main'
GAsyncQueue: Add copy-func and free-func annotations

See merge request GNOME/glib!4131
2024-07-04 13:11:31 +00:00
Philip Withnall
70784b99b1 Merge branch 'wsign-conversion' into 'main'
gqsort: Add g_sort_array() and deprecate g_qsort_with_data()

See merge request GNOME/glib!4127
2024-07-04 12:33:38 +00:00
Philip Withnall
22d699943d Merge branch 'menu-model-diagram' into 'main'
Docs: Replace Gio.MenuModel diagram with SVG

See merge request GNOME/glib!4140
2024-07-04 11:55:11 +00:00
Philip Withnall
f953212cc5
tests: Add a test for g_value_array_sort_with_data()
It’s deprecated, but I was modifying it anyway and it didn’t have any
coverage, so let’s add a simple test (as suggested by Michael
Catanzaro).

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-07-04 12:34:20 +01:00
FeRD (Frank Dana)
f4d944119c Menu model example: Update diagram
- Add licensing tags
- Tweak spacing, colors, line thicknesses
- Create light-mode version
- Use `<picture>` tag to include appropriate version for each media
  color scheme.
2024-07-04 12:13:53 +01:00
FeRD (Frank Dana)
85c8a7c0d8 Docs: Replace Gio.MenuModel diagram with SVG
Recreate the `menu-model.png` diagram in SVG, with box outlines and
connectors recolored from black to white. This will allow the diagram
to show up better in the dark documentation theme.
2024-07-04 12:13:53 +01:00
Philip Withnall
41d34f4976 Merge branch 'erniGH/remove-distutils' into 'main'
replace package.version.Version by internal code

See merge request GNOME/glib!4133
2024-07-04 11:04:39 +00:00
Ernesto de Gracia Herranz
38faeca62e replace package.version.Version by internal code
This drops the dependency on the Python `packaging` module.

Signed-off-by: Ernesto de Gracia Herranz <ernestodgh@jfrog.com>
2024-07-04 11:04:38 +00:00
Philip Withnall
047010a278 Merge branch 'typed-callbacks-gsourcefuncs' into 'main'
gmain: Refactor GSourceFuncs into typed callbacks

Closes #2765

See merge request GNOME/glib!4139
2024-07-04 10:40:20 +00:00
Gary Li
964abbd07d gmain: Refactor GSourceFuncs into typed callbacks
Refactor and document them into typed callbacks, which is preferred over older gtk-doc descriptions for function pointer fields.

Fixes https://gitlab.gnome.org/GNOME/glib/-/issues/2765
2024-07-04 10:40:20 +00:00
Philip Withnall
5de4d59c31 Merge branch 'correct-gtype-macro-comment' into 'main'
gobject: Fix macro name in comment; improve style

See merge request GNOME/glib!4138
2024-07-03 10:43:18 +00:00
Philip Withnall
e0d5d0f3d1 Merge branch 'python-linting' into 'main'
codegen: resolve pylint import issues

See merge request GNOME/glib!4137
2024-07-03 08:22:21 +00:00
Robert Royals
04b79f91e8 gobject: Fix macro name in comment; improve style
Comment referenced non-existent macro:
    G_DEFINE_TYPE_WITH_CODE_AND_PRELUDE
but it should be:
    _G_DEFINE_TYPE_EXTENDED_WITH_PRELUDE
2024-07-03 08:09:31 +01:00
Yegor Yefremov
b89dba22cd codegen: resolve pylint import issues
Remove unused imports and reorder other imports so that
the standard ones are coming first.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
2024-07-02 12:35:09 +02:00
Philip Withnall
7f8201d7af Merge branch 'gtype-macro-remove-variable' into 'main'
gobject: Remove unused variable from macro

See merge request GNOME/glib!4136
2024-07-01 20:56:46 +00:00
Robert Royals
14b3d5da90 gobject: Remove unused variable from macro
Remove TYPE_PARENT variable from the
    _G_DEFINE_TYPE_EXTENDED_BEGIN_PRE
macro definition.
2024-07-01 18:39:48 +01:00
Philip Withnall
1b41818f50 Merge branch 'port-gasyncresult.c-comments' into 'main'
gasyncresult: Port all doc comments to gi-docgen

See merge request GNOME/glib!4128
2024-07-01 13:44:42 +00:00
Philip Withnall
9e498da9bb Merge branch 'gsocketclient-test-fix' into 'main'
Fix gsocketclient-slow test on FreeBSD

See merge request GNOME/glib!4130
2024-07-01 13:35:40 +00:00
badcel
2ebcff9349
GAsyncQueue: Add copy-func and free-func annotations 2024-06-30 21:32:33 +02:00
Gleb Popov
6daebde9a6 Fix gsocketclient-slow test on FreeBSD
The "port" variable ends up being 0 even after successful g_socket_bind.
Use g_socket_get_local_address() to actually get a correct port number.
2024-06-30 15:37:22 +03:00
Sudhanshu Tiwari
f08952d5fe gasyncresult.h: Port all doc comments to gi-docgen 2024-06-29 00:14:35 +05:30
Sudhanshu Tiwari
62acd02c49 gasyncresult.c: Port all doc comments to gi-docgen 2024-06-29 00:11:30 +05:30
Philip Withnall
4d31fe6b7d
gnulib: Disable -Wfloat-conversion by default
gnulib doesn’t work with it, and if we try and enable it then mingw
versions of `signbit()` start causing problems.

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

Helps: #3405
2024-06-28 16:34:08 +01:00
Philip Withnall
7b435dfa7c
garray: Fix g_ptr_array_insert() with indices > G_MAXINT
While an index greater than `G_MAXINT` can’t be passed to
`g_ptr_array_insert()`, `-1` can be — and if that’s done with an array
which has more than `G_MAXINT` elements in it, the new element will be
inserted part-way through the array rather than being appended.

Spotted by building with `-Wsign-conversion`.

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

Helps: #3405
2024-06-28 15:27:25 +01:00
Philip Withnall
b32e1b63ee
gqsort: Add g_sort_array() and deprecate g_qsort_with_data()
The latter only accepts a `gint` as the number of elements in the array,
which means that its use in `GArray` (and related array implementations)
truncates at least half the potential array size.

So, introduce a replacement for it which uses `size_t` for the number of
elements. This is inline with what `qsort()` (or `qsort_r()`) actually
does. Unfortunately we can’t directly use `qsort_r()` because it’s not
guaranteed to be a stable sort.

This fixes some `-Wsign-conversion` warnings (when building GLib with
that enabled).

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

Helps: #3405
2024-06-28 15:27:18 +01:00
Philip Withnall
692a50b78e
build: Enable -Wfloat-conversion by default
GLib now compiles without emitting any float conversion warnings, so
let’s keep it that way.

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

Helps: #3405
2024-06-28 14:44:01 +01:00
Philip Withnall
e35cfef509
performance: Add explicit casts for some double → other numeric type conversions
If we enable `-Wfloat-conversion`, these warn about a possible loss of
precision due to an implicit conversion from `double` to some other
numeric type.

The warning is correct: there is a possible loss of precision here. In
these instances, we don’t care, as the floating point arithmetic is
being done to do some imprecise scaling or imprecise timing. A loss of
precision is not a problem.

So, add an explicit cast to squash the warning.

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

Helps: #3405
2024-06-28 14:43:26 +01:00
Philip Withnall
b7153f5072
performance: Fix signedness of ints throughout
The tests were using a lot of signed `int`s when actually the values
being handled were always non-negative. Use `unsigned int` consistently
throughout.

Take the opportunity to move declarations of loop iterator variables
into the loops.

This introduces no functional changes.

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

Helps: #3405
2024-06-28 14:41:48 +01:00
Philip Withnall
6129f6f244
tests: Use correct numeric comparison assertions in param tests
There were various places where (signed or unsigned) integer assertions
were being used to compare `double` or `float` values, resulting in an
implicit integer conversion.

This causes a warning when building with `-Wfloat-conversion`.

Improve the specificity of the tests by using the most-specific numeric
assertions through all `param` tests.

For the conversion tests, this means using the assertion function
associated with the target type, not the source type.

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

Helps: #3405
2024-06-28 14:38:22 +01:00
Philip Withnall
665292006e
gvalue: Add explicit casts in numeric transform functions
Compiling with `-Wfloat-conversion` warns about a few implicit
conversions from `double`/`float` to other numeric types in the `GValue`
transform functions.

These warnings are correct: value transformations can result in loss of
precision. That loss of precision is understood and expected, so add
some explicit casts to squash the warnings.

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

Helps: #3405
2024-06-28 14:35:57 +01:00
Philip Withnall
cdbfef3842
gparamspecs: Define G_FLOAT_EPSILON as a float constant
Rather than defining it as a double constant. This introduces no
functional changes, but does squash some `-Wfloat-conversion` warnings.

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

Helps: #3405
2024-06-28 14:35:00 +01:00
Philip Withnall
b69fe111ec
tests: Use a correct-typed constant in gdatetime tests
This makes no functional changes, but does avoid a warning from
`-Wfloat-conversion` due to implicitly switching from `guint64` to
`gdouble` and then back to `guint64`.

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

Helps: #3405
2024-06-28 14:34:04 +01:00
Philip Withnall
412aed7c70
gtestutils: Add some explicit double casts
This avoids some false positive warnings from `-Wfloat-conversion`.

The code in `gtestutils.c` is a bit odd: it uses an array of `long
double` elements, with specific indices of that array storing specific
meaningful numbers, each of which has a type which is representable as a
`long double`, but which actually isn’t.

This is a prime candidate for refactoring to not use such a type-unsafe
API where everything is marshalled through `long double`. Unfortunately,
the array is declared in `GTestLogMsg`, which is defined in the public
`gtestutils.h` header, so we can’t change it. Boo.

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

Helps: #3405
2024-06-28 14:31:18 +01:00
Philip Withnall
d0cba9e6ec
girnode: Explicitly lose precision on parsed float values
When building a typelib, the values of constants need to be converted
from a string format (from the GIR) to a binary format. This is
currently done, for all numeric types, using `g_ascii_strto*()`
functions, but with minimal validation. String values which are not
representable as binary numbers are either silently truncated or
clamped.

`-Wfloat-conversion` has flagged that this happens for floats – a
double-precision return from `g_ascii_strtod()` is implicitly cast down
to a float.

While we should ideally have some better error handling so that
conversion to a typelib fails if a constant is not representable in the
typelib, this is a problem for *all* numeric types and not just `float`,
so add an explicit cast to ignore the error for now.

In practice there probably isn’t a problem for any numeric types here,
as there should be validation of the string value when the GIR is
generated anyway.

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

Helps: #3405
2024-06-28 14:27:23 +01:00
Philip Withnall
ebe609eeef
tests: Rearrange double/int comparisons in srvtarget to avoid casts
By keeping `expected` as a `double` for longer, we avoid having to cast
when populating the elements of `ordering`, to avoid
`-Wfloat-conversion` warnings.

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

Helps: #3405
2024-06-28 14:25:38 +01:00
Philip Withnall
2713255574
glib: Add explicit casts for some double → other numeric type conversions
If we enable `-Wfloat-conversion`, these warn about a possible loss of
precision due to an implicit conversion from `double` to some other
numeric type.

The warning is correct: there is a possible loss of precision here. In
these instances, we don’t care, as the floating point arithmetic is
being done to do some imprecise scaling or imprecise timing. A loss of
precision is not a problem.

So, add an explicit cast to squash the warning.

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

Helps: #3405
2024-06-28 14:24:55 +01:00
Philip Withnall
ad5948bbf5
gparamspecs: Fix loss of precision when validating a double-typed pspec
As spotted by `-Wfloat-conversion`. Doubles which could not be
accurately represented as floats may have erroneously failed bounds
validation.

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

Helps: #3405
2024-06-28 14:24:39 +01:00
Philip Withnall
616749c1e2
2.81.0
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-06-28 12:25:56 +01:00
Philip Withnall
935dd89622 Merge branch '3401-gir-scanner-deps' into 'main'
introspection: Add libgirepository as a dep to all generate_gir() calls

Closes #3401

See merge request GNOME/glib!4122
2024-06-27 09:14:45 +00:00
Michael Catanzaro
22c6aa9407 Merge branch 'allow-null-buffer-zero-count-output-stream-write' into 'main'
g_output_stream_write: Allow NULL buffer if count is 0

Closes #3402

See merge request GNOME/glib!4123
2024-06-26 18:57:29 +00:00
Gary Li
d64336e1a9 g_output_stream_write: Allow NULL buffer if count is 0
We currently fail a buffer != NULL assertion if buffer is NULL and count is 0. Allow this case without critical assertions.

Fixes https://gitlab.gnome.org/GNOME/glib/-/issues/3402
2024-06-26 14:18:41 -04:00
Philip Withnall
e2a36f8b05 Merge branch 'free' into 'main'
gtestutils: Free test_data when freeing a test case

See merge request GNOME/glib!4120
2024-06-26 12:45:05 +00:00
Philip Withnall
98854efa74
introspection: Add libgirepository as a dep to all generate_gir() calls
libgirepository is not needed by most of the modules, but it is needed
by the `g-ir-scanner` generated dumper program. If we don’t explicitly
include the local version of it here, Meson will implicitly link against
it anyway, and that might pull in a different version, or try to link
against a half-built local version as the build ordering dependency tree
won’t reflect this relationship.

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

Fixes: #3401
2024-06-26 12:48:32 +01:00
Philip Withnall
5deab5f0f1 Merge branch 'macros' into 'main'
RFC: gmacros: Avoid casting functions

See merge request GNOME/glib!4121
2024-06-26 11:26:35 +00:00
Akihiko Odaki
0e994ead0f gtestutils: Free test_data when freeing a test case
Commit 9dad94e7q ensured `test_data` is freed when a test is skipped,
but didn't ensure that when a whole test suite is skipped.

We are assuming the ownership of `test_data` is passed to GTestCase
with `g_test_add_data_func_full()` so free `test_data` always when
freeing a test case.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
2024-06-26 20:02:18 +09:00
Akihiko Odaki
328d996fbe gmacros: Avoid casting functions
gmacros.h casts functions to GDestroyNotify, which prevents enabling the
following hardening options in applications: -fsanitize=address
-fsanitize=cfi-icall (without -fsanitize-cfi-icall-generalize-pointers),
and -Wcast-function-type-strict.

Define another inline function that warps the original function into
GDestroyNotify.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
2024-06-26 19:59:55 +09:00
Philip Withnall
07fa7b261c Merge branch 'trashing-long-file-name' into 'main'
GLocalFile: support trashing long file name

See merge request GNOME/glib!3697
2024-06-19 10:11:50 +00:00
rong wang
478127e074 GLocalFile: support trashing long file name
When the file name is too long (for example, more than 238 bytes on
ext4), this will cause the creation of the .trashinfo file to fail.
Let's shorten the .trashinfo filename in this case, after all the
trash specification only requires unique filenames (see
`Contents of a trash directory` section in
https://specifications.freedesktop.org/trash-spec/trashspec-latest.html).
2024-06-19 10:27:33 +01:00