platform/upstream/glib.git
14 years agomerge GVariantType
Ryan Lortie [Mon, 25 Jan 2010 16:26:27 +0000 (11:26 -0500)]
merge GVariantType

GVariantType is the type system for GVariant

14 years agoMove the boxed private type data to TypeNode
Benjamin Otte [Wed, 20 Jan 2010 20:06:30 +0000 (21:06 +0100)]
Move the boxed private type data to TypeNode

This way we don't need to keep a custom array that we bsearch on (and
that isn't threadsafe) but can use the gtype.c machinery that is
threadsafe. And fast, too!

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

14 years agoPut calls to registered copy/free functions into separate functions
Benjamin Otte [Wed, 20 Jan 2010 19:02:24 +0000 (20:02 +0100)]
Put calls to registered copy/free functions into separate functions

This eases cleaning up these functions.

One optimization in value_set_internal() was lost in the process. It
shouldn't cause too many issues when all is said and done.

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

14 years agoUpdated Bulgarian translation
Alexander Shopov [Mon, 25 Jan 2010 09:58:18 +0000 (11:58 +0200)]
Updated Bulgarian translation

14 years agoTypo fixes
Matthias Clasen [Mon, 25 Jan 2010 01:50:51 +0000 (20:50 -0500)]
Typo fixes

14 years agoUpdated Bengali translation
Jamil Ahmed [Sun, 24 Jan 2010 16:54:12 +0000 (22:54 +0600)]
Updated Bengali translation

14 years agogio: .gitignore gio-querymodules
Ryan Lortie [Sat, 23 Jan 2010 06:07:46 +0000 (01:07 -0500)]
gio: .gitignore gio-querymodules

14 years agoBug 448888 - don't init g_slice for always-malloc
Ryan Lortie [Sat, 23 Jan 2010 01:18:58 +0000 (20:18 -0500)]
Bug 448888 - don't init g_slice for always-malloc

14 years ago[tests] Remove C++ style comments
Alberto Garcia [Wed, 20 Jan 2010 17:53:08 +0000 (18:53 +0100)]
[tests] Remove C++ style comments

It makes the IBM XL C Compiler (the 'native' non-free compiler
on the AIX 5.3 and 6.1 platform) stop compiling with syntax error.

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

Signed-off-by: Javier Jardón <jjardon@gnome.org>
14 years ago[configure] More -lresolv-checking-fixing
Dan Winship [Mon, 18 Jan 2010 14:46:19 +0000 (09:46 -0500)]
[configure] More -lresolv-checking-fixing

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

14 years agoEnsure values are memset to 0 when calling G_VALUE_COLLECT_INIT()
Benjamin Otte [Mon, 18 Jan 2010 13:03:16 +0000 (14:03 +0100)]
Ensure values are memset to 0 when calling G_VALUE_COLLECT_INIT()

The reason we need to enforce this is that the GTypeValueTable
documentation explicitly states that memory is memset to 0 when the
value_init function is called.

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

14 years ago[configure] Fix res_query check for OS X
Dan Winship [Wed, 13 Jan 2010 16:24:28 +0000 (11:24 -0500)]
[configure] Fix res_query check for OS X

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

14 years agoUpgrade to version 0.8 of libasyncns
Javier Jardón [Tue, 17 Nov 2009 20:15:15 +0000 (21:15 +0100)]
Upgrade to version 0.8 of libasyncns

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

14 years agoUpdated Basque language
Inaki Larranaga Murgoitio [Wed, 13 Jan 2010 16:29:39 +0000 (17:29 +0100)]
Updated Basque language

14 years agoUpdated Norwegian bokmål translation
Kjartan Maraas [Wed, 13 Jan 2010 15:20:56 +0000 (16:20 +0100)]
Updated Norwegian bokmål translation

14 years agoproperly abort instead of looping infinitely
Sven Herzberg [Wed, 13 Jan 2010 13:47:58 +0000 (14:47 +0100)]
properly abort instead of looping infinitely

Fixes: Bug 568760 - nautilus freezes due to a bug in garray.c:322

