platform/upstream/glib.git
9 years agoGSettings: fix check for delaying backend subscription
Lars Uebernickel [Fri, 28 Nov 2014 12:06:04 +0000 (13:06 +0100)]
GSettings: fix check for delaying backend subscription

g_settings_has_signal_handlers() checks whether any of the signals has
pending handlers. However, g_signal_has_handler_pending() matches on
exact detail, even when passing 0. Subscribing to one of GSettings'
signals with a detail will fail this check and never connect to the
backend.

Fix this by calling has_handler_pending() with the key as detail as
well.

https://bugzilla.gnome.org/show_bug.cgi?id=740848

9 years agoUse the new g_strv_contains
Matthias Clasen [Thu, 27 Nov 2014 14:12:42 +0000 (09:12 -0500)]
Use the new g_strv_contains

No need to keep our own copy of this in the testsuite.

9 years agogstrfuncs: Add g_strv_contains()
Xavier Claessens [Mon, 15 Apr 2013 12:54:31 +0000 (14:54 +0200)]
gstrfuncs: Add g_strv_contains()

Includes unit tests.

https://bugzilla.gnome.org/show_bug.cgi?id=685880

9 years ago2.43.1 2.43.1 upstream/2.43.1
Matthias Clasen [Mon, 24 Nov 2014 18:07:22 +0000 (13:07 -0500)]
2.43.1

9 years agogio/tests: add a socket-listener test
Dan Winship [Sun, 23 Nov 2014 17:33:01 +0000 (12:33 -0500)]
gio/tests: add a socket-listener test

Add a GSocketListener test program. Currently the only test is a
regression test for bug 712570 (based on a standalone bug reproducer
provided by Ross Lagerwall).

9 years agogio: Prevent hang when finalizing GThreadedSocketService
Ross Lagerwall [Tue, 28 Oct 2014 21:16:50 +0000 (21:16 +0000)]
gio: Prevent hang when finalizing GThreadedSocketService

If all users of a GThreadedSocketService release their references to the
service while a connection thread is running, the thread function will
release the last reference to the service which causes the finalize to
deadlock waiting for all threads to finish (because it's called from the
thread function).

To fix this, don't wait for all threads to finish in the service's
finalize method.  Since the threads hold a reference to the service,
finalize should only be called when all threads are finished running (or
have unrefed the service and are about to finish).

https://bugzilla.gnome.org/show_bug.cgi?id=712570

9 years agogparam: Make the documentation clearer for CONSTRUCT_ONLY properties
Jasper St. Pierre [Tue, 28 Oct 2014 20:45:34 +0000 (13:45 -0700)]
gparam: Make the documentation clearer for CONSTRUCT_ONLY properties

It's not that the properly will only be set on construction, it's that
it *can* only be set upon construction.

9 years agogio: Implement g_win32_app_info_launch_uris for windows.
Michael Henning [Wed, 5 Nov 2014 06:20:25 +0000 (01:20 -0500)]
gio: Implement g_win32_app_info_launch_uris for windows.

9 years agogio: Implement g_app_info_get_default_for_uri_scheme for windows.
Michael Henning [Wed, 5 Nov 2014 06:18:25 +0000 (01:18 -0500)]
gio: Implement g_app_info_get_default_for_uri_scheme for windows.

9 years agoGTlsClientConnection: loosen the semantics of "use-ssl3"
Dan Winship [Sat, 22 Nov 2014 15:54:41 +0000 (10:54 -0500)]
GTlsClientConnection: loosen the semantics of "use-ssl3"

If SSL 3.0 has been disabled (at the host, application, or library
level), then the "use-ssl3" property becomes a "fail-immediately"
property.

Despite the name, the point of the property wasn't really specifically
to use SSL 3.0; it was to allow fallback when talking to broken
servers that do SSL/TLS negotiation incorrectly and break when they
see unexpectedly-high version numbers. So if we can't fall back to SSL
3.0, then the "use-ssl3" property should fall back to TLS 1.0 instead
(since there are hosts that will reject a TLS 1.2 handshake, but
accept a TLS 1.0 one).

glib-networking is being updated to implement that behavior, so update
the documentation here.

https://bugzilla.gnome.org/show_bug.cgi?id=738633

10 years agoGSettings Registry Backend: Init cache_lock Earlier
Chun-wei Fan [Thu, 20 Nov 2014 10:34:21 +0000 (18:34 +0800)]
GSettings Registry Backend: Init cache_lock Earlier

In commit 8ff5668, we are subscribing the GSettings backend later, but this
meant that we need to initialize cache_lock earlier, as we might try to
use that lock before a change notification is issued to subscribe the
backend, which would then cause an access violation if we are trying to
read GSettings values, as that lock is used to access the Windows Registry.

Initialize cache_lock once we initialize the GSettings Registry backend,
and delete it upon finalize, so that g_settings_read_from_backend() can
proceed normally, even if the GSettings backend is not yet subscribed.

https://bugzilla.gnome.org/show_bug.cgi?id=740413

