Commit Graph

1016 Commits

Author SHA1 Message Date
Emmanuele Bassi
44a8ff2f8f gobject: Improve install_properties()
Cache the parent type outside of the loop, and fix a typo in the
documentation.
2010-10-08 16:10:18 +01:00
Johan Dahlin
701ce5d201 [introspection] Add GObject annotations
These were moved in from gobject-introspection
2010-09-24 16:23:31 -03:00
Will Thompson
ba17efc396 g_strdup_value_contents(): dump GStrv more usefully
Previously, dumping a GValue holding a GStrv just yielded "((GStrv *)
0xDEADBEEF)". I think it'd be more useful to dump a Python list-style
representation of the GStrv's contents, if it's not NULL.

Fixes: <https://bugzilla.gnome.org/show_bug.cgi?id=629192>
2010-09-13 19:19:46 +01:00
Emmanuele Bassi
9cd43d7a4c gobject: Add install_properties()
Since we added g_object_notify_by_pspec(), an efficient way to install
and notify properties relies on storing the GParamSpec pointers inside
a static arrays, like we do for signal identifiers.

Instead of multiple calls to g_object_class_install_property(), we
should have a single function to take the static array of GParamSpecs
and iterate it.

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

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
2010-09-13 12:34:53 +01:00
Emmanuele Bassi
016cecb179 Revert hack that broke things badly on Windows
This should fix bug #628952.

Don't include glib/gdatasetprivate.h directly. Especially don't define
GLIB_COMPILATION when doing that, as that causes breakage on Windows
because of the variable dllimport/dllexport stuff in gtypes.h that
checks GLIB_COMPILATION. That macro really should be defined only when
compiling code that goes into the libglib DLL. Otherwise the compiler
thinks that variables that should be imported from libglib are
actually defined in the code being compiled.

Just call g_atomic_pointer_get() as such, don't bother with
G_DATALIST_GET_FLAGS.

Signed-off-by: Tor Lillqvist <tml@iki.fi>
2010-09-08 12:06:49 +03:00
Emmanuele Bassi
01a46e5c65 Hack to include glib/gdatasetprivate.h directly
The gdatasetprivate.h header includes gatomic.h directly. It all works
well in GLib, but inside GObject it will trigger the single inclusion
guard.

Since this is a private header, and it's kind of a special case, one way
to fix it is to declare GLIB_COMPILATION around it and fool the single
inclusion guard in gatomic.h into thinking we're compiling GLib and not
GObject.
2010-09-04 17:25:37 +01:00
Matthias Clasen
42080449d0 Add a note about size limits of private structures
Also add some assertions to check these limits, instead of
failing silently.  Bug 604479.
2010-09-03 18:11:08 -04:00
Matthias Clasen
c75429d0a0 Make ordering for overridden interface properties consistent
g_object_class_list_properties tries to sort the returned list of
paramspecs by 'type depth' and param_id. But all the overridden
interface properties have a param_id of 0, so they come out in
a random order.

Bug 628253.
2010-09-03 14:54:22 -04:00
Emmanuele Bassi
d31c1c863a docs: Fix up GDateTime for the GObject reference 2010-08-25 16:24:46 +01:00
Thiago Santos
e35ed21f43 datetime: Add GDateTime to the GType system
As with other GLib data types, use a GBoxed.
2010-08-24 23:41:21 +01:00
Christian Persch
71e73ffdfb Use G_DEFINE_[BOXED|POINTER]_TYPE instead of handwritten code
Now that we have convenience macros to implement boxed and pointer
types, use them.
2010-08-18 00:12:28 +02:00
Christian Persch
dc1999316d Add G_DEFINE_{BOXED,POINTER}_TYPE[_WITH_CODE]
Add convenience type definition macros for boxed and pointer types
similar to G_DEFINE_TYPE for object types. Bug #449565.
2010-08-18 00:12:22 +02:00
Matthias Clasen
e02571e93b Add bug references to some tests 2010-08-13 21:23:23 -04:00
Benjamin Otte
4ac7f8f084 notifyqueue: Dedup pspecs when adding
The previous code dedup'd when thawing and threw nasty warnings your way
if you notified too often. This can now easily be avoided.

Performance should be roughly identical, as both are O(n²).
2010-08-06 23:35:24 +02:00
Ryan Lortie
b3b7ea8e22 Replace -I with $(glib_INCLUDES) and friends
Stop using ad hoc -I in all of our Makefile.am.  Use the new variables
instead.
2010-08-06 13:10:34 -04:00
paul
9f6faaffb6 Add $(top_builddir)/glib to includes
This is required to find glibconfig.h during srcdir != builddir builds
2010-08-05 09:08:34 -04:00
Emmanuele Bassi
4bc9654c63 binding: Add a default marshaller for the closure API
The g_object_bind_property_with_closures() function should set a
marshaller if the two GClosures don't have one already. This simplifies
the caller code and avoids duplication.

We need to add a new marshaller to the gmarshal.list matching the
signature of the GBindingTransformFunc function.
2010-08-04 01:09:28 +01:00
Mark Wielaard
f8ec75620d Don't add (extra) DESTDIR to tapsetdir for tapset_DATA.
https://bugzilla.gnome.org/show_bug.cgi?id=625876
2010-08-03 08:04:58 -04:00
Emmanuele Bassi
5e1c4b18a8 docs: Clarify user_data behavior for bind_property_full() 2010-08-03 10:34:59 +01:00
Emmanuele Bassi
90f7f171e6 binding: Add G_BINDING_INVERT_BOOLEAN
Since GSettings got the same functionality and flag in commit ca3b7b75b
GBinding should also have the ability to automatically invert a boolean
value without requiring a custom transformation function.
2010-08-03 10:29:50 +01:00
Emmanuele Bassi
3be3ad61d1 binding: Add a closure-based variant of bind_property_full()
Since using the function pointer version muddles the memory management
requirements of language bindings, we should implement a GClosure-based
variant on top of g_object_bind_property_full().

https://bugzilla.gnome.org/show_bug.cgi?id=622278
2010-08-03 09:51:49 +01:00
Benjamin Otte
86040bb2eb Revert "notify: Remove unused g_object_notify_queue_clear()"
This reverts commit 0201a81f04 and adds
locks in the right place.

As this file is a public header (see last commit), we cannot just remove
functions from it.
2010-07-23 10:52:51 +02:00
Benjamin Otte
2819dd60b7 notify: Readd g_object_notify_queue_from_object()
gobjectnotifyqueue.c is a public header, so we cannot remove files from
it. (Yes you read that right, this .c file is a public header. See your
installation directory.)
2010-07-23 10:52:51 +02:00
Benjamin Otte
0483ef000a notify: Make dedup code clearer
A for loops seems easier to understand to me than gotos.
2010-07-22 21:56:21 +02:00
Olivier Crête
9026b11e38 notify: Make GObject property change notifications thread safe
Adds locking around object property change notification handling. The
notifications are only emitted after all threads have called
g_object_thaw_notify().

https://bugzilla.gnome.org/show_bug.cgi?id=166020
2010-07-22 21:56:20 +02:00
Olivier Crête
65797f7e54 notify: Remove g_object_notify_queue_from_object()
The function will not be safe with object locking in place, so we remove
it. The workaround is somewhat ugly, but it works.

https://bugzilla.gnome.org/show_bug.cgi?id=166020
2010-07-22 21:56:20 +02:00
Olivier Crête
83026092eb notify: Refactor g_object_notify_queue_thaw()
This adds better error reporting and simplifies the code for adding
thread safety.

https://bugzilla.gnome.org/show_bug.cgi?id=166020
2010-07-22 21:56:20 +02:00
Olivier Crête
0201a81f04 notify: Remove unused g_object_notify_queue_clear()
https://bugzilla.gnome.org/show_bug.cgi?id=166020
2010-07-22 21:56:20 +02:00
Benjamin Otte
a2c5bba31d notify: Emit a g_critical() instead g_return_if_fail()ing
This does not change the code semantically in any way but avoids a
return in the middle of the code.

https://bugzilla.gnome.org/show_bug.cgi?id=166020
2010-07-22 21:56:20 +02:00
Benjamin Otte
24161d9c46 binding: Cast to avoid compiler warning 2010-07-22 21:56:20 +02:00
Ryan Lortie
adde752ec5 More docs fixes
Remove the g*alias.h from the ignore lists

  Remove other old files from ignore lists

  Clean up gobject docs