* glib/garray.c: increase the size of potential return values by
  using an unsigned result; properly check if we still handle valid size
  proposals, return the original request if there's no usable size left
* tests/array-test.c: reproduce the error condition of the bug report

14 years agoFix docs in previous commit
Alexander Larsson [Wed, 13 Jan 2010 09:25:52 +0000 (10:25 +0100)]
Fix docs in previous commit

14 years agoRemove additional thread support in performance test
Alexander Larsson [Wed, 13 Jan 2010 09:24:09 +0000 (10:24 +0100)]
Remove additional thread support in performance test

We're always enabling threads now so this is not needed.

14 years agogobject: Use new G_VALUE_COLLECT_INIT variant
Edward Hervey [Wed, 2 Dec 2009 10:50:02 +0000 (11:50 +0100)]
gobject: Use new G_VALUE_COLLECT_INIT variant

Makes g_object_new_valist 20% to 30% faster (against 2321e5a).

Profiled against the pan newsreader which uses a variant of simple
and complex object creation.

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

14 years agogsignal: Use new G_VALUE_COLLECT_INIT variant
Edward Hervey [Wed, 2 Dec 2009 10:49:49 +0000 (11:49 +0100)]
gsignal: Use new G_VALUE_COLLECT_INIT variant

Makes g_signal_emit_valist from 15% to 20% faster.

Results reported from profiling the pan newsreader which uses a variant
of simple and complex signal emissions (i.e no args or various args)

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

14 years agogvaluecollector: Add variant of G_VALUE_COLLECT for most used cases.
Edward Hervey [Wed, 2 Dec 2009 10:48:18 +0000 (11:48 +0100)]
gvaluecollector: Add variant of G_VALUE_COLLECT for most used cases.

Most callers of G_VALUE_COLLECT previously had to initialize the GValue
and then G_VALUE_COLLECT would still go through a cleanup phase.

The new variant allows passing a unitialized GValue along with a GType
and speedup the initialization/collection process.

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

14 years agoMention thread changes in NEWS
Alexander Larsson [Tue, 12 Jan 2010 20:55:15 +0000 (21:55 +0100)]
Mention thread changes in NEWS

14 years agoUse unconditional thread calls in gio and gobject
Alexander Larsson [Tue, 12 Jan 2010 20:28:23 +0000 (21:28 +0100)]
Use unconditional thread calls in gio and gobject

If threads are available we always enable threads in gobject, which
means all gio/gobject code can enable the unconditional thread calls.

This is a minor optimization since we avoid a bunch of unnecessary
is-threads-enabled checks.

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

14 years agoMake thread calls unconditional if G_THREADS_MANDATORY is set
Alexander Larsson [Tue, 12 Jan 2010 20:26:52 +0000 (21:26 +0100)]
Make thread calls unconditional if G_THREADS_MANDATORY is set

Since gobject now initialized threads unconditionally if threads are
available it makes no sense to have each thread operation
conditionally check if threads are enables, so allow this to be avoided.

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

14 years agoEnable threads in g_type_init()
Alexander Larsson [Tue, 12 Jan 2010 20:22:45 +0000 (21:22 +0100)]
Enable threads in g_type_init()

This means threads will be supported for all gobject libraries/applications
and initialized early enough to not cause any problems.

This solves the problem of libraries needing threadsafety. Previosly
they just called g_threads_init() anyway, which often works but sometimes
breaks in unexpected ways.

See this thread for more details:
http://mail.gnome.org/archives/gtk-devel-list/2009-November/msg00208.html

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

14 years agoRelax g_thread_init() requirements
Alexander Larsson [Tue, 12 Jan 2010 20:16:59 +0000 (21:16 +0100)]
Relax g_thread_init() requirements

We now allow g_thread_init(NULL) to be called after other glib calls (with
some minor limitations). This is mainly a documentation change as this
really was already possible.

We also allow g_thread_init() to be called multiple times. Only the
first call actually initializes the threading system, further calls
are ignored (but print a warning if the argument is not NULL).

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