10 years agogsettingsschema: Print the string that failed to parse
Christian Persch [Tue, 23 Sep 2014 08:46:53 +0000 (10:46 +0200)]
gsettingsschema: Print the string that failed to parse

When parsing a translated value fails, print the actual string that
failed to parse instead of the 'domain\004string' untranslated string.

https://bugzilla.gnome.org/show_bug.cgi?id=737150
https://bugzilla.gnome.org/show_bug.cgi?id=737160

10 years agoGSettings: delay backend subscription
Ryan Lortie [Sat, 26 Jul 2014 15:16:37 +0000 (17:16 +0200)]
GSettings: delay backend subscription

GSettings objects begin watching for changes as soon as they are created
in order that they can emit the "changed" signal.

In the case of dconf, if we want to be able to emit the changed signal,
we need to go on the bus and add some match rules.  This requires
creating the dconf helper thread and also requires initialising GDBus
(which creates another thread).

Some users of GSettings are never interested in the "changed" signal.
One of these users is the glib-networking code that gets run every time
a new network connection is created.

Some users are reporting that they are annoyed that simply establishing
a network connection would spawn two extra threads and create a D-Bus
connection.

In order to avoid doing unnecessary work for these simple uses, delay
the subscription until we know that we will actually need to do it.

We do this in a simple way, using a simple argument: in order for the
user to care that a value changed then they must have:

 1) watched for a change signal; and then
 2) actually read a value

If the user didn't actually read a value then they cannot possibly be
interested in if the value changed or not (since they never knew the old
value to begin with and therefore would be unable to observe that it
ever changed, since they have nothing to compare the new value with).

This really is a behaviour change, however, and it does impact at least
one user: the 'monitor' functionality of the GSettings commandline tool,
which is interested in reporting changes without ever having known the
original values.  We add a workaround to the commandline tool in order
to ensure that it continues to function properly.

It's also possible to argue that it is completely valid to have read a
value and _then_ established a change signal connection under the
(correct) assumption that it would not have been possible to miss a
change signal by virtue of not having returned to the mainloop.
Although this argument is true, this pattern is extremely non-idiomatic,
and the problem is easily avoided by doing things in the usual order.

We never really talked about change notification in the overview
documentation for GSettings, so it seems like now is a good time to add
some discussion, including the new rules for when one can expect change
signals to be emitted.

https://bugzilla.gnome.org/show_bug.cgi?id=733791

10 years agoglib: Improve documentation for g_strfreev()
Alberto Ruiz [Tue, 18 Nov 2014 14:43:41 +0000 (14:43 +0000)]
glib: Improve documentation for g_strfreev()

Fixes #740309.

10 years agoUpdated Norwegian bokmål translation.
Kjartan Maraas [Sat, 15 Nov 2014 17:31:40 +0000 (18:31 +0100)]
Updated Norwegian bokmål translation.

10 years agogapplication: enable --help when app has options
Lars Uebernickel [Sat, 15 Nov 2014 09:30:41 +0000 (10:30 +0100)]
gapplication: enable --help when app has options

This should already work according to the documentation, but doesn't
because main_options is consumed before the check in
g_application_parse_command_line().

Fix by moving the check for main_options up.

https://bugzilla.gnome.org/show_bug.cgi?id=740157

10 years agodocs: Add missing opening parenthesis
David King [Thu, 13 Nov 2014 17:49:31 +0000 (17:49 +0000)]
docs: Add missing opening parenthesis

https://mail.gnome.org/archives/gnome-web-list/2014-November/msg00003.html

10 years agodocs: Update GParamFlags docs.
Volker Sobek [Fri, 23 May 2014 20:45:30 +0000 (22:45 +0200)]
docs: Update GParamFlags docs.

Remove reference to G_PARAM_READWRITE from GParamFlags' description,
since commit 6c395244a5db added G_PARAM_READWRITE to GParamFlags.

https://bugzilla.gnome.org/show_bug.cgi?id=726037

10 years agoSimplify code that uses g_queue_insert_before() and insert_after()
Sébastien Wilmet [Wed, 5 Nov 2014 13:00:45 +0000 (14:00 +0100)]
Simplify code that uses g_queue_insert_before() and insert_after()

g_queue_insert_before() and g_queue_insert_after() now accept a NULL
sibling.

https://bugzilla.gnome.org/show_bug.cgi?id=736620

10 years agoGQueue: accept a NULL sibling for insert_before() and insert_after()
Sébastien Wilmet [Wed, 5 Nov 2014 13:03:30 +0000 (14:03 +0100)]
GQueue: accept a NULL sibling for insert_before() and insert_after()

It simplifies a little bit some code that inserts data relative to a
GList location, that might be NULL for the tail of the queue. A NULL
sibling is probably less useful for insert_after(), so it's more for
consistency with insert_before().

https://bugzilla.gnome.org/show_bug.cgi?id=736620

10 years agognetworking.h.win32: Move "#undef interface"
Chun-wei Fan [Mon, 3 Nov 2014 02:09:14 +0000 (10:09 +0800)]
gnetworking.h.win32: Move "#undef interface"

