16768 Commits

Author SHA1 Message Date
Emmanuele Bassi
43ed42e4d5 Add atomically reference counted memory
Similar to g_ref_*, we have g_atomic_ref_*, which will ensure that all
reference counting operations are performed atomically.

Not every data structure needs atomic reference counting; for instance,
most of the GTK+ data structures operate under the assumption that only
one thread can access windowing system data. Since atomic operations are
not cheap, forcing them on every data structure can negatively affect
performance.

The underlying reference counting mechanism for g_atomic_ref_* is the
same as for g_ref_*, but instead of adding a "make this atomic" boolean
flag to the g_ref_* API we prefer being explicit, and add the "atomic"
qualifier directly into the API, to avoid misunderstandings.
2016-11-15 12:40:41 +00:00
Emmanuele Bassi
b49fd4c730 Add reference counted memory
A common pattern inside GLib, and the rest of the G* platform, consists
of allocating some structure with a reference count. Usually, this
structure is hidden, but in some cases reference counting can be bolted
on top of public plain old data structures, or on top of existing C
types, like a char array.

If the data structure that needs reference counting is public we usually
"box" it into a reference counted container. Unfortunately, since we're
limited by the C syntax, this either means constantly de-referencing the
contents of the box in order to get to the real type; or it means
duplicating the whole API dealing with that type.

The alternative is to make the "box" transparent, and hide the reference
counting mechanism behind the pointer to the contents, using the same
mechanism GObject employs to handle private instance data.

This allows us to allocate some memory for a data structure and use it
in the same way we normally would with memory allocated via the system
allocator. Whenever we need to operate on the reference count of the
data, though, we reach behind the pointer and access the real reference
counted box.
2016-11-15 12:40:34 +00:00
Emmanuele Bassi
7bf84d880f Port GDateTime to g_ref_counter_* 2016-11-15 11:49:07 +00:00
Emmanuele Bassi
2c27b98677 Port GAsyncQueue to g_ref_counter_* 2016-11-15 11:33:26 +00:00
Emmanuele Bassi
e5e2c07a8d Port GArray and GPtrArray to g_ref_counter_*
Instead of using atomic operations directly, use an atomic reference
counter.
2016-11-15 11:26:44 +00:00
Emmanuele Bassi
76e18ab5b3 Add reference counter API
Various data structures provided by GLib are reference counted, these
days, and each one of them implements its own reference counter. This
also happens to data structures implemented on top of GLib ones.

GLib should provide some common API to deal with reference counting —
both atomic and non-atomic. This way we keep the code duplication at a
minimum, while also providing guarantees of how reference counting
should work.
2016-11-15 11:19:18 +00:00
Ross Burton
a8c6e306bd glib-gettextize: respect @datadir@ instead of assuming $prefix/share
https://bugzilla.gnome.org/show_bug.cgi?id=774421
2016-11-14 18:33:32 +00:00
Ross Burton
11a6e19e07 tests/refcount/signals: don't shadow rand()
rand() is in the C library and some C libraries (uclibc, for example) end up
with rand() defined even if stdlib.h isn't included explicitly.

https://bugzilla.gnome.org/show_bug.cgi?id=774421
2016-11-14 18:33:32 +00:00
Philip Withnall
9f4d5e8b91 gsignal: Mention handler ID type in signal connection macro docs
gtk-doc doesn’t make the return type clear, because these are macros
rather than inline functions, so people often have to guess at the
return type (or look it up from g_signal_connect_closure(), but that’s
hard work).

Make it clear that the return type for handler IDs is gulong. While
there, fix the capitalisation of ‘id’ to ‘ID’ in a few places.
2016-11-10 16:12:41 +00:00
Philip Withnall
3f12ca57c4 gtestutils: Clarify that g_assert() should not have side effects
g_assert() gets completely compiled out if G_DISABLE_ASSERT is defined,
so applications should not depend on side effects of the expression in
an assertion.
2016-11-09 16:52:21 +00:00
Mohammed Sadiq
4607bd377f gmain: fix g_main_context_check declaration
g_main_context_check is defined as a function returning gboolean.
It should be declared as such.

https://bugzilla.gnome.org/show_bug.cgi?id=774086
2016-11-09 10:38:20 -05:00
Philip Withnall
d8acf9b956 gmacros: Clarify G_GNUC_[PRINTF|SCANF] macro documentation
Clarify that the arguments parameter can be zero if the function being
annotated just accepts a string format argument, and no varargs for it
(for example, if it takes a va_list of arguments instead).