14 years agoImplement lazy loading of fam plugin
Alexander Larsson [Tue, 12 Jan 2010 12:09:10 +0000 (13:09 +0100)]
Implement lazy loading of fam plugin

14 years agoAdd gio-querymodule program
Alexander Larsson [Tue, 12 Jan 2010 12:11:22 +0000 (13:11 +0100)]
Add gio-querymodule program

This can be used to update the giomodule.cache file in directories with
giomodules in order to support lazy module loading.

14 years agoUse the new lazy loading of modules for gio modules
Alexander Larsson [Tue, 12 Jan 2010 10:57:17 +0000 (11:57 +0100)]
Use the new lazy loading of modules for gio modules

14 years agoAdd support for lazy loading of giomodules
Alexander Larsson [Tue, 12 Jan 2010 10:36:12 +0000 (11:36 +0100)]
Add support for lazy loading of giomodules

Adds an optional query method to giomodules which should return all
possible extension points the module may implement.

Then we add a new call g_io_modules_scan_all_in_directory() similar to
g_io_modules_load_all_in_directory() that doesn't return all loaded
modules, thus allowing lazy loading.

In g_io_modules_scan_all_in_directory we look for an optional
giomodule.cache file and use the information in that to avoid
loading modules until they are needed for an extension point.

14 years agoFlush gcharsetconverter when needed.
Ignacio Casal Quinteiro [Tue, 12 Jan 2010 11:54:49 +0000 (12:54 +0100)]
Flush gcharsetconverter when needed.

This patch fixes bug #605686.

14 years agog_object_new(): skip varargs for simple calls
Kamal Mostafa [Sat, 2 Jan 2010 04:36:28 +0000 (20:36 -0800)]
g_object_new(): skip varargs for simple calls

g_object_new() avoids useless varargs processing for simple calls with no
properties.  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=605883

14 years agoUpdated Swedish translation
Daniel Nylander [Sat, 9 Jan 2010 15:43:35 +0000 (16:43 +0100)]
Updated Swedish translation

14 years agoUpdated Spanish translation
Jorge González [Thu, 7 Jan 2010 19:26:48 +0000 (20:26 +0100)]
Updated Spanish translation

14 years agoUse GCC atomic builtin operations.
Hiroyuki Ikezoe [Thu, 7 Jan 2010 10:33:39 +0000 (19:33 +0900)]
Use GCC atomic builtin operations.

Fix for bug #531902.

14 years agodocs: switch to xi:inbclude for the content to save some more seconds
Stefan Kost [Thu, 7 Jan 2010 08:47:20 +0000 (10:47 +0200)]
docs: switch to xi:inbclude for the content to save some more seconds

14 years agodocs: switch to xi:inbclude for the content to save some more seconds
Stefan Kost [Thu, 7 Jan 2010 09:31:24 +0000 (11:31 +0200)]
docs: switch to xi:inbclude for the content to save some more seconds

14 years agodocs: use xi:include to use the generated indexes if available.
Stefan Kost [Thu, 7 Jan 2010 08:22:14 +0000 (10:22 +0200)]
docs: use xi:include to use the generated indexes if available.

This works transparantly for people with new enough gtk-doc (>=1.11) and
significantly improves the build time.

14 years agoDon't do pointer arithmetics on void*
Haakon Sporsheim [Thu, 7 Jan 2010 08:12:13 +0000 (10:12 +0200)]
Don't do pointer arithmetics on void*

For instance MSVC doesn't like that.

Signed-off-by: Tor Lillqvist <tml@iki.fi>
14 years agoAdd properties to GMemoryOutputStream
Matthias Clasen [Wed, 6 Jan 2010 22:37:11 +0000 (17:37 -0500)]
Add properties to GMemoryOutputStream

This helps bindings. Patch by Krzysztof Kosiński. See bug 605733.

14 years agoFix the filename roundtrip check
Matthias Clasen [Wed, 6 Jan 2010 18:23:48 +0000 (13:23 -0500)]
Fix the filename roundtrip check

The check was always failing because the code was comparing
the wrong strings. Reported in bug 605977.