This is a follow-up commit due to the fix in gnetworking.h.in in commit
7103484 (gnetworking.h.in: move "#undef interface").

10 years agognetworking.h.in: move "#undef interface"
Dan Winship [Sun, 2 Nov 2014 14:36:14 +0000 (09:36 -0500)]
gnetworking.h.in: move "#undef interface"

The win32 headers do:

  #define interface struct

which is just evil and breaks other code that assumes it can use
"interface" as a variable name. gnetworking.h was supposed to be doing
"#undef interface" after including the win headers, but it did it too
soon, resulting in it getting redefined by a later include. Fix this.

https://bugzilla.gnome.org/show_bug.cgi?id=738551

10 years agoGTlsCertificate: fix loading of bad certificate chains
Dan Winship [Tue, 28 Oct 2014 19:08:43 +0000 (15:08 -0400)]
GTlsCertificate: fix loading of bad certificate chains

g_tls_certificate_new_from_file() was only loading the complete chain
if it was fully valid, but we only meant to be validating that it
formed an actual chain (since the caller may be planning to ignore
other errors).

https://bugzilla.gnome.org/show_bug.cgi?id=729739

10 years agodoc: Clarify documentation regarding g_file_replace and etags
Ross Lagerwall [Mon, 8 Sep 2014 20:09:08 +0000 (21:09 +0100)]
doc: Clarify documentation regarding g_file_replace and etags

Clarify that with g_file_replace, a non-NULL etag is only checked if the
file already exists.

https://bugzilla.gnome.org/show_bug.cgi?id=736286

10 years agogio: Prevent hang writing to a large GMemoryBuffer
Ross Lagerwall [Wed, 29 Oct 2014 22:12:39 +0000 (22:12 +0000)]
gio: Prevent hang writing to a large GMemoryBuffer

Fix a hang due to overflow by using unsigned numbers and explicitly
checking if the number overflows to zero.  This also fixes the previous
logic which assigned an int which may be negative to an unsigned number
resulting in sign extension and strange results.

Use gsize rather than int to allow for large buffers on 64 bit machines.

https://bugzilla.gnome.org/show_bug.cgi?id=727988

10 years agogio: Prevent hang writing to a large GMemoryOutputStream
Ross Lagerwall [Wed, 29 Oct 2014 22:05:32 +0000 (22:05 +0000)]
gio: Prevent hang writing to a large GMemoryOutputStream

Fix a hang due to overflow by using unsigned numbers and explicitly
checking if the number overflows to zero.  This also fixes the previous
logic which assigned an int which may be negative to an unsigned number
resulting in sign extension and strange results.

Use gsize rather than int to allow for large streams on 64 bit machines.

https://bugzilla.gnome.org/show_bug.cgi?id=727988

10 years agogmain: don't pass the same fd to g_poll() multiple times
Dan Winship [Tue, 13 Mar 2012 15:43:38 +0000 (11:43 -0400)]
gmain: don't pass the same fd to g_poll() multiple times

If a given fd is being polled by multiple sources, we used to pass it
multiple times to g_poll(), which is technically illegal (and not
supported by the select()-based fallback implementation of poll() in
gpoll.c), and also made it more likely that we'd exceed the maximum
number of pollfds.

Fix it to merge together "duplicate" GPollFDs. The easiest way to do
this involves re-sorting context->poll_records into fd order rather
than priority order. This means we now have to walk the entire pollrec
list for every g_main_context_query() and g_main_context_poll(),
rather than only walking the list up to the current max_priority.
However, this will only have a noticeable effect if you have tons of
GPollFDs, and we're already too slow in that case anyway because of
other O(n) operations that happen too often. So this shouldn't change
much (and the new poll API will eventually let us be cleverer).

Remove some win32-specific code which did the same thing (but was
O(n^2)).

https://bugzilla.gnome.org/show_bug.cgi?id=11059

10 years agoGDBusInterfaceVTable: clarify memory handling for the method() virtual function
Owen W. Taylor [Thu, 9 Oct 2014 18:40:45 +0000 (14:40 -0400)]
GDBusInterfaceVTable: clarify memory handling for the method() virtual function

There are two consistent interpretations that could be taken for memory
handling of the 'invocation' parameter passed to the method_call() virtual
function of GDBusInterfaceVTable

 - A reference is passed (transfer full) to the method_call() virtual function,
   and that reference is then passed (transfer full) to the return_value/error
   functions on GDBusMethodInvocation.
 - An internal reference is retained from the point where method_call() is called
   until the return_value/error function is called.

Since the return_value/error functions were already marked (transfer full),
we use the first interpretation, annotate the invocation parameter of
method call as (transfer full) and describe this in the documentation, along
with the idea that you are always supposed to call one of the return_value/error
functions.

See bug 738122 for the leak this caused in GJS.

https://bugzilla.gnome.org/show_bug.cgi?id=738259

10 years agoUpdates for 2.43.0 2.43.0
Matthias Clasen [Mon, 27 Oct 2014 21:32:06 +0000 (17:32 -0400)]
Updates for 2.43.0

