Commit Graph

30556 Commits

Author SHA1 Message Date
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
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
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
Philip Withnall
fd4b61d8fb Merge branch 'wip/pwithnall/file-load-contents-i386' into 'main'
tests: Improve 4GB file loading test to work on i386

See merge request GNOME/glib!4117
2024-06-18 19:53:38 +00:00
Philip Withnall
cce6ca8c88
tests: Improve 4GB file loading test to work on i386
This should test the limits of loading 4GB files on i386 platforms, such
as the Hurd CI runner. On such platforms, `sizeof(size_t) == 4`.

This should fix the compiler warning from
https://gitlab.gnome.org/GNOME/glib/-/jobs/3989442:
```
../gio/tests/file.c:2931:51: error: left shift count >= width of type [-Werror=shift-count-overflow]
 2931 | static const gsize testfile_4gb_size = ((gsize) 1 << 32) + (1 << 16); /* 4GB + a bit */
      |                                                   ^~
cc1: all warnings being treated as errors
```

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-06-18 12:58:51 +01:00
Michael Catanzaro
496d8a164c Merge branch 'wip/otte/large-files' into 'main'
Handle files >4GB in g_file_load_contents()

Closes #3397

See merge request GNOME/glib!3373
2024-06-17 15:44:37 +00:00
Philip Withnall
1f838b061b
tests: Skip >4GB file tests unless running tests in slow/thorough mode
They take too long to include in a normal test run. They’ll still be run
in CI once a week as part of our scheduled slow test job.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-06-17 13:03:08 +01:00
Philip Withnall
a8be45204e tests: Fix a typo in a test name in the file test suite
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-06-17 13:03:05 +01:00
Benjamin Otte
e74294473e tests: Add test for >4GB reads with g_file_load_contents()
The tests - one for sync, one for async - create a sparse file for
this purpose, so this should be cheap on the fileystem.

Of course, the test still allocates >4GB of memory for the data that it
returns from g_file_load_contents(), I hope the CI test runners can deal
with that.
2024-06-17 13:03:05 +01:00
Benjamin Otte
77c35415a3 tests: Use g_clear_fd() 2024-06-17 13:03:05 +01:00
Benjamin Otte
e8254f14fd gfile: Rewrite load_contents() to use realloc()
GByteArray is limited to 4GB in size and the current code silently
overflows when that happens.

Replace both load_contents() and load_contents_async() implementations
with a version that uses realloc() and gsize to maintain the array.
2024-06-17 13:03:05 +01:00
Benjamin Otte
a57f0b190a array: Abort on overflow
This is a precautionary assert that will probably only trigger on 32bit
OSes. But g_nearest_pow() can overflow.
2024-06-17 11:51:00 +01:00
Michael Catanzaro
bce073dca1 Merge branch 'notification-test-asserts' into 'main'
tests: Use g_assert_*() rather than g_assert() in notification tests

See merge request GNOME/glib!4115
2024-06-14 22:29:09 +00:00
Philip Withnall
577ad8d07d
tests: Use g_assert_*() rather than g_assert() in notification tests
It won’t get compiled out with `G_DISABLE_ASSERT`.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-06-14 23:05:25 +01:00
Martin
9fa69b3a72 Update Slovenian translation 2024-06-14 20:10:04 +00:00
Philip Withnall
e89e0a342c Merge branch '3254-construct-property-deprecation' into 'main'
gobject: Don’t warn when setting deprecated construct property defaults

Closes #3254

See merge request GNOME/glib!3942
2024-06-14 19:16:42 +00:00
Philip Withnall
a78c80e9ab Merge branch 'win32-localfileinfo-fixes' into 'main'
glocalfileinfo: A few fixes on win32

See merge request GNOME/glib!4114
2024-06-14 17:25:13 +00:00
Philip Withnall
df5aa217e4
gobject: Don’t warn when setting deprecated construct property defaults
The default values for construct properties always have to be set, even
if those properties are deprecated. The code to do that is in GLib, and
not under the control of the user (unless they completely override the
`constructor` vfunc, which is not recommended). So don’t emit a warning
for that if `G_ENABLE_DIAGNOSTICS` is enabled.

In particular, this fixes deprecation warnings being emitted for
properties of a parent class when chaining up with a custom constructor,
even when none of the child class code mentions the deprecated property.

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

Fixes: #3254
2024-06-14 17:53:37 +01:00
Luca Bacci
2cf0ce39aa glocalfileinfo: Use stat results only if stat succeeded 2024-06-14 17:42:39 +01:00