14 years agoGUnixFDMessage: fix a small typo in an extra check
Ryan Lortie [Tue, 5 Jan 2010 23:49:23 +0000 (18:49 -0500)]
GUnixFDMessage: fix a small typo in an extra check

In the deserialise function, GUnixFDMessage was comparing 'level' to
both SOL_SOCKET and SCM_RIGHTS.  It is correct to compare 'type' to
SCM_RIGHTS.  The code passed tests only because:

1) it's a "should always be OK" double-check

2) SOL_SOCKET and SCM_RIGHTS, by chance, both have the value '1' on
   Linux systems.

14 years agoFix a memleak
Matthias Clasen [Tue, 5 Jan 2010 23:18:55 +0000 (18:18 -0500)]
Fix a memleak

An early exit in expand_application_parameters forgot to free
a GString. Reported by Steve Grubb.

14 years agoFix an off-by-one error
Matthias Clasen [Tue, 5 Jan 2010 23:16:37 +0000 (18:16 -0500)]
Fix an off-by-one error

Reported by Steve Grubb.

14 years agoUpdate Ukrainian translation
Maxim V. Dziumanenko [Tue, 5 Jan 2010 14:53:01 +0000 (16:53 +0200)]
Update Ukrainian translation

14 years agoAvoid compilation warning from MSVC
Haakon Sporsheim [Tue, 5 Jan 2010 09:28:43 +0000 (11:28 +0200)]
Avoid compilation warning from MSVC

Signed-off-by: Tor Lillqvist <tml@iki.fi>
14 years agoFix a typo in the docs
Piotr Eljasiak [Mon, 4 Jan 2010 23:48:02 +0000 (00:48 +0100)]
Fix a typo in the docs

14 years agoAdded asturian language
Xandru Armesto Fernandez [Mon, 4 Jan 2010 21:10:47 +0000 (22:10 +0100)]
Added asturian language

14 years agoUpdated asturian translations
Xandru Armesto Fernandez [Mon, 4 Jan 2010 21:10:29 +0000 (22:10 +0100)]
Updated asturian translations

14 years ago[docs] Fix @title usage in "Enumeration and flags types" section
Javier Jardón [Sun, 3 Jan 2010 22:34:26 +0000 (23:34 +0100)]
[docs] Fix @title usage in "Enumeration and flags types" section

14 years agoDocument that various functions ref GSimpleAsyncResult
Matthias Clasen [Sun, 3 Jan 2010 00:50:55 +0000 (19:50 -0500)]
Document that various functions ref GSimpleAsyncResult

Patch by Will Thompson, see bug 602417.

14 years agoDocument that _finish() must be called at most once.
Matthias Clasen [Sun, 3 Jan 2010 00:44:26 +0000 (19:44 -0500)]
Document that _finish() must be called at most once.

The patch was provided by Will Thompson in bug 602417.

14 years agoFix a typo
Matthias Clasen [Sun, 3 Jan 2010 00:35:08 +0000 (19:35 -0500)]
Fix a typo

...and some whitespace fixes. Pointed out by Will Thompson in
bug 602417.

14 years agoUpdated .gitignore files
Pablo Castellano [Sun, 3 Jan 2010 00:23:53 +0000 (01:23 +0100)]
Updated .gitignore files

14 years agoDon't return anything from a void function
Matthias Clasen [Sun, 3 Jan 2010 00:17:37 +0000 (19:17 -0500)]
Don't return anything from a void function

Sun C doesn't like it. Reported in bug 604824.

14 years agoUpdating Estonian translation
Ivar Smolin [Sat, 2 Jan 2010 20:42:01 +0000 (22:42 +0200)]
Updating Estonian translation

14 years agoBug 604457 - gutf8inputstream.c: increasing unknown size pointer
Paolo Borelli [Thu, 31 Dec 2009 11:42:41 +0000 (12:42 +0100)]
Bug 604457 -  gutf8inputstream.c: increasing unknown size pointer

14 years ago[docs] Fix 'Deprecated' tag on some win32 functions
Javier Jardón [Mon, 28 Dec 2009 01:04:01 +0000 (02:04 +0100)]
[docs] Fix 'Deprecated' tag on some win32 functions

