Commit Graph

21146 Commits

Author SHA1 Message Date
Philip Withnall
91c1f33bb4 Merge branch 'win32-gstdio-minor' into 'master'
gstdio: minor cleanups

See merge request GNOME/glib!939
2019-07-03 11:06:01 +00:00
Philip Withnall
25c9b9bace Merge branch 'wip/desrt/gcond-errno-fixup' into 'master'
gthread: fix minor errno problem in GCond

See merge request GNOME/glib!958
2019-07-02 10:46:11 +00:00
Allison Karlitskaya
de009c1e91 tests: test g_cond_wait_until() under stress
This (dubious) testcase fails before the previous commit due to errno
being clobbered by the interrupted wait on the contended mutex.  The
previous commit fixes that.

The testcase is dubious because, in theory (as per POSIX),
g_cond_wait_until() is permitted to return TRUE at any time for any
reason, due to so-called "spurious wakeups".  Having a testcase that
asserts that the return value should be FALSE is therefore fundamentally
broken.  We do it anyway, though.

We're only really trying to test a bug in our homemade Linux/futex
implementation here, and it takes a fair amount of effort to actually
convince the old code to fail (including some system stuff which
probably isn't available on Windows).  There's also the spurious wakeup
situation mentioned above to worry about on other systems.  For all of
those reasons, this test is only enabled on Linux.
2019-07-02 12:22:16 +02:00
Allison Karlitskaya
d92f22ab47 gthread: fix minor errno problem in GCond
The return value from `g_cond_wait_until()` is calculated, based on the
value of `errno` after reacquiring the mutex.  This is a problem because
`errno` can be overwritten in the case the mutex is contended (in which
case the slow-path code will re-enter the kernel).

Perform the calculation before reacquiring the mutex.

See merge request GNOME/glib!958
2019-07-02 12:22:07 +02:00
Philip Withnall
01bc57576b Merge branch 'msvc-static-assert' into 'master'
gmacros.h: Use static_assert on MSVC if possible

See merge request GNOME/glib!964
2019-07-02 10:13:19 +00:00
Chun-wei Fan
7b91440ca4 gmacros.h: Use static_assert on MSVC if possible
Visual Studio 2010 and later support static_assert on both C and C++,
but we can only enable it for plain-C code on Visual Studio 2013 and
later, as apparently the static_assert macro implementation will carry
out something after defining certain variables.

For C++ code, we use static_assert on Visual Studio 2010 and later.
2019-07-02 11:52:52 +08:00
Emmanuele Bassi
a656555f76 Merge branch 'nirbheek/static-assert-try-2' into 'master'
gmacros: Use _Static_assert only for non-expr static assert

See merge request GNOME/glib!962
2019-07-01 13:41:58 +00:00
Nirbheek Chauhan
b169b5a45d gmacros: Use _Static_assert only for non-expr static assert
We can't actually use it inside an expression, so keep the old macro
for that. Also add a test so that this doesn't break the next time we
change it.

See: https://gitlab.gnome.org/GNOME/glib/merge_requests/955#note_542646
2019-07-01 13:41:58 +00:00
Ondrej Holy
66d2135146 Merge branch 'fix-find_enclosing_mount-documentation' into 'master'
Fixing find_enclosing_mount() documentation

Closes #453

See merge request GNOME/glib!943
2019-07-01 13:29:02 +00:00
Emmanuel Fleury
7c0b11248f Fixing find_enclosing_mount() documentation
Fix issue #453
2019-07-01 15:00:42 +02:00
Michael Catanzaro
0c9dab3671 Revert "gmacros: Use _Static_assert when C11 is available"
This reverts commit 5d14764a6b.

It broke G_STATIC_ASSERT_EXPR(). See discussion in !955.
2019-06-29 13:48:08 -05:00
David Emett
ca47f3dfd5 gmain: Fix g_main_context_prepare priority annotation 2019-06-29 14:13:16 +01:00
Philip Withnall
f7f267522d Merge branch 'wip/mjog/utf8-norm-missing-nullable-annotation' into 'master'
g_utf8_normalize: Doc comment return missing nullable annotation

See merge request GNOME/glib!953
2019-06-29 08:44:15 +00:00
Michael Gratton
af9696caad g_utf8_normalize: Doc comment return missing nullable annotation
The return value for g_utf8_normalize may be null, but the return type
is not annotated as such. This is important for language bindings for
langs that are about nullability, such as Vala and Haskell.
2019-06-29 15:06:20 +10:00
Philip Withnall
f05dbab003 gtestutils: Set coredump rlimit to 0 when calling g_test_trap_fork()
g_test_trap_fork() is deprecated, but it’s still tested in the GLib
tests. If we don’t set the coredump rlimit to 0 to prevent coredumps,
the test for it creates a coredump (which is expected). On systems with
systemd-coredump, that causes systemd-coredump to spawn and process the
coredump for a while. That slows down the tests, and results in spurious
coredump lists in the system logs.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #436
2019-06-28 13:05:07 +01:00
Philip Withnall
d55f6fb5fe gdesktopappinfo: Update calling convention for gnome-terminal
For several years now (I haven’t looked up the exact date),
`gnome-terminal` has preferred being called as `gnome-terminal
--terminal-args -- /some/other/program --its-args` rather than as
`gnome-terminal --terminal-args -x /some/other/program --its-args`.
Since 2017 it has warned about uses of `-x` (see
ad4edbd118).

So we should change our calling convention for it.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-06-28 13:05:07 +01:00
Philip Withnall
d50caa8fb9 tests: Don’t spawn test processes via the terminal in the appinfo test
There seems to be no reason to do so, and since the `appinfo` test was
ported to use `G_TEST_OPTION_ISOLATE_DIRS`, it has been causing
coredumps to accumulate. `gnome-terminal` was chosen as the terminal,
but it couldn’t find its GSettings schemas due to all the XDG
environment variables being cleared to `/dev/null` by
`G_TEST_OPTION_ISOLATE_DIRS`.

In order to keep using `gnome-terminal` as a subprocess in the tests,
we’d need to explicitly set up its environment so it can load the right
GSettings schemas. That’s a lot of work for not much gain.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #436
2019-06-28 13:05:07 +01:00
Philip Withnall
f2a979cbaa Merge branch 'adding_g_array_copy' into 'master'
Adding a function g_array_copy() to glib/garray.c

Closes #236

See merge request GNOME/glib!872
2019-06-28 11:05:49 +00:00
LRN
5e7c18fa48 Merge branch 'nirbheek/preliminary-uwp-support' into 'master'
Preliminary patches for Universal Windows Platform support

See merge request GNOME/glib!951
2019-06-27 16:08:59 +00:00
Emmanuel Fleury
46f70e9901 Adding a function g_array_copy() to glib/garray.c
Original code from Simon van der Linden

Close issue #236
2019-06-27 13:40:26 +02:00
Philip Withnall
75614a0972 Merge branch 'improve_g_ptr_array_api' into 'master'
Adding g_ptr_array_copy() and g_ptr_array_extend() to garray API

Closes #269

See merge request GNOME/glib!918
2019-06-27 11:11:41 +00:00
Emmanuel Fleury
0675703af0 Adding g_ptr_array_extend_and_steal() function to glib/garray.c 2019-06-27 12:28:32 +02:00
Philip Withnall
7b5d1c8b06 Merge branch 'nirbheek/static-assert-c11' into 'master'
gmacros: Use _Static_assert when C11 is available

See merge request GNOME/glib!955
2019-06-27 10:20:46 +00:00
Philip Withnall
ad4a2cc345 Merge branch 'manichaean-typo' into 'master'
Fix the ISO 15924 code for Manichaean

See merge request GNOME/glib!954
2019-06-27 10:13:31 +00:00
Nirbheek Chauhan
5d14764a6b gmacros: Use _Static_assert when C11 is available
The static assert message is much nicer to read, and is less likely to
be misinterpreted as a false positive.

glib is built with `-std=gnu89`, but this macro will be available to
projects that use glib with c11 or gnu11.
2019-06-27 14:18:43 +05:30
David Corbett
2fdc35aabd Fix the ISO 15924 code for Manichaean 2019-06-26 21:31:22 -04:00
Nirbheek Chauhan
be56d90fe9 gmodule: Add support for loading UWP packaged DLLs
LoadLibrary() is not available when building for the Universal Windows
Platform, which is used for shipping apps to the Windows Store on all
devices (Windows Desktop, Windows Phone, Surface, XBox, etc).

Apps are not allowed to load arbitrary DLLs from the system. The only
DLLs they can load are those that are bundled with the app as assets.
LoadPackagedLibrary() can be used to access those assets by filename.

The function is meant to be a drop-in replacement for LoadLibrary(),
and the HANDLE returned can be treated the same as before.
2019-06-26 22:59:19 +05:30
Emmanuel Fleury
43ad244df2 Adding g_ptr_array_extend() function to glib/garray.c
Related to issue #269
2019-06-26 15:35:28 +02:00
Emmanuel Fleury
86bcc5c942 Adding g_ptr_array_copy() function to glib/garray.c
Related to issue #269
2019-06-26 15:34:47 +02:00
Philip Withnall
6a291b3e84 Merge branch 'gvalue_avoid_expensive_checks' into 'master'
gvalue: Avoid expensive checks where possible

Closes #894

See merge request GNOME/glib!946
2019-06-26 11:11:22 +00:00
Philip Withnall
40f868c189 Merge branch 'wip/lantw/enable-ci-on-freebsd-12' into 'master'
ci: Enable CI on FreeBSD 12

See merge request GNOME/glib!950
2019-06-26 11:08:44 +00:00
Philip Withnall
b555a7bfdd Merge branch 'minor-docs-improvements' into 'master'
gio: Make minor docs improvements

See merge request GNOME/glib!952
2019-06-26 11:05:05 +00:00
Matthew Leeds
1f49c5aaeb gio: Make minor docs improvements
This commit changes a comment in _g_dbus_worker_do_read_cb() to be
slightly more useful. At least in my experience debugging an
intermittent unit test failure in another project, this failure
condition occurred because although g_test_dbus_down() ensures that the
session GDBusConnection has exit-on-close set to FALSE before killing
its dbus-daemon, there was still a GDBusConnection on the system bus
which hit this failed read code path, because we had
DBUS_SYSTEM_BUS_ADDRESS set to the address of the #GTestDBus daemon, to
appease libudisks.

Also, make a few other minor improvements to the docs.
2019-06-25 11:11:33 -07:00
Nirbheek Chauhan
cdc2a798cf uwp: workaround a false positive in certification of glib
It seems that the Windows App Certification Kit searches all files and
binaries for the regex '\<reg\>' (or something like it) and throws
errors if it exists. Supposedly this is for preventing apps from
running REG.EXE

https://blogs.msdn.microsoft.com/appconsult/2017/08/16/how-to-validate-if-your-application-is-compliant-with-the-windows-store-polices-windows-10-and-windows-10-s/
2019-06-25 13:09:04 +05:30
Emmanuel Fleury
cf29e37c54 Moving GCopyFunc typedef from glib/gnode.h to glib/gtypes.h 2019-06-25 09:19:49 +02:00
Emmanuel Fleury
5f3e470eb3 gvalue: Avoid expensive checks where possible
Original patch submitted by Edward Hervey

Close issue #894
2019-06-25 09:19:11 +02:00
Philip Withnall
c411d0aa6d Merge branch 'fix-mkenums-genmarshal-test-windows' into 'master'
GObject: Fix mkenums.py and genmarshal.py tests on Windows

See merge request GNOME/glib!948
2019-06-24 16:47:30 +00:00
Ting-Wei Lan
4bf3cb0e54 ci: Enable CI on FreeBSD 12 2019-06-25 00:46:52 +08:00
Philip Withnall
bc4d9d7126 Merge branch 'fix-gobject-signals-test-windows' into 'master'
gobject/tests/signals.c: Fix tests on Windows

See merge request GNOME/glib!947
2019-06-24 16:39:44 +00:00
Philip Withnall
aef72f4356 Merge branch 'wip/lantw/dont-limit-host-name-to-99-bytes' into 'master'
gutils: Don't limit the length of the host name to 99

See merge request GNOME/glib!944
2019-06-24 16:18:59 +00:00
Chun-wei Fan
75e3f92cd0 GObject: Fix mkenums.py and genmarshal.py tests on Windows
The two test scripts actually assumed some *NIX paradigms, so we need
to adapt them so that they can work on Windows as well, the changes are
namely:

-Call the glib-mkenums and glib-genmarshal Python scripts with the
 Python interpreter, not just relying on shebang lines, on Windows.
 This is because the native Windows console (cmd.exe) does not support
 shebang lines, for subprocess.run().

-Use NamedTemporaryFile with delete=False, otherwise Windows cannot find
 the temp files we need when running the tests.

-Use universal_newlines=True for subprocess.run() so that we do not need
 to worry out line ending differences on different systems.

-Make sure we are not in the temp directories we create, where the tests
 are being run, upon cleanup.  Windows does not like deleting
 directories that we are currently in.
2019-06-25 00:04:48 +08:00
Chun-wei Fan
108a8d842f gobject/tests/mkenums.py: Fix _write_rspfile()
The 'return f.name' should be in the same level as the body of
'with tempfile.NamedTemporaryFile(...) as f:'
2019-06-25 00:03:09 +08:00
Chun-wei Fan
e1e1e8ee1c gobject/tests/signals.c: Fix tests on Windows
On Windows and possibly other platforms the '%p' printf modifier does
not prefix printed values with '0x', so do not expect the warning
message to contain the '0x' prefix for the handler pointer value.
2019-06-25 00:01:02 +08:00
Ting-Wei Lan
446ba28d31 gutils: Don't limit the length of the host name to 99
It is unclear that why the size of the buffer was chosen to be 100
because the commit introduced the code didn't mention the reason.
POSIX defines _POSIX_HOST_NAME_MAX to be 255 and provides a way to
determine the suitable value with sysconf, so we should use it instead
of hard-coding a small value.
2019-06-24 23:41:40 +08:00
Philip Withnall
697dacdadf goption: Add missing (array) annotation to add_main_entries()
Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #1813
2019-06-24 15:04:19 +01:00
Philip Withnall
bd5922db09 Merge branch 'fix-stack-overrun' into 'master'
Avoid overrunning stack at the end of the varargs.

See merge request GNOME/glib!945
2019-06-24 13:27:33 +00:00
Chun-wei Fan
dbea8d5449 Fix module tests on Visual Studio builds
On Visual Studio, Meson builds modules as xxxx.dll, not libxxxx.dll when
xxxx is specified as the name for the shared_module() build directive.

This means that in the test programs if we expect for libxxxx for the
module name, the test will fail as there is no libxxxx.dll but there is
xxxx.dll.  This makes the test program look for the module files
correctly.
2019-06-24 10:58:58 +08:00
Chun-wei Fan
edc5eb98c2 gio/tests/resourceplugin.c: Ensure entry points are exported
Ensure that the entry points/symbols are exported on Visual Studio
builds as well.
2019-06-24 10:58:51 +08:00
John Ralls
633e9e0bcb Avoid overrunning stack at the end of the varargs. 2019-06-21 16:18:40 -07:00
Philip Withnall
84d0af4226 Merge branch '1811-unicode-annotations' into 'master'
gunidecomp: Add (out) annotations to g_unichar_{de,}compose()

Closes #1811

See merge request GNOME/glib!936
2019-06-21 17:02:58 +00:00