2010-07-12 17:46:17 -04:00
Ryan Lortie
83d67bf2e7 move glibconfig.h to glib/ 2010-07-12 15:33:05 -04:00
Will Thompson
2504ec988e Document NULL shortcut to g_value_array_insert etc.
You can pass a NULL GValue * to any of g_value_array_insert, _prepend or
_append to add a new, uninitialized value. This is a very useful
shortcut, and it should be documented rather than left languishing in a
comment in the implementation.

Fixes Gnome bug #552363.
2010-07-08 19:30:53 -04:00
Ryan Lortie
0fc50fa5f7 gobject/: fully remove gobjectalias hacks 2010-07-07 19:40:48 -04:00
Matthias Clasen
c2997efb66 Add some more checks to the binding tests 2010-07-05 23:13:18 -04:00
Matthias Clasen
4e97c96654 Remove a redundant branch
Since the name has been interned already at pspec creation time,
we can just call g_intern_string().
2010-07-05 23:13:18 -04:00
Colin Walters
499ece9b52 [gbinding] Move argument reference out of first column
It makes gobject-introspection complain.
2010-06-25 09:26:23 -04:00
Christian Dywan
272836936e Introduce G_PARAM_DEPRECATED and G_ENABLE_DIAGNOSTIC
See https://bugzilla.gnome.org/show_bug.cgi?id=601686
2010-06-23 16:45:12 +02:00
Emmanuele Bassi
f587cb57f2 binding: Add SYNC_CREATE to the flags
When creating a binding between two object properties we might want to
automatically synchronize the two values at the moment of the binding
creation, instead of waiting for the next change.

The G_BINDING_SYNC_CREATE flag does exactly what it says on the tin.

https://bugzilla.gnome.org/show_bug.cgi?id=622281
2010-06-23 15:19:24 +01:00
Ryan Lortie
d3af9c0ec5 neutralise pltcheck.sh 2010-06-23 10:12:14 -04:00
Matthias Clasen
fadac4bd0f Document g_cclosure_marshal_VOID__VARIANT 2010-06-23 09:25:30 -04:00
Ryan Lortie
c9553af68f Use -Bsymbolic-functions, drop g*alias PLT hackery
This is a minimal patch-out of the galias functionality.  We will do a
release like this so that we can easily back it out if there are
reported problems.