10 years agogcancellable: Clarify that GSources hold references to GCancellables
Philip Withnall [Wed, 24 Sep 2014 13:06:02 +0000 (14:06 +0100)]
gcancellable: Clarify that GSources hold references to GCancellables

Clarify in the documentation that a GSource created with
g_cancellable_source_new() must be explicitly removed from its
GMainContext before the GCancellable can be finalised.

This could be a common way of leaking GCancellables.

https://bugzilla.gnome.org/show_bug.cgi?id=737259

10 years agoGuard g_inet_address_mask_equal against invalid input
Erik van Pienbroek [Thu, 17 Jul 2014 16:37:04 +0000 (18:37 +0200)]
Guard g_inet_address_mask_equal against invalid input

https://bugzilla.gnome.org/show_bug.cgi?id=733338

10 years agogio/tests/tls-certificates: fix
Dan Winship [Wed, 15 Oct 2014 21:49:09 +0000 (17:49 -0400)]
gio/tests/tls-certificates: fix

da053e34 broke the tls-certificates test by requiring the backend to
implement g_tls_certificate_verify() (which the test TLS backend
didn't). Add a trivial implementation to make the test pass again;
we'll need something more complicated when we add tests that are
supposed to get errors.

10 years agogfile: g_file_equal (x, x) is TRUE
Benjamin Otte [Sun, 12 Oct 2014 00:21:08 +0000 (02:21 +0200)]
gfile: g_file_equal (x, x) is TRUE

So shortcut it.

I wrote this patch less as a performance optimization and more as a
clarification, so that people looking at the code can be assured of this
invariant.

https://bugzilla.gnome.org/show_bug.cgi?id=738374

10 years agoAdd tests for {read,write}_all_async()
Ryan Lortie [Tue, 21 Oct 2014 15:30:47 +0000 (11:30 -0400)]
Add tests for {read,write}_all_async()

https://bugzilla.gnome.org/show_bug.cgi?id=737451

10 years agodocs: explain inconsistency of _{read,write}_all()
Ryan Lortie [Mon, 29 Sep 2014 15:50:05 +0000 (11:50 -0400)]
docs: explain inconsistency of _{read,write}_all()

These functions are inconsistent with our normal conventions in that
they set an output variable to a specified value, even in the case that
an error is thrown.

Document very clearly that this should be considered exceptional.

https://bugzilla.gnome.org/show_bug.cgi?id=737451

10 years agoAdd g_output_stream_write_all_async()
Ryan Lortie [Mon, 29 Sep 2014 15:44:09 +0000 (11:44 -0400)]
Add g_output_stream_write_all_async()

Similar to the previous patch, this commit contains a minor violation of
normal API conventions.  See the explanation in the previous commit
message.

Heavily based on a patch from Ignacio Casal Quinteiro.

https://bugzilla.gnome.org/show_bug.cgi?id=737451

10 years agoAdd g_input_stream_read_all_async()
Ryan Lortie [Mon, 29 Sep 2014 15:40:46 +0000 (11:40 -0400)]
Add g_input_stream_read_all_async()

Add an asynchronous version of _read_all().

This API is not fully consistent with the normal expectations of a
non-asynchronous version.  Consistency between the sync and async version is
probably more important.

The API will still bind correctly, but access to all functionality will
not be available: specifically, in the case of an error, higher level
languages will be unable to determine how many bytes were successfully
read before the error.  Most users will probably not want to use this
information anyway, so this is OK -- and if they do need the
information, then they can just write the loop for themselves.

Heavily based on a patch from Ignacio Casal Quinteiro.

https://bugzilla.gnome.org/show_bug.cgi?id=737451

10 years agoFix another ancient docs typo
Michael Catanzaro [Tue, 21 Oct 2014 00:05:26 +0000 (19:05 -0500)]
Fix another ancient docs typo

10 years agoGApplication: ignore --help if not handling args
Ryan Lortie [Sat, 4 Oct 2014 16:47:33 +0000 (12:47 -0400)]
GApplication: ignore --help if not handling args

If the user didn't register any arguments for parsing, also ignore
--help.  This fixes a regression in meld.

https://bugzilla.gnome.org/show_bug.cgi?id=737869

10 years agoGOption: stop calling getopt()
Ryan Lortie [Mon, 20 Oct 2014 12:28:10 +0000 (14:28 +0200)]
GOption: stop calling getopt()

We called getopt() to try to find out of the platform on which we are
running defaults to strict POSIX-style argument handling (ie: flags
following the first filename are considered as further filenames rather
than flags).

This is the default case on BSDs, for example.  It is also the case on
GNU systems with the POSIXLY_CORRECT environment variable set.

Unfortunately many of our tools rely on being able to accept commandline
arguments in the non-strict ordering and the code for making these calls
is spread widely (for example in Makefile fragments invoking some of our
build tools).

For this reason we need to revert the getopt() check and only enable
strict POSIX mode in the case that the application explicitly opts into
it using the _set_strict_posix() API.

This also fixs a failure to build on Windows due to missing getopt().

https://bugzilla.gnome.org/show_bug.cgi?id=723160

10 years agoGHashTable: small docs fix
Ryan Lortie [Fri, 17 Oct 2014 12:38:43 +0000 (14:38 +0200)]
GHashTable: small docs fix

We use g_hash_table_unref() here, not g_object_unref().

10 years agoAllow hash table destroy notifiers to remove other entries
Benjamin Berg [Fri, 17 Oct 2014 12:16:22 +0000 (14:16 +0200)]
Allow hash table destroy notifiers to remove other entries

With this patch it is fine to call g_hash_table_lookup and
g_hash_table_remove from destroy notification functions. Before
this could lead to an infinitie loop if g_hash_table_remove_all
was used.

https://bugzilla.gnome.org/show_bug.cgi?id=695082

10 years agodocs: Add missing get_type() reference to gio.types
Emmanuele Bassi [Fri, 17 Oct 2014 10:14:10 +0000 (11:14 +0100)]
docs: Add missing get_type() reference to gio.types

GSubprocessLauncher is a GObject, so we need to tell gtk-doc to inspect
it.

https://bugzilla.gnome.org/show_bug.cgi?id=738675

10 years agoGOption: add strict posix mode
Ryan Lortie [Mon, 27 Jan 2014 15:42:23 +0000 (15:42 +0000)]
GOption: add strict posix mode

Add a "posixly correct" mode to GOption to stop parsing arguments as
soon as the first non-option argument is encountered.

We determine the default value on the basis of duplicating the behaviour
of the system getopt() implementation (which we directly check the
behaviour of at runtime).  On GNU systems this allows the user to modify
our behaviour using POSIXLY_CORRECT.

The user can change the value by g_option_context_set_strict_posix(),
which might be useful for some usecases of GOptionContext (as mentioned
in the doc string of this new function).

https://bugzilla.gnome.org/show_bug.cgi?id=723160

10 years agoGApplication: Plug a memory leak
Matthias Clasen [Wed, 15 Oct 2014 03:22:14 +0000 (23:22 -0400)]
GApplication: Plug a memory leak

We were not freeing resource_path.

10 years agogdesktopappinfo: Fix copy/paste typo from e24e89b
Jasper St. Pierre [Wed, 15 Oct 2014 02:14:01 +0000 (19:14 -0700)]
gdesktopappinfo: Fix copy/paste typo from e24e89b

Commit e24e89b accidentally ironically introduced a typo when replacing
the code with symbolic contents. Specifically, "Added Associations" was
replaced with "Default Applications" when reading defaults.list, giving
a warning about the file containing a "Default Applications" group.

If this was intended, it should have not been lumped in with a cleanup.

10 years agogfile: Clarify docs
Benjamin Otte [Sat, 11 Oct 2014 23:57:02 +0000 (01:57 +0200)]
gfile: Clarify docs

Clarify corner cases that were unclear while reviewing a GTK patch.

10 years agoBump version to 2.43.0
Benjamin Otte [Sat, 11 Oct 2014 23:29:27 +0000 (01:29 +0200)]
Bump version to 2.43.0

We have new API.

10 years agosignal: Keep only one list of emissions
Benjamin Otte [Sun, 7 Sep 2014 03:28:56 +0000 (05:28 +0200)]
signal: Keep only one list of emissions

There is no need to keep 2 lists.

This simplifies the code and gets rid of the only user inside glib of
G_HAVE_GROWING_STACK.

https://bugzilla.gnome.org/show_bug.cgi?id=736284

10 years agoFix a return_if_fail confusion
Matthias Clasen [Sat, 11 Oct 2014 19:53:13 +0000 (15:53 -0400)]
Fix a return_if_fail confusion

This slipped through my editing of the patch.

10 years agoAdd simple instance count facility
Owen W. Taylor [Thu, 9 Oct 2014 20:38:10 +0000 (16:38 -0400)]
Add simple instance count facility

Add GOBJECT_DEBUG=instance-count which enables internal accounting
of the number of instances of each GType, and g_type_get_instance_count()
to retrieve the result.

https://bugzilla.gnome.org/show_bug.cgi?id=354457

10 years agoUpdated Bulgarian translation
Krasimir Chonov [Sat, 11 Oct 2014 05:17:10 +0000 (08:17 +0300)]
Updated Bulgarian translation

10 years agoClarify g_propagate_error docs
Matthias Clasen [Fri, 10 Oct 2014 18:17:56 +0000 (14:17 -0400)]
Clarify g_propagate_error docs

I just ran into a bug that was caused by having src being a
persistent GError* that was not cleared after propagating it.

10 years agoFix g_cond_timed_wait() timeout with !CLOCK_MONOTONIC
Benjamin Gilbert [Thu, 9 Oct 2014 04:07:36 +0000 (00:07 -0400)]
Fix g_cond_timed_wait() timeout with !CLOCK_MONOTONIC

g_get_monotonic_time() and g_get_real_time() now always use different
clocks, so we cannot avoid correcting for their offset.  Fixes failure
to time out on Mac OS X.

https://bugzilla.gnome.org/show_bug.cgi?id=738197

10 years agogarray: initialize allocated size in g_byte_array_new_take()
Aleksander Morgado [Wed, 8 Oct 2014 18:37:42 +0000 (20:37 +0200)]
garray: initialize allocated size in g_byte_array_new_take()

Internal allocation size (array->alloc) was being kept to 0 when a new
GByteArray was created from an already existing heap-allocated buffer.

Among other things, this was making g_byte_array_set_size() fully clear all
the buffer contents (not just the newly allocated memory) when
G_DEBUG=gc-friendly was being used...

  if (G_UNLIKELY (g_mem_gc_friendly))
    memset (array->data + array->alloc, 0, want_alloc - array->alloc);

https://bugzilla.gnome.org/show_bug.cgi?id=738170

10 years agoAdd advice on g_cancellable_reset
Matthias Clasen [Tue, 7 Oct 2014 02:41:06 +0000 (22:41 -0400)]
Add advice on g_cancellable_reset

Don't use it at home.

10 years agotlscertificate: add support for certificate chains
Aleix Conchillo Flaqué [Mon, 6 Oct 2014 17:19:48 +0000 (10:19 -0700)]
tlscertificate: add support for certificate chains

This patch changes the behavior of the following functions:

   g_tls_certificate_new_from_pem
   g_tls_certificate_new_from_file
   g_tls_certificate_new_from_files

If more than one certificate is found it will try to load the chain.

It is assumed that the chain will be in the right order (top-level
certificate will be the last one in the file). If the chain cannot be
verified, the first certificate in the file will be returned as before.

https://bugzilla.gnome.org/show_bug.cgi?id=729739

10 years agoFix typo
Michael Catanzaro [Sun, 5 Oct 2014 17:11:08 +0000 (12:11 -0500)]
Fix typo

10 years agoUpdated Italian translation
Milo Casagrande [Sun, 5 Oct 2014 13:07:12 +0000 (13:07 +0000)]
Updated Italian translation

10 years agoGDataSet: Add more tests
Matthias Clasen [Thu, 2 Oct 2014 18:41:01 +0000 (14:41 -0400)]
GDataSet: Add more tests

These tests exercise the NULL key fix from the previous commit.

10 years agoGDataSet: silently accept NULL/0 as keys
Matthias Clasen [Thu, 2 Oct 2014 18:40:16 +0000 (14:40 -0400)]
GDataSet: silently accept NULL/0 as keys

This used to be the behaviour before we made these functions
threadsafe; keep it that way.

https://bugzilla.gnome.org/show_bug.cgi?id=737741

10 years agogdesktopappinfo: Use symbolic names in the code
Bastien Nocera [Thu, 4 Sep 2014 13:39:19 +0000 (15:39 +0200)]
gdesktopappinfo: Use symbolic names in the code

We have #defines for the key file groups, so use them to avoid typos.

https://bugzilla.gnome.org/show_bug.cgi?id=736273

10 years agoGCredentials: Fix ABI break when adding NetBSD support
Ting-Wei Lan [Mon, 29 Sep 2014 15:25:11 +0000 (23:25 +0800)]
GCredentials: Fix ABI break when adding NetBSD support

https://bugzilla.gnome.org/show_bug.cgi?id=728256

10 years agoAdd version macros for 2.44
Ryan Lortie [Mon, 29 Sep 2014 15:39:51 +0000 (11:39 -0400)]
Add version macros for 2.44

10 years agotests: Fix some minor leaks in the unit tests
Philip Withnall [Fri, 26 Sep 2014 15:18:46 +0000 (16:18 +0100)]
tests: Fix some minor leaks in the unit tests

https://bugzilla.gnome.org/show_bug.cgi?id=737446

10 years agogslist: indentation fix
Sébastien Wilmet [Fri, 26 Sep 2014 22:04:55 +0000 (00:04 +0200)]
gslist: indentation fix

10 years agodocs: syntax highlighting for the code examples
Sébastien Wilmet [Thu, 18 Sep 2014 14:41:32 +0000 (16:41 +0200)]
docs: syntax highlighting for the code examples

In the sections Concepts, Tools and Tutorial.

https://bugzilla.gnome.org/show_bug.cgi?id=736914

10 years agogmain: Unref child sources when finalising a GSource
Philip Withnall [Thu, 25 Sep 2014 08:51:25 +0000 (09:51 +0100)]
gmain: Unref child sources when finalising a GSource

If a GSource is created, *not* attached to a GMainContext, and then has
child sources added, dropping the last reference to the parent GSource
will leak its references to its child sources. Currently, child sources
are only unreffed when g_source_destroy() is called on the parent.

https://bugzilla.gnome.org/show_bug.cgi?id=737338

10 years agogmain: Fix some signed/unsigned integer comparisons
Philip Withnall [Thu, 25 Sep 2014 08:51:00 +0000 (09:51 +0100)]
gmain: Fix some signed/unsigned integer comparisons

Just to shut gcc up.

https://bugzilla.gnome.org/show_bug.cgi?id=737338

10 years agoUpdated gujarati translations
Sweta Kothari [Wed, 24 Sep 2014 17:39:32 +0000 (23:09 +0530)]
Updated gujarati translations

10 years agoUpdated Telugu translation
Krishnababu Krothapalli [Tue, 23 Sep 2014 14:28:34 +0000 (14:28 +0000)]
Updated Telugu translation

10 years agoInclude <stdint.h> in glib/valgrind.h
Hib Eris [Mon, 22 Sep 2014 20:37:43 +0000 (22:37 +0200)]
Include <stdint.h> in glib/valgrind.h

This ensures the uintptr_t type is defined on mingw-w64.

Fixes compile error:

make[4]: Entering directory
`/home/abuild/rpmbuild/BUILD/glib-2.42.0/gobject'
  CC       libgobject_2_0_la-gtype.lo
In file included from gtype.c:24:0:
../glib/valgrind.h: In function 'VALGRIND_PRINTF':
../glib/valgrind.h:5601:4: error: unknown type name 'uintptr_t'
    uintptr_t _qzz_res;
    ^

https://bugzilla.gnome.org/show_bug.cgi?id=737143

10 years agoUpdated Bengali (India) translation
Saibal Ray [Tue, 23 Sep 2014 11:27:44 +0000 (11:27 +0000)]
Updated Bengali (India) translation

10 years agogtask: Ignore errors from g_thread_pool_push()
Philip Withnall [Fri, 19 Sep 2014 07:54:33 +0000 (08:54 +0100)]
gtask: Ignore errors from g_thread_pool_push()

g_thread_pool_push() only returns an error if it fails to spawn a new
thread. However, it unconditionally adds the task to its worker queue,
so:
 • if _any_ threads exist in the pool, the task will eventually be
   handled; and
 • if _no_ threads exist in the pool, the task will be handled if one
   is eventually successfully spawned.
If no more threads are ever spawned, the process probably has bigger
problems than a single GTask which is taking forever to complete.

https://bugzilla.gnome.org/show_bug.cgi?id=736806

10 years agogtask: Document signal handler reference counting
Philip Withnall [Wed, 17 Sep 2014 16:20:46 +0000 (17:20 +0100)]
gtask: Document signal handler reference counting

Explain why the signal handler holds a reference to the GTask, even
though that causes a reference loop at first glance.

https://bugzilla.gnome.org/show_bug.cgi?id=736806

10 years agogtask: Fix a signed/unsigned integer comparison
Philip Withnall [Wed, 17 Sep 2014 14:07:25 +0000 (15:07 +0100)]
gtask: Fix a signed/unsigned integer comparison

The GSource times assigned to creation_time are always signed.

https://bugzilla.gnome.org/show_bug.cgi?id=736806

10 years agoGLib 2.42.0 2.42.0
Ryan Lortie [Mon, 22 Sep 2014 17:15:02 +0000 (13:15 -0400)]
GLib 2.42.0

10 years agoupdate Punjabi Translation for 3.14 release
A S Alam [Sun, 21 Sep 2014 13:52:43 +0000 (08:52 -0500)]
update Punjabi Translation for 3.14 release

10 years agoUpdated Hindi translation
Rajesh Ranjan [Sun, 21 Sep 2014 04:14:06 +0000 (04:14 +0000)]
Updated Hindi translation

10 years agoRevert "update zh_CN translation"
YunQiang Su [Sun, 21 Sep 2014 02:58:01 +0000 (10:58 +0800)]
Revert "update zh_CN translation"

Add wrong po file
This reverts commit ee3d55573ff3731b2f92deb5e35decc316d53475.

10 years agoupdate zh_CN translation
YunQiang Su [Sun, 21 Sep 2014 02:30:53 +0000 (10:30 +0800)]
update zh_CN translation

10 years agoupdate zh_CN translation
Tong Hui [Sun, 21 Sep 2014 02:24:22 +0000 (10:24 +0800)]
update zh_CN translation

10 years agoUpdated Danish translation
Ask H. Larsen [Sat, 20 Sep 2014 15:19:18 +0000 (17:19 +0200)]
Updated Danish translation

10 years agogmain: improve g_source_set_name thread safety
Ryan Lortie [Tue, 16 Sep 2014 23:48:06 +0000 (19:48 -0400)]
gmain: improve g_source_set_name thread safety

Step up thread safety on g_source_set_name() to the same standard as all
other GSource functions: after we are attached to a main context, this
function should be threadsafe.

https://bugzilla.gnome.org/show_bug.cgi?id=736683

10 years agogsource: clarify restrictions on non-existant IDs
Ryan Lortie [Tue, 16 Sep 2014 23:40:30 +0000 (19:40 -0400)]
gsource: clarify restrictions on non-existant IDs

Document that one must not use the "by id" source APIs with non-existent
IDs.  The real justification behind this restriction is that the reuse
of source ids makes it unsafe to call these functions unless you're
absolutely sure that the source exists and it belongs to you.  If you
call one of these functions on a source that may already have been
removed then you run the risk of finding someone else's source (with
your reused id).

This also bails us out of a slightly tricky situation with respect to
the threadsafety of g_main_context_find_source_by_id().  The fact that
this function doesn't return a reference implies that its return value
cannot be safely accessed unless we already know for sure that a
reference is being held elsewhere (by example, by the main context
itself if we know that the source has not been removed).  The function
itself, however, performs an access to the value, which could result in
a crash.

If we mandate that it is only valid to call this function on
known-to-exist source IDs then we dodge this problem.

https://bugzilla.gnome.org/show_bug.cgi?id=736683

10 years agoGVariant: say that serialized form needs an out-of-band length
Simon McVittie [Fri, 19 Sep 2014 14:05:04 +0000 (15:05 +0100)]
GVariant: say that serialized form needs an out-of-band length

This confused me for a while, because it isn't the same as D-Bus.
Like GVariant, the D-Bus serialization needs an out-of-band
endianness and type indicator, but unlike GVariant, serialized
D-Bus objects encapsulate their own length (often by starting with
a byte-count). This does come at some redundancy cost, so I can see
why the more efficient GVariant format does this the way it does;
but it's a difference between D-Bus and GVariant that seems worth
calling out.

It's also relevant for the designers of file or message-framing
formats: with D-Bus serialization it would be feasible to say "the file
starts with a little-endian D-Bus variant, followed by...",
but in GVariant you wouldn't be able to deserialize the variant
unless you either assume that it extends to end-of-file, or have
an explicit length.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=736975
Reviewed-by: Ryan Lortie
10 years agogresource: Make extract work better
Matthias Clasen [Thu, 18 Sep 2014 19:26:36 +0000 (15:26 -0400)]
gresource: Make extract work better

When no section is specified, look for the resource to extract
in all sections - previously, we would stop after the first
section.

10 years agogresource: Use GError in more places
Matthias Clasen [Thu, 18 Sep 2014 18:51:09 +0000 (14:51 -0400)]
gresource: Use GError in more places

The API gives us an error message, lets use it.

10 years agoUpdate URLs library.gnome.org -> developer.gnome.org
Sébastien Wilmet [Thu, 18 Sep 2014 18:31:52 +0000 (20:31 +0200)]
Update URLs library.gnome.org -> developer.gnome.org

10 years agoUpdated Serbian translation
Мирослав Николић [Wed, 17 Sep 2014 19:11:50 +0000 (21:11 +0200)]
Updated Serbian translation

10 years agoUpdated Marathi Translations
Sandeep Sheshrao Shedmake [Fri, 12 Sep 2014 13:31:35 +0000 (19:01 +0530)]
Updated Marathi Translations

10 years agoGApplication:handle-local-options: document return value
Jasper St. Pierre [Tue, 16 Sep 2014 21:41:58 +0000 (15:41 -0600)]
GApplication:handle-local-options: document return value

The return value for this signal was documented in the prose, but not
properly in a Returns: stanza.  Fix that.

10 years agogoption: Add G_OPTION_FLAG_NONE
Jasper St. Pierre [Tue, 16 Sep 2014 21:39:59 +0000 (15:39 -0600)]
goption: Add G_OPTION_FLAG_NONE

This is helpful to better document code, as G_OPTION_FLAG_NONE is more
readable than 0.

10 years agog_application_add_main_option: fix type signature
Jasper St. Pierre [Tue, 16 Sep 2014 21:39:41 +0000 (15:39 -0600)]
g_application_add_main_option: fix type signature

The flags argument is a GOptionFlags so use that type instead of 'int'.

10 years agoFix some introspection warnings
Jasper St. Pierre [Tue, 16 Sep 2014 20:45:34 +0000 (14:45 -0600)]
Fix some introspection warnings

10 years ago2.41.5 2.41.5
Matthias Clasen [Mon, 15 Sep 2014 18:43:42 +0000 (14:43 -0400)]
2.41.5

10 years agogrand: Only use rand_s() when targetting Visual Studio >= 2005
Sebastian Dröge [Sat, 13 Sep 2014 13:31:03 +0000 (16:31 +0300)]
grand: Only use rand_s() when targetting Visual Studio >= 2005

It did not exist before. Fall back to the current time plus
process id on older targets. This makes GLib work again on
Windows XP.

https://bugzilla.gnome.org/show_bug.cgi?id=736458

10 years agoUpdated Tamil translation
Shantha kumar [Mon, 15 Sep 2014 13:39:11 +0000 (13:39 +0000)]
Updated Tamil translation

10 years agoUpdated Slovenian translation
Matej Urbančič [Sun, 14 Sep 2014 20:18:09 +0000 (22:18 +0200)]
Updated Slovenian translation

10 years agodocs: various small fixes
Sébastien Wilmet [Tue, 9 Sep 2014 19:20:34 +0000 (21:20 +0200)]
docs: various small fixes

For the GPtrArray example, several variables declared on the same line
is harder to read and to work with (to move, remove or comment a single
variable declaration).