Fix g_win32_get_package_installation_directory() and
g_win32_get_package_installation_subdirectory_utf8()

14 years ago[docs] Fix 'Deprecated' tag in g_date_set_time()
Javier Jardón [Thu, 24 Dec 2009 04:05:21 +0000 (05:05 +0100)]
[docs] Fix 'Deprecated' tag in g_date_set_time()

14 years agoSupport storing assertion messages into core dump
Martin Pitt [Tue, 22 Dec 2009 10:09:20 +0000 (11:09 +0100)]
Support storing assertion messages into core dump

Crash interception/debugging systems like Apport or ABRT capture core dumps for
later crash analysis. However, if a program exits with an assertion failure,
the core dump is not useful since the assertion message is only printed to
stderr.

glibc recently got a patch which stores the message of assert() into the
__abort_msg global variable.
(http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=48dcd0ba)
That works fine for programs which actually use the standard C assert() macro.

This patch adds the same functionality for glib's assertion tests. If we are
building against a glibc which already has __abort_msg (2.11 and later, or
backported above git commit), use that, otherwise put it into our own field
__glib_assert_msg.

Usage:

  $ cat test.c
  #include <glib.h>

  int main() {
      g_assert(1 < 0);
      return 0;
  }

  $ ./test
  **ERROR:test.c:5:main: assertion failed: (1 < 0)
  Aborted (Core dumped)

  $ gdb --batch --ex 'print (char*) __abort_msg' ./test core
  [...]
  $1 = 0x93bf028 "ERROR:test.c:5:main: assertion failed: (1 < 0)"

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

14 years agoUpdated Thai translation.
Theppitak Karoonboonyanan [Tue, 22 Dec 2009 16:39:21 +0000 (23:39 +0700)]
Updated Thai translation.

14 years agoInstall gio-unix-2.0.pc only on Unix
Tor Lillqvist [Mon, 21 Dec 2009 22:46:12 +0000 (00:46 +0200)]
Install gio-unix-2.0.pc only on Unix

The gio-unix-2.0 headers are installed only on Unix anyway.

14 years ago[docs] Fix G_DEFINE_INTERFACE "Since" tag
Javier Jardón [Mon, 21 Dec 2009 22:04:43 +0000 (23:04 +0100)]
[docs] Fix G_DEFINE_INTERFACE "Since" tag

This symbol is available since Glib 2.24, not 2.20.

14 years ago[gobject] Grow gvalue transform array exponentially
Behdad Esfahbod [Sat, 6 Jun 2009 03:28:17 +0000 (23:28 -0400)]
[gobject] Grow gvalue transform array exponentially

Bug 589176 - Grow gvalue transform array exponentially

Reduces about 180 realloc calls during g_type_init().

14 years agoBump version
Matthias Clasen [Mon, 21 Dec 2009 15:56:03 +0000 (10:56 -0500)]
Bump version

14 years ago2.23.1 2.23.1
Matthias Clasen [Mon, 21 Dec 2009 15:54:11 +0000 (10:54 -0500)]
2.23.1

14 years agoUpdate release notes
Matthias Clasen [Mon, 21 Dec 2009 15:02:07 +0000 (10:02 -0500)]
Update release notes

14 years agoUpdates
Matthias Clasen [Mon, 21 Dec 2009 14:59:24 +0000 (09:59 -0500)]
Updates

14 years agoUpdated Welsh translation
Iestyn Pryce [Mon, 21 Dec 2009 14:57:15 +0000 (14:57 +0000)]
Updated Welsh translation

14 years agoRemove comment as well
Matthias Clasen [Mon, 21 Dec 2009 14:21:54 +0000 (09:21 -0500)]
Remove comment as well

14 years agoRevert the g_set_prgname change
Matthias Clasen [Mon, 21 Dec 2009 14:11:23 +0000 (09:11 -0500)]
Revert the g_set_prgname change

This change breaks our API and causes warnings from essentially all applications.
See bug 563627.

14 years agoUpdated Welsh translation
Iestyn Pryce [Sun, 20 Dec 2009 12:03:19 +0000 (12:03 +0000)]
Updated Welsh translation