A more substantial cleanup (mostly removing #includes from every file)
will follow if there are no issues.
2010-06-21 13:55:28 -04:00
Christian Persch
2d4e48b73c Tiny docs fix 2010-06-19 20:04:20 +02:00
Christian Persch
db68f8203a Add g_value_take_variant
Turns out we do need g_value_take_variant(), so we can correctly
implement VARIANT:* marshalers.

Bug #621947.
2010-06-19 19:07:36 +02:00
Christian Persch
bdd8fef4c0 Fix VARIANT out args
Use g_value_set_variant(), not the nonexistent g_value_take_variant().
2010-06-18 00:38:46 +02:00
Christian Persch
86d681ba3e Distcheck fix
Add a missing symbol to gobject.symbols.
2010-06-17 23:50:10 +02:00
Matthias Clasen
19a752a5f4 fix a typo 2010-06-17 15:53:08 -04:00
Christian Persch
4708b8ecc3 Add fundamental type and pspec for GVariant
Make G_TYPE_VARIANT a fundamental type instead of boxed, and add
g_variant_{set,get,dup}_variant.

Add GParamSpecVariant.

Bug #610863.
2010-06-17 21:00:54 +02:00
Christian Persch
6a1cb9f697 Typo fix 2010-06-16 18:47:20 +02:00
Emmanuele Bassi
33aa4b4c66 binding: Use a hash table
Since an object instance might have a lot of bindings, using a list
might become a performance issue when removing them. Using a simple
hash table guarantees constant time lookup, which is the most common
operation.
2010-06-16 15:08:10 +01:00
Emmanuele Bassi
f72f65643f tests: Add a chain binding
Test the case with a chain like A → B, B → C, and what happens when
switching to a direct A → C link.

https://bugzilla.gnome.org/show_bug.cgi?id=621782
2010-06-16 14:56:59 +01:00
Christian Persch
1b8ee5196e Sprinkle some $(AM_V_GEN) around to make the build more silent. 2010-06-15 22:01:02 -04:00
Emmanuele Bassi
6d1d9cf1b5 gobject: Add GBinding
GBinding is a simple, opaque object that represents a binding between a
property on a GObject instance (source) and property on another GObject
instance (target).

https://bugzilla.gnome.org/show_bug.cgi?id=348080
2010-06-15 16:06:18 +01:00
Damien Lespiau
f3879a4bdc Introduce g_object_notify_by_pspec()
g_object_notify_by_pspec() will emit the "notify" signal on the given
pspec, short-circuiting the hash table lookup needed by
g_object_notify(). The suggested and documented way of using
g_object_notify_by_pspec() is similar to the way of emitting signals
with their ID.

Emission tests (with no handler attached to the notify signal) show a
10-15% speedup over using g_object_notify().

https://bugzilla.gnome.org/show_bug.cgi?id=615425
2010-06-15 10:51:36 +01:00
Alexander Larsson
8e41be13ef Add dtrace and systemtap support for gobject
This adds static markers and systemtap tapsets for:

* type creation
* object lifetimes (creation, ref, unref, dispose, finalize)
* signal creation and emission

Signal emissions and finalization marker have a corresponding
*_end (or *-end in dtrace) version that is when the corresponding
operation is finished.

https://bugzilla.gnome.org/show_bug.cgi?id=606044
2010-05-27 14:51:41 -04:00
Matthias Clasen
8db946fdfb Clean up man page handling
Remove all formatted man pages from git, and use the same
Makefile fragment in all doc dirs.
2010-05-21 22:28:42 -04:00
Sebastian Dröge
936ff022f2 Don't include __bss_start, _edata and _end symbols in the abichecks
They are added by the binutils gold linker.
2010-05-11 06:17:25 +02:00
Ryan Lortie
47805f4e0c Bug 617947 - glib-mkenums: add @valuenum@ support
Add a @valuenum@ substitution that outputs the integer value of a
particular enum value.  The value is determined by using (sandboxed)
perl to evaluate C expression.  If evaluation fails then glib-mkenums
dies loudly.  Evaluation is only enabled if '@valuenum@' appears in the
template file, so existing users will not be affected.
2010-05-06 14:21:39 -05:00
Ryan Lortie
7aa71527e5 glib-mkenums: Fix support for comment templates
Currently, specifying a comment template in the template file results in
the given template being appended to the default (C-style) one rather
than replacing it.

This causes it to be replaced outright.

Bug 617940.
2010-05-06 13:27:26 -05:00
Matthias Clasen
b440cc1546 Add a boxed type for GError
Patch by Sebastian Dröge, bug 614541
2010-04-22 20:10:56 -04:00
Javier Jardón
0f51e99565 Fix g_type_class_add_private() documentation
This fixes commit 81e2aa941b

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=614185
2010-03-29 18:17:40 +02:00
Matthias Clasen
81e2aa941b Some more doc cleanups 2010-03-26 10:11:46 -04:00
Ryan Lortie
2a209cb251 make check / makedistcheck fixes 2010-03-21 12:54:36 -05:00
Tor Lillqvist
226cc663e4 Avoid much of duplication in lists of source files
Don't keep the lists of source files for libglib, libgobject and
libgio in the VS project files in addition to the canonical location,
the corresponding Makefile.am files.

Instead, generate the corresponding .vcproj files at make dist time
using the C preprocessor, from template files called .vcprojin. We
still list explicitly in the .vcprojin files some of the
Windows-specific source files, and the sources files of gnulib and
pcre.
2010-03-21 16:15:02 +02:00
Sebastian Dröge
41383b303c Bug 612502 - Add support for class private data
This adds the two new functions g_type_add_class_private()
and g_type_class_get_private() and a convenience macro
for the getter G_TYPE_CLASS_GET_PRIVATE().
2010-03-17 15:11:00 +01:00
Stefan Kost
3d98c449b1 gsignal: improve g_signal_new docs.
Using 0 for class_offset is only a means to be able to add signal when running
out of slots in the lass structure.
2010-03-06 14:15:25 +02:00
Edward Hervey
cecf61d1c3 gobject: Don't use G_PARAM_SPEC_VALUE_TYPE when we know the pspec is valid
https://bugzilla.gnome.org/show_bug.cgi?id=605667
2010-02-23 18:42:03 +01:00
Benjamin Otte
63a6666ab7 Make g_type_interface_prerequisites() only return one instantiable type
Previously, the code had a heisenbug and could potentially return
superclasses, too. In fact, it was based on the behavior of malloc.

https://bugzilla.redhat.com/show_bug.cgi?id=554678
2010-02-17 08:55:14 +01:00
Benjamin Otte
fd3923aba2 Move offsets array from interface data member to TypeNode
We need to assign offsets when the interface is not yet instantiated.
2010-02-11 21:10:19 +01:00
Benjamin Otte
61b649cffd Move prerequisites out of _prot struct
Also fix the naming (including typo)
2010-02-11 21:10:19 +01:00
Ryan Lortie
1e655eb02c merge GVariant 2010-02-10 11:35:01 -05:00
Tor Lillqvist
154a5314be Update copyright years 2010-02-04 00:12:50 +02:00
Philip Withnall
cf0e4c33fa Don't use a compiler keyword as a variable name
Appease the MS C++ compiler by using _val instead of __value as a variable
name in G_VALUE_COLLECT_INIT.

Problem found by Haakon Sporsheim <haakon.sporsheim@gmail.com>.
Re-closes: bgo#608602
2010-02-02 10:41:00 +00:00
Philip Withnall
aa67c725e1 Fix shadowing of G_VALUE_COLLECT variables in G_VALUE_COLLECT_INIT
Closes: bgo#608602
2010-01-31 17:45:54 +00:00
Ryan Lortie
6aa73f03eb improve gitignore 2010-01-28 22:43:51 -05:00
Benjamin Otte
11d4e59712 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
2010-01-25 15:30:38 +01:00
Benjamin Otte
ac666d2ae3 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
2010-01-25 15:30:38 +01:00
Alberto Garcia
7693b0af44 [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>
2010-01-20 18:58:32 +01:00
Benjamin Otte
914120b970 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
2010-01-18 14:46:55 +01:00
Alexander Larsson
820181a5de Fix docs in previous commit 2010-01-13 10:25:52 +01:00
Edward Hervey
40bf3aa5d2 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
2010-01-13 10:16:49 +01:00
Edward Hervey
0f25115ffc 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
2010-01-13 10:16:48 +01:00
Edward Hervey
546fc0ca33 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
2010-01-13 10:16:46 +01:00
Alexander Larsson
94b8613b5f 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
2010-01-12 21:37:50 +01:00
Alexander Larsson
fa2bced1f3 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
2010-01-12 21:37:29 +01:00
Kamal Mostafa
f4ccd96ea1 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
2010-01-11 15:34:41 +01:00
Haakon Sporsheim
4c55b45162 Don't do pointer arithmetics on void*
For instance MSVC doesn't like that.

Signed-off-by: Tor Lillqvist <tml@iki.fi>
2010-01-07 10:14:24 +02:00
Javier Jardón
3f5fb1ee9c [docs] Fix @title usage in "Enumeration and flags types" section 2010-01-03 23:36:44 +01:00
Pablo Castellano
0542e6dbf9 Updated .gitignore files 2010-01-03 01:24:44 +01:00
Javier Jardón
dba6cef3c9 [docs] Fix G_DEFINE_INTERFACE "Since" tag
This symbol is available since Glib 2.24, not 2.20.
2009-12-21 23:07:13 +01:00
Behdad Esfahbod
e7488ca857 [gobject] Grow gvalue transform array exponentially
Bug 589176 - Grow gvalue transform array exponentially

Reduces about 180 realloc calls during g_type_init().
2009-12-21 17:12:17 +01:00
Behdad Esfahbod
ccd33a4043 Bug 501166 - Warning message says IA__g_type_init instead of g_type_init 2009-12-19 11:46:19 +01:00
Javier Jardón
9917024949 G_DEFINE_INTERFACE_* documentation is not generated
Fix the documentation: Replace "@Since:" with "Since:"

https://bugzilla.gnome.org/show_bug.cgi?id=604645
2009-12-19 02:17:33 +01:00
Dan Winship
f74c0e257f update .gitignores 2009-12-18 12:27:36 +01:00
Dan Winship
91d96350a7 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
2009-12-01 10:44:42 +01:00
Benjamin Otte
2a78adc5e3 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
2009-11-30 20:52:33 +01:00
Benjamin Otte
f0f32a7ef0 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.
2009-11-30 20:52:33 +01:00
Benjamin Otte
5cac5c828b 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.
2009-11-30 20:52:33 +01:00
Edward Hervey
83ee0d947d 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.
2009-11-30 20:52:33 +01:00
Edward Hervey
35c376a8a6 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
2009-11-30 20:52:33 +01:00
Edward Hervey
5160175656 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
2009-11-30 20:52:33 +01:00
Benjamin Otte
00a4470ad0 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
2009-11-30 20:52:33 +01:00
Edward Hervey
4c243b1cba Make type_data_unref_U not take locks in the common case
https://bugzilla.gnome.org/show_bug.cgi?id=585375
2009-11-30 20:52:32 +01:00
Edward Hervey
5e7dba0501 Make all accesses of Node->ref_count atomic
This does not change any locking behavior at all, it just replaces
simple getters/setters of the variable with atomic versions.

The ref_count variable was kept as unsigned, even though that requires
casting for all operations, to mirror GObject->refcount.

https://bugzilla.gnome.org/show_bug.cgi?id=585375
2009-11-30 20:52:32 +01:00
Edward Hervey
2ec989902b type_data_unref_Wm => type_data_unref_U
Make the type unref function not hold any locks when called. This
makes it easier to optimize it to be atomic later.

https://bugzilla.gnome.org/show_bug.cgi?id=585375
2009-11-30 20:52:32 +01:00
Benjamin Otte
b163759320 Add a NODE_REFCOUNT getter
This is useful when moving the code to be atomic.
It also will make that patch smaller.

https://bugzilla.gnome.org/show_bug.cgi?id=585375
2009-11-30 20:52:32 +01:00
Edward Hervey
170423f924 Move setting the refcount to the end of the function
This is a safety feature for when making it atomic later.

https://bugzilla.gnome.org/show_bug.cgi?id=585375
2009-11-30 20:52:32 +01:00
Edward Hervey
f8d24e8495 Pass the TypeNode to type_data_last_unref_Wm()
Previously the GType was looked up just for calling the function
Also moves the unref functions together in the code.

https://bugzilla.gnome.org/show_bug.cgi?id=585375
2009-11-30 20:52:32 +01:00
Edward Hervey
718b476c44 Move ref_count from TypeNode->data to TypeNode
https://bugzilla.gnome.org/show_bug.cgi?id=585375
2009-11-30 20:52:32 +01:00
Alexander Larsson
69961d27a1 Implement O(1) interface lookups
Currently interface lookups are do a binary search over all the interfaces
an object implements. Its possible to do this lookup in constant time using for
instance the gcj algorighm described at:
http://gcc.gnu.org/ml/java/1999-q3/msg00377.html

This is an implementation of that based on GAtomicArray.
2009-11-30 20:52:29 +01:00
Alexander Larsson
8f27a5e621 Implement lock free interface lookup
We implement lock free interface lookup by moving the n_ifaces
counter into memory pointed to by TypeNode->iface_entries, and
then updating this in RCU-style by always copying it, modifying
the copy and then when the modification is done replace the old
pointer with g_atomic_pointer_set.

There is one additional complexity when freeing the old memory,
since the old memory region can be in use. To handle this we
don't free such memory, but put it on a free list and reuse it
later. This means that lock-free lookups must be able to
handle the memory being modified in random ways without crashing,
and at the end we verify that the memory didn't change and the
transaction is ok.

With this infrastructure the patch then implements a lock-free
version of type_lookup_iface_entry_L called type_lookup_iface_vtable_I
and use it in: g_type_interface_peek, g_type_interface_peek_parent
and type_node_check_conformities_UorL.

Using the performance tests from bug 557100 shows that the general
performance difference is negligible, but the lack of a lock for each
type check and interface vfunc call should greatly enhance threaded
scalability.
2009-11-30 20:50:21 +01:00
Alexander Larsson
75ce4741f9 Add GAtomicArray for RCU-style lockless updates
This adds supports for a lock-less a non-shrinking growable array.
You can use it to do reads using no locks, as long as your read-code
can handle that during the read transaction the object can be modified
by another writer (but it will not change size or be freed), and you
can only trust the result once the transaction has finished successfully.

This doesn't free things like RCU normally does, instead it pushes the
memory on a free list that is reused for other atomic arrays.
2009-11-30 20:48:50 +01:00
Alexander Larsson
b35fa1994d Cast iface_init to GInterfaceInitFunc
This is in line with what all other type define macros do.

https://bugzilla.gnome.org/show_bug.cgi?id=508157
2009-11-26 12:32:36 +01:00
Alexander Larsson
7d51c96e5e Add G_IMPLEMENT_INTERFACE_DYNAMIC
Convenience macro to easy interface addition for dynamic types.

https://bugzilla.gnome.org/show_bug.cgi?id=508157
2009-11-26 11:20:18 +01:00
Benjamin Otte
ec79146572 Fix thread-safety
The n_children variable can be written when locked, while the n_supers
variable is read at any time. As they both share the same bytes,
accessing them is not threadsafe.
This patch puts them into different bytes.

Thanks to Xan Lopez and valgrind for noticing this.
2009-11-20 16:49:47 +01:00
Cody Russell
8eebc18944 GTypeModule derived class unref does not unload plugin
Correctly unref the pclass. Patch by Chris Wilson and Tim Janik.

https://bugzilla.gnome.org/show_bug.cgi?id=350200
2009-10-14 21:24:30 -05:00
Cody Russell
855deaa578 g_object_unref racy condition can lead to crash
Store whether the object has a toggleref before decrementing the
refcount to prevent race condition when two threads simultaneously
try to unref an object with a refcount of 2.
Patch by Antoine Tremblay.

https://bugzilla.gnome.org/show_bug.cgi?id=551706
2009-10-06 12:27:12 -04:00
Edward Hervey
68b1ca0443 gobject/gtype.h: Fix _G_TYPE_CVH macro. Fixes #597194
If __val doesn't exist, we shouldn't do any other checks.
2009-10-03 16:17:17 +02:00
Alexander Larsson
1937765f9f Add fast path for construction with no params
This avoids a bunch of code and makes construction of simple objects
faster.

Object construction performance improvement:
         Non-Threaded   Threaded
Simple:           14%         5%
Complex:        -1.1%      -2.2%

Other tests stable.

https://bugzilla.gnome.org/show_bug.cgi?id=557100
2009-10-02 21:02:48 +02:00
Alexander Larsson
ffc625ec9b Don't freeze/thaw notification during construction if no properties
If the class has no properties there could be no notification anyway.
This is an important optimization for construction of simple objects.

Object construction performance improvement:
         Non-Threaded   Threaded
Simple:           84%        91%
Complex:        -1.4%      -0.6%

Other tests stable.

https://bugzilla.gnome.org/show_bug.cgi?id=557100
2009-10-02 21:02:48 +02:00
Alexander Larsson
302d13a757 Add a check that no properties are added after a class is derived
We can't support that, because that would cause the CLASS_HAS_PROPS_FLAG
class flag to not be correct.
2009-10-02 21:02:48 +02:00
Alexander Larsson
39a1fe5782 Add GObjectClass flag CLASS_HAS_PROPS_FLAG
This is set if a class or any of its parents have installed any
properties.

https://bugzilla.gnome.org/show_bug.cgi?id=557100
2009-10-02 21:02:48 +02:00
Alexander Larsson
301d52d858 Add flags member for GObjectClass
https://bugzilla.gnome.org/show_bug.cgi?id=557100
2009-10-02 21:02:48 +02:00
Alexander Larsson
af017accc5 Allocate GObjectNotifyQueue with g_slice instead of abusing g_list
This is both cleaner and faster (it avoids function calls and
zeroing the memory twice).

Object construction performance improvement:
         Non-Threaded   Threaded
Simple:           11%       1.3%
Complex:           8%         6%

Other tests stable.

https://bugzilla.gnome.org/show_bug.cgi?id=557100
2009-10-02 21:02:48 +02:00
Matthias Clasen
e9fe53980b Fix --runtime-libdir option
For stable releases, it needs to take LT_REVISION into account, not
hardcode 0.
2009-09-29 23:08:03 -04:00
Alexander Larsson
e657dee578 Use right soname for gdb autoloaded python files
We need to look at LT_REVISION too to get the right filename.
This was just hardcoded to zero before which is obviously wrong.
2009-09-28 15:48:17 +02:00
Matthias Clasen
cc95c60c69 Fix location of gdb macros
These files need to be put in a location that corresponds to the
location of the libraries, so we need to take the runtime-libdir
path into account.
2009-09-24 10:26:46 -04:00
Matthias Clasen
4c633ff0b5 2.22.0 2009-09-22 16:57:08 -04:00
Mart Raudsepp
924f1bc528 Accept -? for glib-mkenums.
Commit 789e260638 tried to add support for -?, but there is a typo
and instead -h was added when already present instead of -? for one
of the cases.
It works without this corrections, because all unrecognized options
trigger usage showing as well, but this is more correct.

This was bug 556706 originally.
2009-09-22 11:22:44 +03:00
Alexander Larsson
efe9169234 Initial support for gdb python macros
This includes support for gobject pointer pretty printing and
signal frame compression in backtraces.

https://bugzilla.gnome.org/show_bug.cgi?id=595619
2009-09-21 15:39:00 +02:00
Matthias Clasen
8b3853b8a1 Reduce false positives in static analysis
Tools like clang fail to recognize that stanzas like
g_return_if_fail (GTK_IS_FOO (w)) guarantee w != NULL. By minimally
rewriting the type-checking macros, we can avoid these false positives.
2009-09-18 19:20:06 -04:00
Matthias Clasen
7ba9674d71 Avoid some compiler warnings. 2009-07-10 13:13:18 -04:00
Christian Persch
6d1474e7f1 Add @basename@ substitution to glib-mkenums
Since @filename@ contains the full filename as given to the glib-mkenum
command, possibly including path elements (e.g. when using a non-srcdir
build), it is unsuitable to use in a #include statement in the generated
file if one wants to distribute it. This patch adds @basename@ which
expands to the base name of the input filename. Bug #587307.
2009-07-03 20:50:27 +02:00
David Zeuthen
0ccd18bc83 Bug 586675 – Runtime library location
Introduce an option to specify the runtime location for libraries via
a relative path to libdir.

Signed-off-by: David Zeuthen <davidz@redhat.com>
2009-06-23 12:58:35 -04:00
David Zeuthen
402847c887 Bug 580450 – Reference counting and boxed types for arrays
Add reference counting and boxed types for GArray, GByteArray and GPtrArray.

Signed-off-by: Matthias Clasen <mclasen@redhat.com>
2009-04-29 11:17:23 -04:00
Matthias Clasen
e68a35689f Fix G_DEFINE_TYPE_EXTENDED docs
Make the docs for G_DEFINE_TYPE_EXTENDED match the actual
definition of the macro.  (#577985)
2009-04-09 14:56:49 -04:00
Matthias Clasen
785bed2e18 Update README files to refer to git
Update various README files to refer to git instead of svn.
Add a README.commits that is pretty much a copy of the same file
in GTK+. Also discontinue ChangeLog files.
2009-03-31 19:39:16 -04:00
Kristian Rietveld
622f010120 when defaulting to the only item in the array, check if this is indeed the
2009-03-13  Kristian Rietveld  <kris@imendio.com>

	* gsignal.c (signal_lookup_closure): when defaulting to the only
	item in the array, check if this is indeed the default closure.
	(patch by Tim Janik).


svn path=/trunk/; revision=7979
2009-03-13 09:22:57 +00:00
Matthias Clasen
5a8a224ff0 2.20.0
svn path=/trunk/; revision=7976
2009-03-13 05:44:11 +00:00
Matthias Clasen
a902f5257c 2.19.10
svn path=/trunk/; revision=7942
2009-03-02 06:36:08 +00:00
Matthias Clasen
3f07ef2119 2.19.9
svn path=/trunk/; revision=7939
2009-03-02 05:49:44 +00:00
Matthias Clasen
979f3c10b9 More of the same
svn path=/trunk/; revision=7931
2009-03-01 15:42:03 +00:00
Matthias Clasen
789e260638 Adjust help output, accept -?, capitalize. Patch by Christian Dywan
* glib-mkenums.in: Adjust help output, accept -?, capitalize.
        Patch by Christian Dywan


svn path=/trunk/; revision=7930
2009-03-01 15:40:07 +00:00
Matthias Clasen
f548330275 Fix "it's" vs "its" confusion throughout the source. Patch by Will
* Fix "it's" vs "its" confusion throughout the source. Patch
        by Will Thompson.


svn path=/trunk/; revision=7897
2009-02-23 04:30:06 +00:00
Matthias Clasen
4611dadadd 2.19.8
svn path=/trunk/; revision=7876
2009-02-17 18:36:36 +00:00
Matthias Clasen
c8e37b63e7 Fix strict aliasing warnings and viiolations to make GLib and
GLib users buildable with gcc 4.4. Patch by Jakub Jelinek.

        * glib/gatomic.[hc]: Add G_GNUC_MAY_ALIAS to pointer arguments,
        fix macro versions to only operate on objects of the same size.

        * glib/gdataset.c:
        * glib/gthread.[hc]:
        * glib/gdatasetprivate.h: Remove unnecessary casts in
        g_atomic_pointer_get calls.


svn path=/trunk/; revision=7875
2009-02-17 16:14:39 +00:00
Matthias Clasen
7b106d2066 2.19.7
svn path=/trunk/; revision=7868
2009-02-17 02:49:52 +00:00
Matthias Clasen
afa157a73d 2.19.6
svn path=/trunk/; revision=7845
2009-02-02 20:09:08 +00:00
Matthias Clasen
af6a048743 2.19.5
svn path=/trunk/; revision=7820
2009-01-19 07:46:43 +00:00
Matthias Clasen
a5fd60a8ac Define an ENABLE_REGEX macro
* configure.in: Define an ENABLE_REGEX macro

        * gobject/gboxed.c: Don't refer to g_regex_ref if ENABLE_REGEX
        is not defined.


svn path=/trunk/; revision=7815
2009-01-18 06:53:44 +00:00
Matthias Clasen
85fa6de695 2.19.4
svn path=/trunk/; revision=7777
2009-01-05 18:06:05 +00:00
Behdad Esfahbod
bf201e0fb7 Bug 565136 – Gobject's "notify" signal parameters are wrong in gtk-doc
2009-01-02  Behdad Esfahbod  <behdad@gnome.org>

        Bug 565136 – Gobject's "notify" signal parameters are wrong in gtk-doc
        Patch from  Andrzej Zaborowski

        * gobject.c (g_object_do_class_init): Fix param order in docs.


svn path=/trunk/; revision=7759
2009-01-02 06:09:26 +00:00
Matthias Clasen
649c25f216 2.19.3
svn path=/trunk/; revision=7746
2008-12-15 20:01:49 +00:00
Matthias Clasen
be914f6841 Make these work on x86_64
svn path=/trunk/; revision=7744
2008-12-13 23:56:05 +00:00
Matthias Clasen
6537b5e11d Always reset the use count to its previous value before returning FALSE.
* gtypemodule.c (g_type_module_use): Always reset the use count
        to its previous value before returning FALSE. Pointed out by
        Johan Billien.


svn path=/trunk/; revision=7725
2008-12-02 05:14:00 +00:00
Matthias Clasen
cce2159983 2.19.2
svn path=/trunk/; revision=7721
2008-12-01 20:01:16 +00:00
Matthias Clasen
ec48fa8fc2 2.19.1
svn path=/trunk/; revision=7717
2008-12-01 14:44:26 +00:00
Matthias Clasen
db830dd381 Fix some documentation typos
svn path=/trunk/; revision=7707
2008-11-28 23:53:13 +00:00
Matthias Clasen
8b14e3744c Expand the docs of g_object_class_install_property. Proposed by Maciej
* gobject.c: Expand the docs of g_object_class_install_property.
Proposed by Maciej Piechotka

svn path=/trunk/; revision=7642
2008-11-04 04:17:40 +00:00
Matthias Clasen
82c68c6a14 2.19.0
svn path=/trunk/; revision=7611
2008-10-16 23:59:50 +00:00
Dan Winship
7afe2bb07a add uint* -> int* casts in g_atomic_int calls to avoid gcc warnings
* gobject.c (g_object_ref, g_object_unref)
	(g_object_freeze_notify, g_object_notify, g_object_thaw_notify):
	* gparam.c (g_param_spec_ref, g_param_spec_unref):
	* gsignal.c (handler_ref, handler_unref_R): add uint* -> int*
	casts in g_atomic_int calls to avoid gcc warnings

svn path=/trunk/; revision=7551
2008-09-26 16:00:33 +00:00
Matthias Clasen
ac516ab07e 2.18.1
svn path=/trunk/; revision=7505
2008-09-17 23:56:04 +00:00
Matthias Clasen
e43de8e0e6 2.18.0
svn path=/trunk/; revision=7434
2008-09-02 20:09:55 +00:00
Ryan Lortie
920f3bffb3 Bug 549771 – improved .gitignore for glib
2007-09-02  Ryan Lortie  <desrt@desrt.ca>

        Bug 549771 – improved .gitignore for glib

        * docs/reference/.gitignore:
        * docs/reference/gio/.gitignore:
        * docs/reference/gobject/tmpl/.gitignore:
        * gio/.gitignore:
        * gio/tests/.gitignore:
        * glib/.gitignore:
        * glib/libcharset/.gitignore:
        * glib/tests/.gitignore:
        * gmodule/.gitignore:
        * gobject/.gitignore:
        * gobject/tests/.gitignore:
        * po/.gitignore:
        * tests/.gitignore: new files
        * .gitignore: remove 'build' (since it's part of glib now), add more
        useful things.


svn path=/trunk/; revision=7432
2008-09-02 18:40:39 +00:00
Björn Lindqvist
886c0e0d81 Bug 523939 – Example program for GValue
2008-08-22  Björn Lindqvist  <bjourne@gmail.com>

	Bug 523939 – Example program for GValue

	* gobject/gvalue.c: Add code example that demonstrates GValue's
	features.

svn path=/trunk/; revision=7387
2008-08-22 18:23:05 +00:00
Johan Dahlin
f9cc9f4bc7 Revert fix for 548689
svn path=/trunk/; revision=7379
2008-08-21 09:45:07 +00:00
Johan Dahlin
a12f4b7be7 Mark g_object_get_type function as const, it's a fundamental type and can
2008-08-21  Johan Dahlin  <johan@gnome.org>

    * gobject.h:
    Mark g_object_get_type function as const, it's
    a fundamental type and can safely marked as const,
    as opposed to traditionally *_get_type functions.


svn path=/trunk/; revision=7378
2008-08-21 09:42:44 +00:00
Johan Dahlin
306db46123 Bug 548800 – Missing a g_object_get_type function
2008-08-21  Johan Dahlin  <johan@gnome.org>

    Bug 548800 – Missing a g_object_get_type function

    * gobject.c (g_object_get_type):
    * gobject.h:
    * gobject.symbols:
    Add g_object_get_type


svn path=/trunk/; revision=7377
2008-08-21 09:18:25 +00:00
Johan Dahlin
eb6ae44256 Reverse the order, pointed out by Mitch 'hawkeye' Natter
svn path=/trunk/; revision=7376
2008-08-21 09:09:43 +00:00
Johan Dahlin
0f7359d215 Bug 548689 – The type name for GParamSpec is wrong
2008-08-20  Johan Dahlin  <johan@gnome.org>

    Bug 548689 – The type name for GParamSpec is wrong

    * gparam.c (g_param_type_init):
    Register the type name as GParam instead of GParamSpec.


svn path=/trunk/; revision=7374
2008-08-20 15:51:53 +00:00
Matthias Clasen
e17c805ce4 2.17.7
svn path=/trunk/; revision=7367
2008-08-18 13:17:39 +00:00
Matthias Clasen
26c1be0d51 2.13.6
svn path=/trunk/; revision=7301
2008-08-04 17:58:13 +00:00
Matthias Clasen
ab0f863606 2.17.5
svn path=/trunk/; revision=7297
2008-08-04 17:01:23 +00:00
Matthias Clasen
5330f392bd Add bug ref
svn path=/trunk/; revision=7281
2008-08-01 18:36:31 +00:00
Matthias Clasen
63802ac67d Clarify some docs
svn path=/trunk/; revision=7280
2008-08-01 18:36:01 +00:00
Tor Lillqvist
e5e4f8bca3 gtype.h Revert my change from 2008-07-24. No G_TYPE_FORMAT is needed. Just
2008-07-27  Tor Lillqvist  <tml@novell.com>

	* gtype.h
	* gtype.c: Revert my change from 2008-07-24. No G_TYPE_FORMAT is
	needed. Just use G_GSIZE_FORMAT always when printing GType values.


svn path=/trunk/; revision=7256
2008-07-27 15:58:48 +00:00
Tor Lillqvist
a076a30457 Set LIB_EXE_MACHINE_FLAG to either X86 or X64 on Windows. AC_SUBST it.
2008-07-27  Tor Lillqvist  <tml@novell.com>

	* configure.in: Set LIB_EXE_MACHINE_FLAG to either X86 or X64 on
	Windows. AC_SUBST it.

	* */Makefile.am: Correspondingly, pass appropriate -machine
	flag to lib.exe when producing the import library for the MS
	toolchain.


svn path=/trunk/; revision=7255
2008-07-27 15:54:15 +00:00
Tor Lillqvist
b46641eab2 Define G_TYPE_FORMAT as the printf format for a GType value. Either
2008-07-24  Tor Lillqvist  <tml@novell.com>

	* gtype.h: Define G_TYPE_FORMAT as the printf format for a GType
	value. Either G_GSIZE_FORMAT or "lu".

	* gtype.c: Use it instead of the C99 zu.


svn path=/trunk/; revision=7250
2008-07-24 01:11:52 +00:00
Matthias Clasen
7df58dc393 Fix a typo
svn path=/trunk/; revision=7244
2008-07-23 17:04:36 +00:00
Matthias Clasen
282805b1d4 2.17.4
svn path=/trunk/; revision=7234
2008-07-21 17:56:17 +00:00
Michael Natterer
f573de59d2 Should save before committing :)
svn path=/trunk/; revision=7230
2008-07-21 10:39:28 +00:00
Michael Natterer
864fbce267 Reviewed by Tim Janik:
2008-07-21  Michael Natterer  <mitch@imendio.com>

	Reviewed by Tim Janik:

	* gsignal.c (g_signal_chain_from_overridden_handler): allocate
	the temp GValue array with GSLice.

	(g_signal_emit_valist): dito. Remove optimization/obfuscation of
	allocating up to 16 GValues on the stack and always use GSLice.


svn path=/trunk/; revision=7229
2008-07-21 10:36:03 +00:00
Matthias Clasen
6b4da7c5e1 Use the right binary name in help output. Patch by Hiroyuki Ikezoe.
* gobject-query.c: Use the right binary name in help output.
        Patch by Hiroyuki Ikezoe.


svn path=/trunk/; revision=7164
2008-07-06 02:01:56 +00:00
Michael Natterer
6f1f1342e4 remove unused #define PREALLOC_CPARAMS.
2008-07-04  Michael Natterer  <mitch@imendio.com>

	* gobject.c: remove unused #define PREALLOC_CPARAMS.


svn path=/trunk/; revision=7159
2008-07-04 13:08:39 +00:00
Michael Natterer
20d4f6da73 Bug 541208 – Functions to easily install and use signals without class
2008-07-04  Michael Natterer  <mitch@imendio.com>

	Bug 541208 – Functions to easily install and use signals without
	class struct slot

	* gobject.symbols
	* gsignal.[ch] (g_signal_new_class_handler): the same as
	_gtk_binding_signal_new(), to install signals with a callback
	instead of a class struct slot as class closure.

	The next two functions are C convenience and much easier to use
	than the generic overriding and chaining APIs which are intended
	primarily for language bindings:

	(g_signal_override_class_handler): to override a signal with a
	callback instead of a class struct slot.

	(g_signal_chain_from_overridden_handler): to chain up from a
	signal without class struct slot. The API is similar to
	g_signal_emit().


svn path=/trunk/; revision=7157
2008-07-04 11:10:17 +00:00
Matthias Clasen
7a5b6f0057 2.17.3
svn path=/trunk/; revision=7152
2008-07-03 00:28:00 +00:00
Matthias Clasen
d6d221911d Fix up section comments
svn path=/trunk/; revision=7137
2008-07-02 03:43:13 +00:00
Björn Lindqvist
eba8246ce5 Bug 539626 – Update docstrings for g_object_freeze_notify and
2008-06-29  Björn Lindqvist  <bjourne@gmail.com>

	Bug 539626 – Update docstrings for g_object_freeze_notify and
	g_object_thaw_notify

	* gobject/gobject.c: Explain how the freeze count works.

svn path=/trunk/; revision=7102
2008-06-29 12:09:31 +00:00
Hans Breuer
3ed6102555 move G_OS_WIN32 inclusion of <io.h> down to where G_OS_WIN32 will be
2008-06-27  Hans Breuer  <hans@breuer.org>

	* glib-genmarshal.c : move G_OS_WIN32 inclusion of <io.h> down to
	where G_OS_WIN32 will be defined (#540047, Kazuki IWAMOTO)

svn path=/trunk/; revision=7100
2008-06-27 09:59:30 +00:00
Kristian Rietveld
1289b6d165 introduce an ENUMPREFIX substitution.
2008-06-23  Kristian Rietveld  <kris@imendio.com>

	* gobject/glib-mkenums.in: introduce an ENUMPREFIX substitution.

	* gio/gioenumtypes.h.template: use @ENUMPREFIX@ instead of
	hard coding "G" as prefix.


svn path=/trunk/; revision=7096
2008-06-23 12:06:39 +00:00
Michael Natterer
6347be5fb6 remove trailing whitespace from newly added gtk-doc comments and
2008-06-22  Michael Natterer  <mitch@imendio.com>

	* *.c: remove trailing whitespace from newly added gtk-doc
	comments and reformatted some where they contained overly long or
	ill-formatted lines.


svn path=/trunk/; revision=7090
2008-06-22 14:53:09 +00:00
Michael Natterer
5602b7e275 moved includes back to the top of the files (before gtk-doc SECTION
2008-06-22  Michael Natterer  <mitch@imendio.com>

	* *.c: moved includes back to the top of the files (before gtk-doc
	SECTION comments). Add "config.h" in all files and move system
	included before glib includes. Remove trailing whitespace from
	SECTION comments and did some reformatting where lines were overly
	long, no documentation content was changed.


svn path=/trunk/; revision=7089
2008-06-22 14:29:25 +00:00
Stefan Kost
b69be54f8b moving changelog entries from main to gobject changelog
svn path=/trunk/; revision=7088
2008-06-22 12:35:45 +00:00
Stefan Kost
ac94781e28 Move some content for gobject-unused.sgml and cleared empty entries. The
* docs/reference/gobject/tmpl/gobject-unused.sgml:
	* gobject/gobject.h:
	* gobject/gtype.c:
	* gobject/gtype.h:
	  Move some content for gobject-unused.sgml and cleared empty entries.
	  The remaining 4 ones should be checked by some else. If they are not
	  needed. The file can be removed.


svn path=/trunk/; revision=7087
2008-06-22 10:10:59 +00:00
Stefan Kost
43c995df17 Migrating docs.
* docs/reference/gobject/tmpl/value_collection.sgml:
	* gobject/gvaluecollector.h:
	  Migrating docs.


svn path=/trunk/; revision=7086
2008-06-22 09:53:11 +00:00
Stefan Kost
80326e2433 Migrating docs.
* docs/reference/gobject/tmpl/value_arrays.sgml:
	* gobject/gvaluearray.c:
	* gobject/gvaluearray.h:
	  Migrating docs.


svn path=/trunk/; revision=7085
2008-06-22 09:45:13 +00:00
Stefan Kost
fa7a7b3e0d Fix compiler warning in format string check.
* gobject/gsignal.c:
	  Fix compiler warning in format string check.


svn path=/trunk/; revision=7084
2008-06-22 09:43:54 +00:00
Stefan Kost
356fe46531 Migrating docs.
* docs/reference/gobject/tmpl/signals.sgml:
	* gobject/gclosure.c:
	* gobject/gobject.c:
	* gobject/gsignal.c:
	* gobject/gsignal.h:
	  Migrating docs.


svn path=/trunk/; revision=7083
2008-06-22 09:29:52 +00:00
Stefan Kost
fca3fb5818 Migrating docs.
* docs/reference/gobject/tmpl/param_value_types.sgml:
	* gobject/gboxed.c:
	* gobject/gboxed.h:
	* gobject/genums.c:
	* gobject/genums.h:
	* gobject/gobject.c:
	* gobject/gobject.h:
	* gobject/gparam.c:
	* gobject/gparam.h:
	* gobject/gparamspecs.c:
	* gobject/gparamspecs.h:
	* gobject/gvaluetypes.c:
	* gobject/gvaluetypes.h:
	  Migrating docs.


svn path=/trunk/; revision=7081
2008-06-21 22:16:14 +00:00
Stefan Kost
fedbbf5d74 Migrating docs.
* docs/reference/gobject/tmpl/objects.sgml:
	* gobject/gobject.c:
	* gobject/gobject.h:
	* gobject/gparam.h:
	  Migrating docs.


svn path=/trunk/; revision=7080
2008-06-21 20:07:57 +00:00
Stefan Kost
3f5419f6f1 Migrating docs.
* docs/reference/gobject/tmpl/gtypeplugin.sgml:
	* gobject/gtypeplugin.c:
	* gobject/gtypeplugin.h:
	  Migrating docs.


svn path=/trunk/; revision=7079
2008-06-21 18:20:43 +00:00
Stefan Kost
f22d19fc34 Add --sgml-mode to allow sgml in doc-fragments (which somehow works before
* docs/reference/gobject/Makefile.am:
	  Add --sgml-mode to allow sgml in doc-fragments (which somehow works
	  before already).
	* gobject/gboxed.h:
	* gobject/gclosure.c:
	* gobject/gparam.c:
	* gobject/gparam.h:
	* gobject/gtype.h:
	  Convert character entities back. FIx some broken sgml.


svn path=/trunk/; revision=7078
2008-06-21 17:25:17 +00:00
Stefan Kost
f2da2e8e92 Migrating docs.
* docs/reference/gobject/tmpl/gtypemodule.sgml:
	* gobject/gtypemodule.c:
	* gobject/gtypemodule.h:
	  Migrating docs.


svn path=/trunk/; revision=7077
2008-06-21 16:35:50 +00:00
Stefan Kost
bce5ebd421 Add titles back from tmpl.
* gobject/gboxed.c:
	* gobject/gclosure.c:
	* gobject/genums.c:
	* gobject/gparam.c:
	* gobject/gvalue.c:
	  Add titles back from tmpl.


svn path=/trunk/; revision=7076
2008-06-21 16:24:52 +00:00
Stefan Kost
005be9980a Migrating docs.
* docs/reference/gobject/tmpl/gtype.sgml:
	* gobject/gtype.c:
	* gobject/gtype.h:
	* gobject/gvaluetypes.h:
	  Migrating docs.


svn path=/trunk/; revision=7075
2008-06-21 16:14:18 +00:00
Stefan Kost
4b109856d0 Add one missing ':' and reformate GParamFlags docs.
* gobject/gclosure.h:
	* gobject/gparam.h:
	  Add one missing ':' and reformate GParamFlags docs.


svn path=/trunk/; revision=7074
2008-06-21 14:00:44 +00:00
Stefan Kost
fb07c65020 Migrating docs.
* docs/reference/gobject/tmpl/gparamspec.sgml:
	* gobject/gparam.c:
	* gobject/gparam.h:
	  Migrating docs.


svn path=/trunk/; revision=7073
2008-06-21 13:47:14 +00:00
Stefan Kost
d5f1c71fde Use file-names from the section file for SECTION: comments.
* gobject/gboxed.c:
	* gobject/gclosure.c:
	* gobject/genums.c:
	* gobject/gvalue.c:
	  Use file-names from the section file for SECTION: comments.


svn path=/trunk/; revision=7072
2008-06-21 12:57:06 +00:00
Stefan Kost
0b9bf79ec2 Migrating docs.
* docs/reference/gobject/tmpl/generic_values.sgml:
	* gobject/gboxed.h:
	* gobject/gtype.h:
	* gobject/gvalue.c:
	* gobject/gvalue.h:
	* gobject/gvaluetypes.c:
	  Migrating docs.


svn path=/trunk/; revision=7071
2008-06-21 12:45:49 +00:00
Stefan Kost
2ff70abe68 Fix documentation for return values.
* gobject/genums.h:
	  Fix documentation for return values.


svn path=/trunk/; revision=7070
2008-06-21 12:24:56 +00:00
Stefan Kost
83dd545044 Migrating docs.
* docs/reference/gobject/tmpl/gclosure.sgml:
	* gobject/gboxed.h:
	* gobject/gclosure.c:
	* gobject/gclosure.h:
	* gobject/gobject.c:
	* gobject/gsourceclosure.c:
	* gobject/gsourceclosure.h:
	  Migrating docs.


svn path=/trunk/; revision=7069
2008-06-21 12:18:12 +00:00
Stefan Kost
672caa1a51 Migrating docs.
* docs/reference/gobject/tmpl/enumerations_flags.sgml:
	* gobject/genums.c:
	* gobject/genums.h:
	  Migrating docs.


svn path=/trunk/; revision=7066
2008-06-21 11:27:45 +00:00
Stefan Kost
86a0f779f6 Migrating docs.
* docs/reference/gobject/tmpl/gboxed.sgml:
	* gobject/gboxed.c:
	* gobject/gboxed.h:
	* gobject/gvaluetypes.c:
	  Migrating docs.


svn path=/trunk/; revision=7065
2008-06-21 10:19:58 +00:00
Matthias Clasen
135bb794fd 2.17.2
svn path=/trunk/; revision=7032
2008-06-12 18:37:44 +00:00
Matthias Clasen
6427d30d1f 2.17.1
svn path=/trunk/; revision=7029
2008-06-12 17:21:49 +00:00
Tim Janik
0e1960fd6e g_type_class_ref() comment fixes.
svn path=/trunk/; revision=6985
2008-06-10 11:41:34 +00:00
13:34:01 Tim Janik
6908da5a57 added race condition tester from Michael Meeks with a couple fixes so it's
2008-06-10 13:34:01  Tim Janik  <timj@imendio.com>

        * tests/threadtests.c: added race condition tester from Michael Meeks
        with a couple fixes so it's not triggering development warnings. From:
        Bug 537555 - GObject instantiation not thread safe ...


svn path=/trunk/; revision=6983
2008-06-10 11:35:46 +00:00
13:15:29 Tim Janik
e9f756f17e fixed race condition where references to partially initialized classes
2008-06-10 13:15:29  Tim Janik  <timj@imendio.com>

        * gtype.c (g_type_class_ref): fixed race condition where references to
        partially initialized classes could be handed out.


svn path=/trunk/; revision=6982
2008-06-10 11:26:50 +00:00
Michael Natterer
ca5fa5691c don't define G_DISABLE_SINGLE_INCLUDES, it's in the global CPPFLAGS now.
2008-05-28  Michael Natterer  <mitch@imendio.com>

	* Makefile.am: don't define G_DISABLE_SINGLE_INCLUDES, it's in
	the global CPPFLAGS now.


svn path=/trunk/; revision=6952
2008-05-28 16:16:55 +00:00
Matthias Clasen
e14f918de9 2.17.0
svn path=/trunk/; revision=6948
2008-05-27 21:22:45 +00:00
Michael Natterer
b6cf0addba Makefile.am. build with G_DISABLE_SINGLE_INCLUDES to prevent code from
2008-05-05  Michael Natterer  <mitch@imendio.com>

	* Makefile.am. build with G_DISABLE_SINGLE_INCLUDES to prevent
	code from being checked in that breaks the build of applications
	which use G_DISABLE_SINGLE_INCLUDES.


svn path=/trunk/; revision=6876
2008-05-05 15:04:00 +00:00
Tor Lillqvist
336cc8436b configure.in More work on enabling static building on Windows. When
2008-04-21  Tor Lillqvist  <tml@novell.com>

	* configure.in
	* */Makefile.am: More work on enabling static building on
	Windows. When building statically: Also define
	GOBJECT_STATIC_COMPILATION in glibconfig.h so that also the
	variables in gparamspecs.h get declared without any
	dllimport/dllexport decorations. Don't install .def files which
	obviously have no meaning for static libraries. Don't create MS
	import libraries. Don't do any resource object files.


svn path=/trunk/; revision=6866
2008-04-21 08:38:36 +00:00
Tor Lillqvist
e2ee29dd2c Don't bother defining Autoconf variables for glib.def, gmodule.def,
2008-03-16  Tor Lillqvist  <tml@novell.com>

	* configure.in: Don't bother defining Autoconf variables for
	glib.def, gmodule.def, gobject.def and gthread.def when this can
	be handled easily in */Makefile.am which are the only files that
	use them. Remove also TESTGMODULE_EXP which isn't used at all.

	* */Makefile.am: Corrsponding changes.


svn path=/trunk/; revision=6722
2008-03-16 10:16:57 +00:00
Matthias Clasen
7cff233d6e 2.16.1
svn path=/trunk/; revision=6671
2008-03-11 02:18:18 +00:00
Matthias Clasen
e2a4ed3287 2.16.0
svn path=/trunk/; revision=6661
2008-03-10 18:09:06 +00:00
Matthias Clasen
36de18e662 2.15.6
svn path=/trunk/; revision=6593
2008-02-25 19:32:42 +00:00
Matthias Clasen
6aa117bf51 Typo fix
svn path=/trunk/; revision=6564
2008-02-23 06:34:00 +00:00
Matthias Clasen
69cb5eda41 2.15.5
svn path=/trunk/; revision=6503
2008-02-11 22:30:35 +00:00
Benjamin Otte
21fcca71dc make GParamGType require the set type during construction instead of using
* gparamspecs.c: (param_gtype_set_default), (param_gtype_validate):
make GParamGType require the set type during construction instead of
using G_TYPE_NONE, which causes issues when setting.
Bug 513073 - g_param_spec_gtype breaks with G_PARAM_CONSTRUCT

svn path=/trunk/; revision=6457
2008-02-06 09:36:47 +00:00
18:52:07 Tim Janik
0dd27821f2 added recursive mutex to protect class initialization, default interface
2008-02-05 18:52:07  Tim Janik  <timj@imendio.com>

        * gtype.c: added recursive mutex to protect class initialization,
        default interface initialization and per-class interface construction.
        a lock to this recursive mutex is held during user callback invocations
        such as initializers or finalizers, effectively allowing only one thread
        to run class/interface initializers/finalizers at a time.
        also made misc fixups. this fixes:
        Bug 64764 - Class initialization isn't thread safe.



svn path=/trunk/; revision=6454
2008-02-05 17:52:52 +00:00
18:41:22 Tim Janik
fcee4e1931 integrate tests/.
2008-02-05 18:41:22  Tim Janik  <timj@imendio.com>

        * Makefile.am: integrate tests/.

        * tests/: new directory for libgobject tests.

        * tests/Makefile.am: build and run threadtests.

        * tests/threadtests.c: test multi-threaded initializers for
        object classes and interfaces.



svn path=/trunk/; revision=6452
2008-02-05 17:42:09 +00:00
Hans Breuer
6d9726e8b9 update
2008-02-03  Hans Breuer  <hans@breuer.org>

	* **/makefile.msc.in : update


svn path=/trunk/; revision=6445
2008-02-03 22:41:06 +00:00
Matthias Clasen
fb5ddf6ecf 2.15.4
svn path=/trunk/; revision=6402
2008-01-29 00:00:31 +00:00
Matthias Clasen
1b8bad5973 2.15.3
svn path=/trunk/; revision=6347
2008-01-21 18:07:13 +00:00
Matthias Clasen
da7494c1e9 2.15.2
svn path=/trunk/; revision=6310
2008-01-14 16:43:59 +00:00
Matthias Clasen
60c8bdfe8f 2.15.1
svn path=/trunk/; revision=6267
2008-01-07 16:47:36 +00:00
Behdad Esfahbod
4ec183a164 Fix macro argument. (#505674, Areg Beketovski)
2007-12-26  Behdad Esfahbod  <behdad@gnome.org>

        * gclosure.h (G_CCLOSURE_SWAP_DATA): Fix macro argument. 
        (#505674, Areg Beketovski)


svn path=/trunk/; revision=6204
2007-12-26 19:23:21 +00:00
Matthias Clasen
48ba9ea756 2.15.0
svn path=/trunk/; revision=6180
2007-12-21 00:37:41 +00:00
Mathias Hasselmann
2de9f839a0 Use proper ChangeLog file for the rev 6098 change.
svn path=/trunk/; revision=6099
2007-12-12 10:36:08 +00:00
Mathias Hasselmann
a5427003d3 Always exit with non-zero error code when printing warnings.
* gobject/glib-genmarshal.c: Add global exit_status variable, and use
it in pad() and process_signature() to return with non-zero error code
when printing warnings. (#495294)

svn path=/trunk/; revision=6098
2007-12-12 10:19:43 +00:00
Matthias Clasen
0c01c6f1ad Replace INCLUDES by AM_CPPFLAGS, other cleanups.
2007-11-24  Matthias Clasen  <mclasen@redhat.com>

        * */Makefile.am: Replace INCLUDES by AM_CPPFLAGS, other
        cleanups.



svn path=/trunk/; revision=5932
2007-11-25 04:22:45 +00:00
21:06:47 Tim Janik
1e55738f31 initialize automake variables EXTRA_DIST and TEST_PROGS for unconditional
2007-11-21 21:06:47  Tim Janik  <timj@imendio.com>

	* Makefile.decl: initialize automake variables EXTRA_DIST and
	TEST_PROGS for unconditional appending via += in other makefiles.
	define recursive test targets: test, test-report, perf-report,
	full-report, as described here:
      http://mail.gnome.org/archives/gtk-devel-list/2007-November/msg00000.html

	* Makefile.am:
	* build/win32/vs8/Makefile.am, build/win32/dirent/Makefile.am:
	* build/win32/Makefile.am, build/Makefile.am:
	* docs/Makefile.am, docs/reference/Makefile.am:
	* docs/reference/glib/Makefile.am, docs/reference/gobject/Makefile.am:
	* gmodule/Makefile.am, tests/Makefile.am:
	* tests/refcount/Makefile.am, tests/gobject/Makefile.am:
	* glib/update-pcre/Makefile.am, glib/libcharset/Makefile.am:
	* glib/tests/Makefile.am, glib/pcre/Makefile.am:
	* glib/gnulib/Makefile.am, gobject/Makefile.am, m4macros/Makefile.am:
	* gthread/Makefile.am, glib/Makefile.am:
	include $(top_srcdir)/Makefile.decl, adapted EXTRA_DIST assignments.

	* glib/tests/Makefile.am: removed example testing rules.

	* glib/tests/testing.c: conditionalized performance and slow tests.

	* glib/gtestutils.h:
	* glib/gtestutils.c: work around g_test_config_vars not changing its
	exported value after value assignments, aparently due to symbol aliases.

	* glib/gtester.c: fixed off-by-one error which produced junk in logs.

	* configure.in: check for python >= 2.4 and provide $PYTHON for scripts.


svn path=/trunk/; revision=5914
2007-11-21 20:09:46 +00:00
Matthias Clasen
5c3887f500 Don't shift ARGV[0] to undefined. (#466557, Aidan Delaney)
2007-11-08  Matthias Clasen <mclasen@redhat.com>

        * glib-mkenums.in: Don't shift ARGV[0] to undefined.
        (#466557, Aidan Delaney)



svn path=/trunk/; revision=5827
2007-11-08 14:57:15 +00:00
Matthias Clasen
1c6dffc356 2.14.3
svn path=/trunk/; revision=5802
2007-11-07 05:42:02 +00:00
Matthias Clasen
83684e4b03 2.14.2
svn path=/trunk/; revision=5786
2007-10-16 06:33:50 +00:00
Sven Herzberg
63c721b6d0 Reviewed by Tim Janik.
2007-10-13  Sven Herzberg  <herzi@gnome-de.org>

	Reviewed by Tim Janik.

	Created marshallers that don't throw gcc warnings when compiling with
	-WUnused (fixes #359165).

	* gobject/glib-genmarshal.c: decorate return_value and invocation_hint
	with G_GNUC_UNUSED


svn path=/trunk/; revision=5781
2007-10-13 10:51:04 +00:00
Carlos Garnacho
bce526dfd0 make sure we define GType g_define_type_id in
2007-09-20  Carlos Garnacho  <carlos@imendio.com>

        * gtypemodule.h: make sure we define GType g_define_type_id in
        G_G_DEFINE_DYNAMIC_TYPE_EXTENDED so it works together with
        G_IMPLEMENT_INTERFACE. (#478459)


svn path=/trunk/; revision=5777
2007-09-20 10:56:34 +00:00
Matthias Clasen
ae35ce1aa6 2.14.1
svn path=/trunk/; revision=5770
2007-09-16 19:49:44 +00:00
Cody Russell
edf4c17165 g_type_default_interface_ref() was not ensuring working g_signal_list_ids.
2007-08-14  Cody Russell  <bratsche@gnome.org>

        * gobject/gsignal.c: g_type_default_interface_ref() was not
        ensuring working g_signal_list_ids.  Added checks for
        !G_TYPE_IS_INTERFACE (itype).                          
        (#465625, by some guy who calls himself Yeti)


svn path=/trunk/; revision=5704
2007-08-14 22:55:23 +00:00
Matthias Clasen
0b434a3cbd 2.14.0
svn path=/trunk/; revision=5674
2007-08-04 03:03:02 +00:00