Add some links to the GCC documentation for the `format` attribute.
2016-11-09 15:11:53 +00:00
Philip Withnall
1f36189aa5 gapplication: Fix a typo in a documentation comment
It’s ‘D-Bus’, not ‘DBus’, ‘DBUS’, ‘D Bus’, ‘Dee Buss’ or ‘the bus’.
2016-11-08 21:13:45 +00:00
Tim-Philipp Müller
932eb87083 glib-mkenums: fix variable declaration
Inconsequential, just sync up declaration with actual
name of variable to avoid confusion.

https://bugzilla.gnome.org/show_bug.cgi?id=770175
2016-11-08 15:21:03 +00:00
Patrick Griffis
d1763d899c Revert "glib-compile-resources: Output depfile in same directory as target"
This reverts commit 9006940de604a8d72bf9198a0e4b20cd113c4b11.
2016-11-05 22:15:53 -04:00
Patrick Griffis
9006940de6 glib-compile-resources: Output depfile in same directory as target
https://bugzilla.gnome.org/show_bug.cgi?id=773437
2016-11-02 17:44:23 -04:00
Chun-wei Fan
acd07cfc55 build/Makefile-newvs.am: Do not hardcode the baseline MSVC version
This is to allow specification of the baseline Visual Studio 201x version as
the baseline version may not be 2010 anymore as we begin to require C99
features that will require Visual Studio 2013 or later.
2016-11-01 15:39:16 +08:00
Chun-wei Fan
1f33b36cd1 build/Makefile.msvcproj: Add rules for MSVC 2013 to be the baseline version
We are starting to require C99 features that can only be supported in
Visual Studio 2013 and later, so we need to prepare rules for Visual Studio
2013 to be our baseline version for Visual Studio builds, so that we can
move the templates from Visual Studio 2010 to Visual Studio 2013.

As this strives to be a shared autotools module between projects, there is
duplication at this point, though, because we still want to support
2008~2012 for projects that do not yet require the C99 features and depends
on GLib-2.50.x/GTK+-3.22.x or earlier.
2016-11-01 15:39:16 +08:00
Aurimas Černius
e37a3c9473 Updated Lithuanian translaton 2016-10-30 13:20:15 +02:00
Mario Blättermann
37e818696f Update German translation 2016-10-29 13:44:44 +00:00
Marek Černocký
e6990cf4ae Updated Czech translation 2016-10-28 17:59:21 +02:00
Anders Jonsson
316232211b Update Swedish translation 2016-10-27 11:49:21 +00:00
Daniel Mustieles
dadb774898 Update Spanish translation 2016-10-25 15:22:42 +00:00
Matthias Clasen
b408278446 2.51.0 2.51.0 2016-10-24 10:22:38 -04:00
Matthias Clasen
2d56c49b10 Partially revert 10c490cdfe3ae042f747bd00f787492e2bdb7ed0
This commit broke some tests, and I don't have the time
to fix up all the expected output, so I'll revert the changes
to the affected files for now.

This needs to be redone with the necessary test fixes.
2016-10-24 10:21:59 -04:00
Daniel Macks
b56ededeec Document "-s" commandline flag for running test suites
https://bugzilla.gnome.org/show_bug.cgi?id=769135
2016-10-24 06:12:56 -04:00
Timm Bäder
f14389bec9 gapplication: Properly free the option_strings
option_strings gets set in g_application_add_main_option, so it can
contain elements independent from packed_options.

https://bugzilla.gnome.org/show_bug.cgi?id=773303
2016-10-24 06:10:57 -04:00
Hannes Müller
7470cc902b Avoid warning for G_PARAM_DEPRECATED with GCC 6 [-Wpedantic]
Refer to https://bugzilla.gnome.org/show_bug.cgi?id=767882
Related to GCC https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71803
2016-10-24 06:10:14 -04:00
Patrick Griffis
243c1b7e84 glib-compile-resources: Fix creating depfile with other targets
Follow up to 87d76a5a9c from bug 745754