14 years agoBug 501166 - Warning message says IA__g_type_init instead of g_type_init
Behdad Esfahbod [Sat, 19 Dec 2009 10:46:19 +0000 (11:46 +0100)]
Bug 501166 - Warning message says IA__g_type_init instead of g_type_init

14 years agoG_DEFINE_INTERFACE_* documentation is not generated
Javier Jardón [Tue, 15 Dec 2009 20:15:41 +0000 (21:15 +0100)]
G_DEFINE_INTERFACE_* documentation is not generated

Fix the documentation: Replace "@Since:" with "Since:"

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

14 years agoFix typo "Performace" in gtester-report Details pop-up window
Kamal Mostafa [Fri, 18 Dec 2009 18:34:05 +0000 (10:34 -0800)]
Fix typo "Performace" in gtester-report Details pop-up window

14 years agoupdate .gitignores
Dan Winship [Fri, 18 Dec 2009 11:27:36 +0000 (12:27 +0100)]
update .gitignores

14 years agoFix UnixWare build by not using "sa_len" as a variable name
Dan Winship [Fri, 18 Dec 2009 09:26:09 +0000 (10:26 +0100)]
Fix UnixWare build by not using "sa_len" as a variable name

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

14 years agovi.po: updated Vietnamese translation
Nguyễn Thái Ngọc Duy [Fri, 18 Dec 2009 08:00:54 +0000 (15:00 +0700)]
vi.po: updated Vietnamese translation

14 years agoRemove wrong file imports, only gio/gio.h should be included
Gian Mario Tagliaretti [Tue, 15 Dec 2009 22:49:18 +0000 (23:49 +0100)]
Remove wrong file imports, only gio/gio.h should be included

14 years agoDon't check for headers we include unconditionally
Tor Lillqvist [Mon, 14 Dec 2009 01:16:55 +0000 (03:16 +0200)]
Don't check for headers we include unconditionally

Don't bother checking for winsock2.h and mswsock.h in the configure
script as we include these unconditionally when building for Windows
anyway.

14 years agoCheck for <wspiapi.h> and use it if present
Tor Lillqvist [Mon, 14 Dec 2009 01:09:46 +0000 (03:09 +0200)]
Check for <wspiapi.h> and use it if present

Should help bug #603527 if glib is built in an environment that has
<wspiapi.h>.

14 years agoAdd unit tests for some more methods
Paolo Borelli [Tue, 8 Dec 2009 16:05:09 +0000 (17:05 +0100)]
Add unit tests for some more methods

14 years agoRemove default implementation of async filter steam ops
Alexander Larsson [Mon, 7 Dec 2009 21:00:51 +0000 (22:00 +0100)]
Remove default implementation of async filter steam ops

