Commit Graph

985 Commits

Author SHA1 Message Date
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
Matthias Clasen
b09c2ff4cd 2.13.7
svn path=/trunk/; revision=5634
2007-07-12 17:53:42 +00:00
Tim Janik
3bdefad44a use g_once_init_enter/g_once_init_leave to guard critical initialization
Tue Jul 10 12:31:50 2007  Tim Janik  <timj@imendio.com>

        * gtype.h: use g_once_init_enter/g_once_init_leave to guard critical
        initialization section of *_get_type implementations in G_DEFINE_TYPE,
        bug #65041.



svn path=/trunk/; revision=5618
2007-07-10 10:33:03 +00:00
Matthias Clasen
c4a98c9265 2.13.6
svn path=/trunk/; revision=5591
2007-06-29 17:50:00 +00:00
Tim Janik
ea4efd7bba reintroduce typedef gulong GType; for C++, to avoid C++ specific ABI
Fri Jun 22 11:31:27 2007  Tim Janik  <timj@gtk.org>

        * gtype.h: reintroduce typedef gulong GType; for C++, to avoid
        C++ specific ABI breakage.



svn path=/trunk/; revision=5582
2007-06-22 09:34:33 +00:00
Matthias Clasen
fc0a52ca3a 2.13.5
svn path=/trunk/; revision=5577
2007-06-18 17:31:49 +00:00
Cody Russell
49f802b83e Added GRegex boxed type. (#445065, Carlos Garnacho)
2007-06-15  Cody Russell  <bratsche@gnome.org>

	* docs/reference/gobject/tmpl/gboxed.sgml:
	* docs/reference/gobject/gobject-sections.txt:
	* glib/gregex.c:
	* gobject/gboxed.[ch]:
	* gobject/gobject.symbols: Added GRegex boxed type.
	(#445065, Carlos Garnacho)


svn path=/trunk/; revision=5566
2007-06-15 16:31:21 +00:00
Cody Russell
19086497ab Check for 0-sized private data. (#443869)
2007-06-14  Cody Russell  <bratsche@gnome.org>

        * gobject/gtype.c (g_type_class_add_private): Check for 0-sized
        private data. (#443869)


svn path=/trunk/; revision=5561
2007-06-15 03:50:27 +00:00
Tim Janik
71a9fa9879 always define GType unconditionally in terms of gsize, there's no need to
Thu Jun 14 23:32:00 2007  Tim Janik  <timj@gtk.org>

        * gtype.h: always define GType unconditionally in terms of gsize,
        there's no need to jump through a glong hoop ever and this fixes
        the printf modifier to %zu.



svn path=/trunk/; revision=5560
2007-06-14 21:55:41 +00:00
Tim Janik
b5986ac551 work around SGI IDO cc, fixes #363986.
Thu Jun 14 22:33:11 2007  Tim Janik  <timj@imendio.com>

        * gparamspecs.c (g_param_spec_types_init): work around SGI IDO cc,
        fixes #363986.



svn path=/trunk/; revision=5559
2007-06-14 20:56:15 +00:00
Matthias Clasen
9bb331cf6c 2.13.4
svn path=/trunk/; revision=5540
2007-06-06 04:57:11 +00:00
Matthias Clasen
f69d1b7439 2.13.3
svn path=/trunk/; revision=5531
2007-06-04 15:40:33 +00:00
Matthias Clasen
aa088c4072 2.13.2
svn path=/trunk/; revision=5511
2007-05-23 04:30:07 +00:00
Matthias Clasen
793da74d00 Move the compiler-dependency in the G_GNUC_INTERNAL definition from
2007-05-17  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Move the compiler-dependency in the G_GNUC_INTERNAL
        definition from configure-time to runtime (of the compiler).
        (#438869, Damien Carbery)

        * glib/gdebug.h:
        * glib/gmessages.h:
        * glib/gunicodeprivate.h:
        * glib/gthreadprivate.h: Move G_GNUC_INTERNAL before function
        declarations to fix compilation with sun studio.  (#438873,
        Damien Carbery)


svn path=/trunk/; revision=5497
2007-05-17 16:36:53 +00:00
Matthias Clasen
4d996274a3 2.13.1
svn path=/trunk/; revision=5478
2007-05-03 05:09:20 +00:00
Michael Natterer
a5aebabd2d also clear the NOCOPY_CONTENTS flag when replacing NULL with the empty
2007-04-25  Michael Natterer  <mitch@imendio.com>

	* gparamspecs.c (param_string_validate): also clear the
	NOCOPY_CONTENTS flag when replacing NULL with the empty string.


svn path=/trunk/; revision=5458
2007-04-25 08:48:46 +00:00
Michael Natterer
325bd373d4 don't free or modify static strings, dup them when needed and clear the
2007-04-24  Michael Natterer  <mitch@imendio.com>

	* gobject/gparamspecs.c (param_string_validate): don't free or
	modify static strings, dup them when needed and clear the
	G_VALUE_NOCOPY_CONTENTS flag. Fixes bug #432895.

	* tests/gobject/paramspec-test.c: test all GParamSpecString
	validations with static and allocated strings.


svn path=/trunk/; revision=5454
2007-04-24 13:36:58 +00:00
Ryan Lortie
dac885cba5 invoke GObjectClass.constructed() only for newly constructed objects, and
Tue Apr  3 12:34:14 2007  Tim Janik  <timj@gtk.org>

        * gobject.[hc]: invoke GObjectClass.constructed() only for newly
        constructed objects, and invoke it while the notify queue is
        still being frozen, after all CONSTRUCT* properties have been
        set and before random other properties are being set.

        * applied modified patch from Ryan Lortie to implement
        GObjectClass.constructed() to fix #425324.

2007-04-02  Ryan Lortie  <desrt@desrt.ca>

        * gobject/gobject.h: Add 'constructed' vcall to GObjectClass.
        * gobject/gobject.c (g_object_newv): call ->constructed() as last
        step of object construction.



svn path=/trunk/; revision=5441
2007-04-03 10:44:30 +00:00
Matthias Clasen
1cb4af3e96 2.13.0
svn path=/trunk/; revision=5419
2007-03-16 22:11:15 +00:00
Matthias Clasen
617862f3f0 Use g_slice. (#404430, Chris Wilson)
2007-03-15  Matthias Clasen  <mclasen@redhat.com>

        * gvaluearray.c: Use  g_slice.  (#404430, Chris Wilson)


svn path=/trunk/; revision=5406
2007-03-15 05:01:20 +00:00
Stefan Kost
399300e5e1 Add G_PARAM_STATIC_STRINGS define (fixes #418021).
* gparam.h:
Add G_PARAM_STATIC_STRINGS define (fixes #418021).

svn path=/trunk/; revision=5402
2007-03-14 19:09:33 +00:00
Tim Janik
add62500f7 marked purely functional g_type accessors as PURE or CONST, closes
Mon Mar 12 13:30:20 2007  Tim Janik  <timj@gtk.org>

        * gtype.h: marked purely functional g_type accessors as PURE or CONST,
        closes #305100.



svn path=/trunk/; revision=5400
2007-03-12 12:28:56 +00:00
Tor Lillqvist
c6efde4f62 Add comment about dup(0) and lack of /dev/stdin on Win32. (#407431)
2007-01-02  Tor Lillqvist  <tml@novell.com>

	* glib-genmarshal.c (main): Add comment about dup(0) and
	lack of /dev/stdin on Win32. (#407431)


svn path=/trunk/; revision=5335
2007-02-13 20:19:09 +00:00
Matthias Clasen
912027f0df Some file list updates (#398069, Owen Taylor)
2007-01-19  Matthias Clasen  <mclasen@redhat.com>

        Some file list updates (#398069, Owen Taylor)

        * docs/Changes-2.0.txt
        * docs/reference/README.cvs-commits
        * glib.spec.in: Remove obsolete files

        * tests/Makefile.am:
        * glib/libcharset/Makefile.am:
        * gobject/Makefile.am:
        * Makefile.am: Add some missing files to EXTRA_DIST

        * tests/timeloop-basic.c: Make it build
        * HACKING: Small updates


svn path=/trunk/; revision=5302
2007-01-19 15:50:30 +00:00
Michael Natterer
feb07512f0 removed all .cvsignore files. SVN doesn't need them.
2007-01-03  Michael Natterer  <mitch@imendio.com>

	* removed all .cvsignore files. SVN doesn't need them.


svn path=/trunk/; revision=5198
2007-01-03 11:22:36 +00:00
Tor Lillqvist
5ff1e1d80b Handle "/dev/stdin" by dup()ing fd 0 so that it works on Win32, too.
2007-01-02  Tor Lillqvist  <tml@novell.com>

	* glib-genmarshal.c (main): Handle "/dev/stdin" by dup()ing fd 0
	so that it works on Win32, too.


svn path=/trunk/; revision=5185
2007-01-01 22:31:18 +00:00
Matthias Clasen
d7b7c44e40 Define G_DEFINE_DYNAMIC_TYPE and and _EXTENDED variant. (#334437)
2006-12-29 Matthias Clasen  <mclasen@redhat.com>

        * gtypemodule.h: Define G_DEFINE_DYNAMIC_TYPE and
        and _EXTENDED variant.  (#334437)
2006-12-29 06:12:11 +00:00
Matthias Clasen
0eb82133c5 Fri Dec 15 2006 Matthias Clasen <mclasen@redhat.com>
* gtype.c (instance_real_class_get): Dereference the pointer
        before dropping the lock.  (#378078, Jonathan Matthew)
2006-12-16 04:28:43 +00:00
Tor Lillqvist
256ba23b98 makefile.mingw gmodule/makefile.mingw.in glib/makefile.mingw.in
2006-11-05  Tor Lillqvist  <tml@novell.com>

	* makefile.mingw
	* gmodule/makefile.mingw.in
	* glib/makefile.mingw.in
	* gobject/makefile.mingw.in
	* gthread/makefile.mingw.in
	* tests/makefile.mingw.in: Remove from CVS. Haven't been
	maintained or distributed for long.
2006-11-05 15:42:42 +00:00
Tim Janik
49eacae2a3 applied patch from David Necas which introduces an underscore_name option
Tue Oct 10 12:06:08 2006  Tim Janik  <timj@gtk.org>

        * glib-mkenums.in:
        * glib-mkenums.1: applied patch from David Necas which introduces
        an underscore_name option and fixes #358734.
2006-10-10 10:10:43 +00:00
Behdad Esfahbod
5e4364aac6 Include pltcheck.sh in EXTRA_DIST, and remove redefinition of TESTS.
2006-10-02  Behdad Esfahbod  <behdad@gnome.org>

        * glib/Makefile.am:
        * gobject/Makefile.am:
        Include pltcheck.sh in EXTRA_DIST, and remove redefinition of TESTS.
        (#358966)
2006-10-02 18:03:50 +00:00
Tim Janik
2d75227eb1 reverted a change to have an assert instead of a g_return_val_if_fail()
Mon Oct  2 15:50:16 2006  Tim Janik  <timj@gtk.org>

        * gvalue.c (g_value_peek_pointer): reverted a change to have an
        assert instead of a g_return_val_if_fail() here. libraries (and
        programs) should only ever g_assert or g_error if there is no way
        to carry on with the current program state. that's clearly not
        the case here.

        * ChangeLog: added missing changelog entry for 2003-12-30.
2006-10-02 13:52:13 +00:00
Matthias Clasen
20b39ffafa Fix some issues with PLT entries. 2006-09-30 13:59:01 +00:00
Tim Janik
b6a3cd8039 applied patch from Behdad with slight optimization, fixes #356175.
Fri Sep 22 13:41:02 2006  Tim Janik  <timj@imendio.com>

        * gtype.h: applied patch from Behdad with slight optimization,
        fixes #356175.

        * gobjectnotifyqueue.c: fixed include-guard macro name.
2006-09-22 12:06:28 +00:00
Hans Breuer
b3a8c3288b better filtering of G_GNUC_* stuff when generating .def files. Now also
2006-09-17  Hans Breuer  <hans@breuer.org>

	* glib/makefile.msc.in gobject/makefile.msc.in : better filtering
	of G_GNUC_* stuff when generating .def files. Now also works with
	newer (less tolerant) linkers, e.g. from vc2500e
2006-09-17 16:17:44 +00:00
Tim Janik
831cda3ca7 reimplemented floating flag handling by atomically accessing a reserved
Mon Sep 11 12:12:45 2006  Tim Janik  <timj@imendio.com>

        * gparam.c (g_param_spec_sink): reimplemented floating flag handling by
        atomically accessing a reserved GData bit, fixes #330556.
2006-09-11 10:14:05 +00:00
Tim Janik
08e3a830fb fixed to print usage and version info on STDOUT (#322502).
Tue Aug 29 13:27:33 2006  Tim Janik  <timj@gtk.org>

        * glib-mkenums.in: fixed to print usage and version info on STDOUT
        (#322502).

        * gobject.c (g_initially_unowned_init): restore ; after G_DEFINE_TYPE.
2006-08-29 11:29:24 +00:00
Matthias Clasen
ed9c3c2696 Fix some typos. (#351741, Kjartan Maraas)
2006-08-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.h:
	* glib/gscanner.c: Fix some typos.  (#351741, Kjartan Maraas)
2006-08-26 04:03:37 +00:00
Sven Neumann
89f9ebaef3 changed return value of g_value_dup_object(), fixes #343292.
Wed Aug 23 10:35:32 2006  Tim Janik  <timj@gtk.org>

        * gobject.[hc]: changed return value of g_value_dup_object(), fixes #343292.

2006-08-23  Sven Neumann  <sven@gimp.org>

        * gobject/glib-genmarshal.[c1]: added new command-line option
        "--internal" that can be used to let glib-genmarshal generate
        internal functions using the G_GNUC_INTERNAL attribute (bug #346647).
2006-08-23 08:46:21 +00:00
Sven Neumann
fa293c86c6 added new command-line option "--internal" that can be used to let
2006-08-23  Sven Neumann  <sven@gimp.org>

	* gobject/glib-genmarshal.[c1]: added new command-line option
	"--internal" that can be used to let glib-genmarshal generate
	internal functions using the G_GNUC_INTERNAL attribute (bug
#346647).
2006-08-23 06:45:55 +00:00
Tim Janik
13fe93378e conditionally thaw the notify queue after construction, so we don't
Wed Aug 16 13:55:08 2006  Tim Janik  <timj@imendio.com>

        * gobject.c: conditionally thaw the notify queue after construction,
        so we don't trigger warnings when trying to thaw an unfrozen singleton.
2006-08-16 12:09:51 +00:00
Matthias Clasen
c4bc3fe91d 2.12.2 2006-08-16 00:45:03 +00:00
Matthias Clasen
1482f7b139 Don't initialize struct members with function calls. (#349952)
2006-08-05  Matthias Clasen  <mclasen@redhat.com>

	* gparamspecs.c (g_param_spec_types_init): Don't initialize
	struct members with function calls.  (#349952)
2006-08-06 00:57:36 +00:00
Matthias Clasen
395997df20 2.12.1 2006-07-22 18:21:48 +00:00
Matthias Clasen
cf98df8b88 Copy the complete value table, not just the first 4 bytes. (#348136,
2006-07-21  Matthias Clasen  <mclasen@redhat.com>

	* gtypemodule.c (g_type_module_register_type): Copy the complete
	value table, not just the first 4 bytes.  (#348136, Coverity)
2006-07-21 13:57:25 +00:00
Matthias Clasen
7f25ce8987 2.12.0 2006-07-02 19:52:14 +00:00
Matthias Clasen
2107d8e3ed 2.11.4 2006-06-20 15:09:06 +00:00
Matthias Clasen
dd106106dc Separate groups by an empty line (#344868, Christian Persch)
2006-06-14  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_to_data): Separate groups by
	an empty line  (#344868, Christian Persch)

2006-06-14  Tor Lillqvist  <tml@novell.com>
2006-06-15 19:18:51 +00:00
Matthias Clasen
ec50b87916 2.11.3 2006-06-12 15:37:27 +00:00
Matthias Clasen
0c26468057 2.11.2 2006-06-05 17:34:53 +00:00
Behdad Esfahbod
ef3d67bbec Moving ChangeLog entry to gobject/. 2006-06-02 21:54:04 +00:00
Behdad Esfahbod
934bc42c94 Make value_name and value_nick const in structs _GEnumValue and
2006-06-02  Behdad Esfahbod  <behdad@gnome.org>

        * gobject/genum.h: Make value_name and value_nick const in structs
        _GEnumValue and _GFlagValue.  (#317793)
2006-06-02 21:42:48 +00:00
Tim Janik
4c6e514add turn off compiler warnings, #337129.
Tue May 16 14:01:43 2006  Tim Janik  <timj@imendio.com>

        * gtype.h (G_IMPLEMENT_INTERFACE): turn off compiler warnings, #337129.
2006-05-16 12:02:29 +00:00
Matthias Clasen
ba7dd25959 2.11.1 2006-05-15 17:16:28 +00:00
Matthias Clasen
4b17ee97a5 2.11.0 2006-05-03 02:05:01 +00:00
Tim Janik
f2649abe84 split up G_DEFINE_*TYPE macro definitions so C CODE arguments are not
Tue May  2 14:51:03 2006  Tim Janik  <timj@gtk.org>

        * gtype.h: split up G_DEFINE_*TYPE macro definitions so C CODE arguments
        are not passed on to nested macro calls. patch mostly courtesy of Behdad
        Esfahbod, fixes #337128.
2006-05-02 13:00:52 +00:00
Matthias Clasen
68eaeb69cb Fix some problems with my last commit 2006-04-23 04:21:08 +00:00
Matthias Clasen
2e57b11a94 Add g_type_register_static_simple 2006-04-21 16:53:02 +00:00
Matthias Clasen
a639cb7cb8 2.10.1 2006-03-07 18:30:23 +00:00
Tim Janik
e9b421f212 added case3 to hand out the original floating flag handler. required by
Tue Mar  7 17:09:07 2006  Tim Janik  <timj@gtk.org>

        * gobject.c (g_object_compat_control): added case3 to hand out the
        original floating flag handler. required by gtk+ >= 2.10.
2006-03-07 16:15:20 +00:00
Matthias Clasen
2f4f39095f 2.10.0 2006-02-24 17:17:35 +00:00
Matthias Clasen
72abb1a5ac 2.9.6 2006-02-11 14:05:58 +00:00
Matthias Clasen
8ff5b7f920 Remove C++ comment 2006-01-30 04:19:07 +00:00
Matthias Clasen
666e90eae6 2.9.5 2006-01-27 14:37:02 +00:00
Matthias Clasen
1154014f26 2.9.4 2006-01-18 17:16:21 +00:00
Matthias Clasen
f6c57b3509 Make g_object_compat_control() visible for GTK+ compilation, to avoid
2006-01-18  Matthias Clasen  <mclasen@redhat.com>

	* gobject.h: Make g_object_compat_control() visible
	for GTK+ compilation, to avoid segfaults on 64bit
	platforms.
2006-01-18 16:03:57 +00:00
Matthias Clasen
7f737f1f34 2.9.3 2006-01-17 00:00:17 +00:00
Matthias Clasen
9090c67afc 2.9.2 2006-01-06 05:07:47 +00:00
Matthias Clasen
7946d2e67e Fix the build 2006-01-06 04:47:45 +00:00
Matthias Clasen
bc87370219 Fix make check 2006-01-05 21:58:05 +00:00
Matthias Clasen
8aa8d430d2 Remove the handler trash stack, which is now unused. (g_signal_init):
2005-12-30  Matthias Clasen  <mclasen@redhat.com>

	* gsignal.c: Remove the handler trash stack, which
	is now unused.
	(g_signal_init): Remove the restriction that HandlerMatch
	must be the same size as GList, and obsolete comments
	referring to mem chunks.
2005-12-31 02:44:53 +00:00
Matthias Clasen
5882074979 Remove the handler trash stack, which is now unused.
2005-12-30  Matthias Clasen  <mclasen@redhat.com>

	* gsignal.c: Remove the handler trash stack, which
	is now unused.
2005-12-30 07:32:05 +00:00
Matthias Clasen
037ec089c5 One more 2005-12-24 07:41:19 +00:00
Matthias Clasen
ec07cf331a Add new functions.
2005-12-24  Matthias Clasen  <mclasen@redhat.com>

	* gobject.symbols: Add new functions.
2005-12-24 07:38:26 +00:00
Tim Janik
648da9d63f renamed GUnowned to GInitiallyUnowned.
Thu Dec 22 18:53:14 2005  Tim Janik  <timj@gtk.org>

        * gobject.[hc]: renamed GUnowned to GInitiallyUnowned.
2005-12-22 17:58:21 +00:00
Tim Janik
6f01d0c34f implemented G_TYPE_GTPYE. applied patch from matthias which implements
Thu Dec 22 14:59:24 2005  Tim Janik  <timj@imendio.com>

        * gvaluetypes.[hc]: implemented G_TYPE_GTPYE. applied patch
        from matthias which implements GType accessors for GValue.

        * gparamspecs.[hc]: applied patch from matthias which
        implements G_TYPE_PARAM_GTYPE.

        * gobject.[hc]:
        GUnowned: introduced a new object type that has an initially
        floating reference.
        g_object_compat_control(): allow setting of a floating flag handler.
2005-12-22 15:07:03 +00:00
Matthias Clasen
eff8046fcc 2.9.1 2005-12-09 18:05:25 +00:00
Matthias Clasen
116519a4a7 Use G_FLAGS_CLASS_TYPE. (#323273, Kalle Vahlman)
2005-12-05  Matthias Clasen  <mclasen@redhat.com>

	* genums.h (G_FLAGS_CLASS_TYPE_NAME): Use G_FLAGS_CLASS_TYPE.
	(#323273, Kalle Vahlman)
2005-12-05 18:01:51 +00:00
Tim Janik
d871f19c30 use g_slic_* for all object allocations.
Thu Dec  1 12:53:26 2005  Tim Janik  <timj@imendio.com>

        * gtype.c: use g_slic_* for all object allocations.
2005-12-01 16:33:51 +00:00
Tim Janik
b1b63c4ff3 export g_hash_table_get_type 2005-12-01 16:32:11 +00:00
Matthias Clasen
d98433b85e Silence compiler warnings.
2005-11-28  Matthias Clasen  <mclasen@redhat.com>

	* gobjectnotifyqueue.c (g_object_notify_queue_thaw):
	* gobject-query.c (main): Silence compiler warnings.

	* glib-genmarshal.c (main): Use G_N_ELEMENTS.
2005-11-28 20:33:53 +00:00
Matthias Clasen
9adc9c942d Document GObject API additions 2005-11-27 20:09:13 +00:00
Tim Janik
6e5f465924 added floating reference count. g_object_is_floating():
Wed Nov 23 18:01:46 2005  Tim Janik  <timj@imendio.com>

        * gobject.[hc]: added floating reference count.
        g_object_is_floating():
        g_object_ref_sink(): new functions to deal with floating references.
        g_object_force_floating(): new funciton for object implementations
        to set the floating flag.

        * gobject.c (g_object_init): make objects initially floating.

Wed Nov 23 17:58:13 2005  Tim Janik  <timj@gtk.org>

        * gparam.[hc]: added g_param_spec_ref_sink().
2005-11-23 17:54:41 +00:00
Tim Janik
02b62d08cc minor cleanups, implemented G_TYPE_HASH_TABLE.
Wed Nov 23 13:36:02 2005  Tim Janik  <timj@gtk.org>

        * gboxed.[hc]: minor cleanups, implemented G_TYPE_HASH_TABLE.
2005-11-23 12:37:01 +00:00
Matthias Clasen
d7deadb1e2 2.9.0 2005-11-18 13:58:48 +00:00
Matthias Clasen
92ea153ae9 const correctness fixes, found by Arjan van de Ven and gcc.
2005-11-17  Matthias Clasen  <mclasen@redhat.com>

	* glib/gbacktrace.c:
	* glib/gdate.c:
	* glib/gthread.c: const correctness fixes, found
	by Arjan van de Ven and gcc.
2005-11-17 13:17:22 +00:00
Tim Janik
0cba1b531d prepared deprecation of GMemChunk and GAllocator. added g_slice_*() API to
Tue Nov  1 16:24:20 2005  Tim Janik  <timj@imendio.com>

        * glib/gmem.[hc]: prepared deprecation of GMemChunk and GAllocator.
        added g_slice_*() API to allocate and cache small bits of memory.
        an actuall allocator implementation for g_slice_*() is still pending.

        * glib/gthread.[hc]: changes from a patch by Matthias Clasen.
        changed GRealThread list to use in-structure *next; fields instead
        of GSList, in order for thread iteration to not depenend on g_slice_*()
        indirectly.
        _g_thread_mem_private_get():
        _g_thread_mem_private_set(): added accessors for private memory,
        needed because the ordinary GPrivate implementation relies on GArray
        and GSList and therefore indirectly on working g_slice_*() allocations.

        * glib/gthread.[hc]:
        g_thread_foreach(): new public API function to loop over all existing threads.

        * glib/gdataset.c:
        * glib/gstring.c:
        * glib/gcache.c:
        * glib/garray.c:
        * glib/gqueue.c:
        * glib/gslist.c:
        * glib/glist.c:
        * glib/ghash.c:
        * glib/gtree.c:
        * glib/ghook.c:
        * glib/gmain.c:
        * glib/gnode.c:
        removed GAllocator and free list usages and accompanying locks.
        use g_slice_*() API to allocate and cache small bits of memory.

        * glib/ghook.h: removed GMemChunk field from public API.

        * glib/gslist.h:
        * glib/glist.h: deprecate allocator API, provide _free1() for consistency.

        * glib/gnode.h: deprecate allocator API.

        * glib/gmain.c: reordered GPollRec fields so g_slice_free_chain() can
        be used for poll rec lists.

        * glib/grel.c: removed mem chunk usage, and allocated tuples via g_slice_*().
        g_relation_destroy(): free all tuples from the all_tuples hash table,
        this effectively maintains the life time track keeping of tuples.
        g_relation_delete_tuple(): free tuples which are removed from the
        all_tuples hash table. this fixes a temporary leak that was present
        in the memchunk code until the destruction of the relation.
2005-11-01 18:10:31 +00:00
Matthias Clasen
12e2c276b5 Really fix #314890.
2005-10-03  Matthias Clasen  <mclasen@redhat.com>

	* glib-mkenums.in: Really fix #314890.
2005-10-03 15:46:15 +00:00
Michael Natterer
e02b163efd revert last change, it breaks all users of G_IMPLEMENT_INTERFACE() inside
2005-09-28  Michael Natterer  <mitch@gimp.org>

	* gtype.h (G_IMPLEMENT_INTERFACE): revert last change, it breaks
	all users of G_IMPLEMENT_INTERFACE() inside
	G_DEFINE_TYPE_WITH_CODE(), since apparently GCC doesn't like
	commas enclosed in {}, not (), in nested macro calls.
2005-09-27 23:19:16 +00:00
David Odin
09a819fef9 Moved the ChangeLog entry to the right ChangeLog 2005-09-27 19:01:53 +00:00
David Odin
31659726ea initialize all the fields of GInterfaceInfo in the G_IMPLEMENT_INTERFACE
* gobject/gtype.h: initialize all the fields of GInterfaceInfo in the
  G_IMPLEMENT_INTERFACE macro, to shut up a warning when compiling at -W
2005-09-26 18:35:32 +00:00
Matthias Clasen
a2b2c8143f Don't hang on '{' following a trigraph comment in the same line. (#314890,
2005-09-26  Matthias Clasen  <mclasen@redhat.com>

	* glib-mkenums.in: Don't hang on '{' following a trigraph comment
	in the same line.  (#314890, Mathias Hasselmann)
2005-09-26 15:19:24 +00:00
Tim Janik
b94a2fe66c fix pspec->name assignment which needs to be strdup()ed for non
Thu Sep 22 12:42:12 2005  Tim Janik  <timj@gtk.org>

        * gparam.c (g_param_spec_internal): fix pspec->name assignment which
        needs to be strdup()ed for non G_PARAM_STATIC_NAME pspecs. this fixes
        recently introduced crashes during plugin unloading.
        also, ensure that static pspec names are canonicalized.

        * gsignal.h: reverted last change from matthias, we don't guarantee
        that type ids aren't mangled with G_SIGNAL_TYPE_STATIC_SCOPE anywhere.
2005-09-22 10:48:04 +00:00
Matthias Clasen
a07b4b8c02 Remove the misleading comment about G_SIGNAL_TYPE_STATIC_SCOPE, since we
2005-09-20  Matthias Clasen  <mclasen@redhat.com>

	* gsignal.h (struct _GSignalQuery): Remove the misleading comment
	about G_SIGNAL_TYPE_STATIC_SCOPE, since we don't allow that
	on return types.
2005-09-20 14:28:32 +00:00
Matthias Clasen
21bbad188f Move a few strings from .data to .rodata.
2005-09-10  Matthias Clasen  <mclasen@redhat.com>

	* gtype.c (INVALID_RECURSION, check_type_name_I): Move a few strings
	from .data to .rodata.
2005-09-10 04:01:03 +00:00
Kjartan Maraas
2147c486b0 Remove some unused code. Same here And here Mark some functions static.
2005-09-08  Kjartan Maraas  <kmaraas@gnome.org>

	* gclosure.c: (g_closure_set_meta_marshal): Remove some unused
	code.
	* gsignal.c: (g_signal_emitv): Same here
	* gtype.c: (g_type_register_fundamental): And here
	* testgobject.c: Mark some functions static.
2005-09-08 06:35:44 +00:00
Matthias Clasen
8161643a39 Make the name field const. (g_signal_newv): Don't keep an unnecessary
2005-09-05  Matthias Clasen  <mclasen@redhat.com>

	* gsignal.c (struct _SignalNode): Make the name field const.
	(g_signal_newv): Don't keep an unnecessary extra copy of the
	signal name around, and don't forget to free the name if
	an existing node is reused.
2005-09-05 19:23:32 +00:00
Matthias Clasen
6d2d63f6fd Don't forget to free the tmp string 2005-09-01 13:59:05 +00:00
Matthias Clasen
f7a681d65d Intern the signal name.
2005-08-31  Matthias Clasen  <mclasen@redhat.com>

	* gobject.c (g_object_do_class_init): Intern the signal name.
2005-08-31 19:42:51 +00:00
Matthias Clasen
5e08d524c3 Intern the name here, since we need the quark anyway when sending change
2005-08-31  Matthias Clasen  <mclasen@redhat.com>

	* gparam.c (g_param_spec_internal): Intern the name here,
	since we need the quark anyway when sending change notification.
2005-08-31 19:13:26 +00:00
Matthias Clasen
63b1b0c187 More string interning 2005-08-31 17:56:49 +00:00
Matthias Clasen
3a151501cc Intern type name before registering the type.
2005-08-31  Matthias Clasen  <mclasen@redhat.com>

	* gtype.h (G_DEFINE_TYPE_EXTENDED): Intern type name
	before registering the type.
2005-08-31 14:49:20 +00:00
Matthias Clasen
07c4d80d55 Intern type names before registering the type to avoid unnecessary copies.
2005-08-31  Matthias Clasen  <mclasen@redhat.com>

	* gvaluetypes.c (g_value_types_init):
	* gtypeplugin.c (g_type_plugin_get_type):
	* gtypemodule.c (g_type_module_get_type):
	* gparam.c (g_param_type_init):
	* gobject.c (g_object_type_init):
	* genums.c (g_enum_types_init):
	* gboxed.c (g_boxed_type_init): Intern type names
	before registering the type to avoid unnecessary
	copies.
2005-08-31 14:38:18 +00:00
Matthias Clasen
4bf14f1c4e 2.8.1 2005-08-23 04:35:33 +00:00
Matthias Clasen
30828b953a Fix abi checks for ia64. 2005-08-15 05:00:57 +00:00
Matthias Clasen
6de0ca7807 2.8.0 2005-08-12 17:18:55 +00:00
Tim-Philipp Müller
7788ead137 Special-case flag value of 0. Instead of returning the first random
* gobject/genums.c: (g_flags_get_first_value): Special-case flag
value of 0. Instead of returning the first random GFlagsValue
we come across, return the GFlagsValue for 0 if it exists or
NULL if it does not exist. Never return the GFlagsValue for 0
if the requested flags value is nonzero.
2005-08-12 16:09:19 +00:00
Stepan Kasal
0169468c8c Fix typos: invokation -> invocation. 2005-08-10 10:46:55 +00:00
Matthias Clasen
ce5afcf888 Access enum and flags values as v_long/v_ulong, not v_int/v_uint, to make
2005-08-09  Matthias Clasen  <mclasen@redhat.com>

	* gvaluetransform.c: Access enum and flags
	values as v_long/v_ulong, not v_int/v_uint,
	to make value transformation of such types
	work on bigendian 64bit machines.  (#312485,
	Michael Lorenz)
2005-08-09 14:04:37 +00:00
Matthias Clasen
ddad5d479e Improve ABI checks 2005-08-06 15:34:38 +00:00
Matthias Clasen
d5c882abc4 2.7.7 2005-08-05 16:09:42 +00:00
Matthias Clasen
6e103ba100 2.7.6 2005-08-03 20:58:37 +00:00
Matthias Clasen
f881779a8c Mark the vint member as volatile, which seems to be necessary to make
2005-08-02  Matthias Clasen  <mclasen@redhat.com>

        * gclosure.c (union ClosureInt): Mark the vint member as
        volatile, which seems to be necessary to make atomic operations
        work on s390.
2005-08-03 20:20:47 +00:00
Matthias Clasen
e4c231a62a 2.7.5 2005-08-02 16:17:48 +00:00
Tim Janik
834ddd1920 turned all modifications to the first 32 integer bits in a closure into
Mon Aug  1 23:00:42 2005  Tim Janik  <timj@imendio.com>

        * gclosure.c: turned all modifications to the first 32 integer bits in a
        closure into atomic accesses. wrapped write accesses into special macros
        to keep the atomic modification logic in a single place. comment cleanups.

        * gclosure.h: made all atomicly accessed closure fields volatile.

        * gobject.h: made ref_count field volatile.
2005-08-01 21:17:50 +00:00
Tim Janik
4746cf2ce0 use g_datalist_set_flags() and g_datalist_unset_flags() to allow proper
Sun Jul 31 02:04:23 2005  Tim Janik  <timj@gtk.org>

        * gobject.c: use g_datalist_set_flags() and g_datalist_unset_flags() to
        allow proper locking around &qdata modifications.
2005-07-31 00:05:22 +00:00
Tim Janik
f0cfc267ba reverted notify_mutex introduction, since this prevents parallelized
Sat Jul 30 21:10:26 2005  Tim Janik  <timj@gtk.org>

        * gobject.c: reverted notify_mutex introduction, since this prevents
        parallelized setting of object properties on different objects, and
        serves no apparent purpose (to me at least).
        g_object_real_dispose(): removed non-atomic reference count
        modifications.
        g_object_unref(): make sure the closures array is destroyed when
        destroying signal handlers.

        * gparam.c: cosmetic changes.

        * gsignal.c: comment fixup. allow 16bit blocking count.

        * gsignal.c: reverted GClosure related changes.

        * gclosure.c: reverted premature commit of atomic reference
        counting attempt.
2005-07-30 19:46:11 +00:00
Matthias Clasen
3c6e2da565 2.7.4 2005-07-22 17:02:04 +00:00
Matthias Clasen
1760b7074d 2.7.3 2005-07-15 17:28:17 +00:00
Matthias Clasen
39ea11ce6b Make refcounting threadsafe by using atomic operations. (#166020, Wim
2005-07-15  Matthias Clasen  <mclasen@redhat.com>

	Make refcounting threadsafe by using atomic
	operations.  (#166020, Wim Taymans)

	* gobject.c: Use a recursive lock to protect the
	notify queue.
	(g_object_unref): Get rid of g_object_last_unref and
	do the last unref handling in g_object_unref.
	(g_object_ref, g_object_unref): Use atomic operations.

	* gsignal.c (struct _HandlerMatch): Use a full integer
	for the ref_count field.
	(handler_ref, handler_unref_R): Use atomic operations.

	* gparam.c (g_param_spec_ref, g_param_spec_unref):
	Use atomic operations instead of a lock to make the
	refcounting threadsafe.

	* gclosure.c (g_closure_ref, g_closure_unref): Use atomic
	operations. This is more complicated here, since the
	refcount is stored in a bitfield, so we also have
	to access all other bitfield members atomically.

	* gsignal.c (handlers_find): Read the meta_marshal flag
	of the closure atomically.

	* tests/Makefile.am (SUBDIRS): Add tests/refcount

	* configure.in: Add tests/refcount

	* tests/refcount/properties.c: Test property changes
	from multiple threads.

	* tests/refcount/signals.c: Test signal emission from
	multiple threads.

	* tests/refcount/objects.c: Test refcounting from
	multiple threads.

	* tests/refcount/objects2.c:
	* tests/refcount/properties2.c: Tests to measure the
	overhead of threadsafe refcounting.

	* glib/giochannel.c (g_io_channel_ref, g_io_channel_unref):
	Use atomic operations to make refcounting
	threadsafe.  (#166020, Wim Taymans)
2005-07-15 16:51:10 +00:00
Matthias Clasen
693b03a749 Remove G_GNUC_NULL_TERMINATED from g_object_new again, since that makes
2005-07-11  Matthias Clasen  <mclasen@redhat.com>

	* gobject.h:
	* gobject.symbols: Remove G_GNUC_NULL_TERMINATED from
	g_object_new again, since that makes gcc warn on calls of
	the form g_object_new (some_type, NULL)
2005-07-11 17:58:29 +00:00
Tor Lillqvist
521a964f8c Typo. 2005-07-09 00:12:04 +00:00
Tor Lillqvist
d22f051252 Don't use autoconf variables for the resource object files on Win32 any
2005-07-09  Tor Lillqvist  <tml@novell.com>

	* configure.in: Don't use autoconf variables for the resource
	object files on Win32 any longer. Instead handle that in the
	Makefile.am files. Check for windres.

	* glibconfig.h.win32.in: Minor tuning to match the
	configure-produced glibconfig.h closely.

	* */Makefile.am: Don't use the scripts in build/win32 to
	compile the .rc file into a resource object file. (This means
	we loose the build number increment magic, but I doubt it was
	that useful anyway.) Instead use windres directly. To pass the
	normal .o file produced by windres through libtool, which
	wants .lo files, pass it directly to the linker using a -Wl
	option.

	* */*.rc.in: Thus replace BUILDNUMBER with 0.
2005-07-08 23:04:06 +00:00
Matthias Clasen
138f260fbc 2.7.2 2005-07-08 15:48:32 +00:00
Matthias Clasen
399b0456ce 2.7.1 2005-06-30 21:01:58 +00:00
Tor Lillqvist
2e13949ab6 libtool installs/uninstalls the import library, no need to do it
2005-06-26  Tor Lillqvist  <tml@novell.com>

	* Makefile.am: libtool installs/uninstalls the import library, no
	need to do it ourselves. Do still install/uninstall the .def file,
	though.
2005-06-26 18:07:13 +00:00
Tor Lillqvist
80d0d5690f glib/Makefile.am gmodule/Makefile.am Current GNU tools do understand the
2005-06-24  Tor Lillqvist  <tml@novell.com>

	* glib/Makefile.am
	* gmodule/Makefile.am
	* gobject/Makefile.am: Current GNU tools do understand the
	PRIVATE keyword.

	* glib/gfileutils.c (g_mkdir_with_parents): Return error with
	EINVAL also for empty pathnames.
	(g_build_pathname_va): Fix typo.
2005-06-24 13:26:45 +00:00
Matthias Clasen
e884a3954b Avoid a warning. (#308295, Murray Cumming).
2005-06-19  Matthias Clasen  <mclasen@redhat.com>

	* gparam.h (GParamFlags): Avoid a warning.  (#308295,
	Murray Cumming).
2005-06-20 03:09:35 +00:00
Matthias Clasen
7ba9d5000f Re-add G_PARAM_PRIVATE as a deprecated name for bit 5, since some language
2005-06-13  Matthias Clasen  <mclasen@redhat.com>

	* gparam.h (GParamFlags): Re-add G_PARAM_PRIVATE as a
	deprecated name for bit 5, since some language bindings
	have it bound.
2005-06-13 18:08:05 +00:00
Matthias Clasen
604ad5fa3d 2.7.0 2005-06-10 15:48:25 +00:00
Matthias Clasen
b5c20b801c dup the new value before freeing the old, just in case. (#172142, Morten
2005-05-20  Matthias Clasen  <mclasen@redhat.com>

	* gvaluetypes.c (g_value_set_string): dup the new value
	before freeing the old, just in case.  (#172142, Morten
	Welinder)
2005-05-20 20:51:38 +00:00
Matthias Clasen
5ece1d7388 Mention 64bit integer types.
2005-05-13  Matthias Clasen  <mclasen@redhat.com>

	* gobject/glib-genmarshal.1:
	* gobject/glib-genmarshal.xml: Mention 64bit integer
	types.
2005-05-13 18:09:01 +00:00