https://bugzilla.gnome.org/show_bug.cgi?id=773344
2016-10-24 01:41:57 -04:00
Muhammet Kara
feeb039e70 Update Turkish translation 2016-10-23 20:06:44 +00:00
Gábor Kelemen
427ecb7502 Update Hungarian translation 2016-10-23 17:42:48 +00:00
Aurimas Černius
67e3a89d97 Updated Lithuanian translation 2016-10-23 14:27:49 +03:00
Claude Paroz
043208f614 Updated French translation 2016-10-21 10:27:36 +02:00
Sebastian Dröge
2a970e33a4 gresolver: Make get_default() thread-safe
https://bugzilla.gnome.org/show_bug.cgi?id=773262
2016-10-20 17:49:44 +03:00
Chun-wei Fan
c718bf881a build/win32/vs10/Makefile.am: Delete glib-install.props's on re-generation
This is to ensure the changes that is applied to glib-install.props here is
applied to the projects files in build/win32/vs[11|12|14] as well.
2016-10-19 15:31:24 +08:00
Chun-wei Fan
70040b4094 build/: Force MSVC project file generation on Makefile.am changes
Make the Makefile.am targets for generating the Visual Studio projects re-generate the
project files and the header listings whenever the Makefile.am's that include
build/Makefile.msvcproj changes, so that whenever a source/header is added, they will
be reflected in the projects and in the property sheets that are used to copy the
headers.

Also ensure that these are applied to the vs11, vs12 and vs14 projects when this
happens, as they are copied and processed from the Visual Studio 2010 projects.
2016-10-19 14:54:12 +08:00
Piotr Drąg
610a0a3f75 Update Polish translation 2016-10-18 22:40:25 +02:00
Kjartan Maraas
b41212a28d Updated Norwegian bokmål translation from Kjartan Maraas. 2016-10-16 19:38:11 +02:00
Aurimas Černius
55ce274dc9 Updated Lithuanian translation 2016-10-15 22:10:28 +03:00
Simon McVittie
6ab68e9668 Bump version to 2.51.0
So that we don't get "deprecation" (availability) warnings for
new functionality of GLib 2.51/2.52.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Colin Walters <walters@verbum.org>
2016-10-13 21:53:27 +01:00
Simon McVittie
c46dbd4752 Make g_utf8_make_valid public
Based on a patch by Simon van der Linden and rebased onto current GLib,
with improved documentation loosely based on Telepathy's
tp_utf8_make_valid().

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=591603
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=610969
Reviewed-by: Colin Walters <walters@verbum.org>
2016-10-13 21:52:42 +01:00
Edward E
01bfa16986 W32: pass correct (with offset) argc to protect_wargv
https://bugzilla.gnome.org/show_bug.cgi?id=772054
2016-10-13 14:10:57 +00:00
Benedikt M. Thoma
ee4c618f20 Update German translation 2016-10-13 09:22:54 +00:00
Damien Lespiau
c494c3028c gfile: G_FILE_MONITOR_WATCH_MOVES was actually introduced in 2.46
I'm guessing the developments were done in 2.44 but the patches landed
after the 2.45.0 bump without an update to the Since tags.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=769630
2016-10-12 19:18:05 -04:00
Matthias Clasen
540374c80e Document --output option of glib-mkenums 2016-10-12 18:01:37 -04:00
Tim-Philipp Müller
ac54db2ee2 glib-mkenums: add --output option to write output to a file
https://bugzilla.gnome.org/show_bug.cgi?id=770175
2016-10-12 17:05:07 -04:00
Matthias Clasen
c382da4819 Document new option of glib-genmarshal 2016-10-12 15:56:49 -04:00
Tim-Philipp Müller
0fbc98097f glib-genmarshal: add --output option to write output to a file
https://bugzilla.gnome.org/show_bug.cgi?id=770175
2016-10-12 15:56:49 -04:00
Piotr Drąg
10c490cdfe Use Unicode in translatable strings
See https://developer.gnome.org/hig/stable/typography.html

https://bugzilla.gnome.org/show_bug.cgi?id=772221
2016-10-12 21:30:42 +02:00
Ondrej Holy
da509fd67d gunixmounts: Add g_unix_mount_for() support
GLib has g_unix_mount_at (mount_path) already, let's add g_unix_mount_for
(file_path) for whatever path. GLib already contains some private code
for such task. Let's make this code public. This functionality is needed
by GVfs (see Bug 771431) in order to avoid copy-and-pasting.

https://bugzilla.gnome.org/show_bug.cgi?id=772160
2016-10-12 15:13:00 -04:00