Not only is the default implementation broken (it causes infinite recursion
as seen in bug #603982), but its also worthless. If we just fall back on the
default stream operations we automatically get async version based on
the sync filter stream operations, which is what we want.

14 years agoFix makefile typo
Paolo Borelli [Sun, 6 Dec 2009 14:45:37 +0000 (15:45 +0100)]
Fix makefile typo

14 years agoAdd GUtf8InputStream - Bug #603270
Paolo Borelli [Sat, 28 Nov 2009 22:39:48 +0000 (23:39 +0100)]
Add GUtf8InputStream - Bug #603270

Add a filter input stream that performs utf8 validation.

14 years agoUpdated Hebrew translation
Yair Hershkovitz [Sun, 6 Dec 2009 06:41:49 +0000 (08:41 +0200)]
Updated Hebrew translation

14 years agoUpdated Norwegian bokmål translation.
Kjartan Maraas [Fri, 4 Dec 2009 20:18:32 +0000 (21:18 +0100)]
Updated Norwegian bokmål translation.

14 years agoInitialise variable in g_time_val_from_iso8601()
Matthew W. S. Bell [Wed, 2 Dec 2009 00:48:30 +0000 (01:48 +0100)]
Initialise variable in g_time_val_from_iso8601()

The function does not initialise the struct tm,
giving it improper values of tm_isdst making the result
an hour out.

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

14 years ago[gio] Remove some commas at end of enumerator list
Jeroen Nijhof [Tue, 1 Dec 2009 18:42:09 +0000 (19:42 +0100)]
[gio] Remove some commas at end of enumerator list

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

14 years agoUse G_DEFINE_INTERFACE in gio
Dan Winship [Tue, 1 Dec 2009 09:42:58 +0000 (10:42 +0100)]
Use G_DEFINE_INTERFACE in gio

Note: Since we export types with Iface in the name rather than
Interface we have to use some typedefs to make this work. New
interfaces should probably use Interface as the public name.

14 years agoAdd G_DEFINE_INTERFACE
Dan Winship [Tue, 1 Dec 2009 09:33:12 +0000 (10:33 +0100)]
Add G_DEFINE_INTERFACE

This is a macro similar to G_DEFINE_TYPE but it lets you define
interfaces rather than classes.

For discussion, see bug #320482

14 years agoAdd byteswap macros for gsize/gssize.
Ryan Lortie [Tue, 1 Dec 2009 00:50:21 +0000 (19:50 -0500)]
Add byteswap macros for gsize/gssize.

14 years agoOnly add object to list new objects when it has a custom constructor
Benjamin Otte [Thu, 8 Oct 2009 18:01:15 +0000 (20:01 +0200)]
Only add object to list new objects when it has a custom constructor

This works around the need to take a custom mutex twice and add the
object to a GSList of objects that are currently in construction for the
common case. Only when the constructor is overwritten do we use the
previous behavior and allow things like singleton objects.

The only slightly incompatible change is that previously, it was ok to
call g_object_set() on construct-only properties while the object was
initialized. This will now fail. If that behavior is needed, setting a
custom constructor that just chains up will reenable this functionality.

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

14 years agoRemove more read locks usage
Benjamin Otte [Thu, 24 Sep 2009 13:04:20 +0000 (15:04 +0200)]
Remove more read locks usage

g_type_default_interface_peek() and g_type_value_table_peek() don't need
to acquire read locks anymore when they test the refcount instead of
node->data.

14 years agoMake g_type_class_peek[_static]() not take any locks
Benjamin Otte [Thu, 24 Sep 2009 12:57:19 +0000 (14:57 +0200)]
Make g_type_class_peek[_static]() not take any locks

By replacing a check for node->data with a check for NODE_REFCOUNT(node)
these functions don't require a read lock anymore.

14 years agogobject/tests: New test for dynamic class creation/destruction
Edward Hervey [Thu, 24 Sep 2009 11:19:46 +0000 (13:19 +0200)]
gobject/tests: New test for dynamic class creation/destruction

Starts 100 threads which ref/unref a dynamic class to test the recent
changes to class init/uninit.

14 years agoAdd type_data_ref_U() and use it in g_type_class_ref()
Edward Hervey [Thu, 24 Sep 2009 10:42:49 +0000 (12:42 +0200)]
Add type_data_ref_U() and use it in g_type_class_ref()

The function returns TRUE if the type was previously initialized and can
be easily reused. It returns FALSE and does not take a reference if the
type is not referenced yet.

g_type_class_ref() uses this to avoid taking locks in the common path,
which speeds up object creation a lot - in particular in multithreaded
applications.

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

14 years agoReorganize g_type_class_ref()
Edward Hervey [Thu, 24 Sep 2009 10:29:25 +0000 (12:29 +0200)]
Reorganize g_type_class_ref()

Moves the first check out of the lock, as it's not required.

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

14 years agoMake ClassData->init_state atomic
Benjamin Otte [Thu, 24 Sep 2009 10:26:53 +0000 (12:26 +0200)]
Make ClassData->init_state atomic

This is necessary to make g_type_class_ref() lockless.

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

Also includes fix for:

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

14 years agoMake type_data_unref_U not take locks in the common case
Edward Hervey [Thu, 24 Sep 2009 09:45:13 +0000 (11:45 +0200)]
Make type_data_unref_U not take locks in the common case

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