Commit Graph

456 Commits

Author SHA1 Message Date
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
Owen Taylor
2ae1a46b4c Add g_object_add/remove_toggle_ref() functions to get notification when a
2005-05-05  Owen Taylor  <otaylor@redhat.com>

        * gobject.[ch] gobject.symbols: Add
        g_object_add/remove_toggle_ref() functions to get notification
        when a reference count is the last remaining reference; this
        enables better memory management for language bindings.
        (http://mail.gnome.org/archives/gtk-devel-list/2005-April/msg00095.html)

2005-05-05  Owen Taylor  <otaylor@redhat.com>

        * glib/gdataset.[ch] glib/gdatasetprivate.h: Add
        g_datalist_set/unset_flags(), g_datalist_get_flags() functions
        to squeeze some bits into a GDataSet... this is needed for
        efficient implementation of toggle references in GObject.

        * tests/gobject/references.c tests/gobject/Makefile.am:
        Add a test case for weak and toggle references.

        * glib/gfileutils.[ch]: Rename g_file_replace() back
        to g_file_set_contents().

        * glib/glib.symbols: Update.

2005-05-05  Owen Taylor  <otaylor@redhat.com>

        * glib/Makefile.am glib/glib-sections.txt gobject/gobject-sections.txt:
        Update

        * gobject/tmpl/objects.sgml: Document toggle-references.
2005-05-05 14:57:29 +00:00
Matthias Clasen
a82bcb3107 Add a boxed type for GDate. (#301787, Tim-Philipp Müller)
2005-04-29  Matthias Clasen  <mclasen@redhat.com>

	* gobject.symbols:
	* gboxed.h (G_TYPE_DATE):
	* gboxed.c: Add a boxed type for GDate. (#301787, Tim-Philipp
	Müller)
2005-04-29 18:33:41 +00:00
Matthias Clasen
45dc8b5c9a Don't do the second lookup if the name was already canonical. (#171502,
2005-03-25  Matthias Clasen  <mclasen@redhat.com>

	* gparam.c (param_spec_ht_lookup): Don't do the second
	lookup if the name was already canonical.  (#171502, Morten
	Welinder)
2005-03-26 03:00:44 +00:00
Manish Singh
4635159309 cast away any constness on assignment.
Tue Mar 22 14:15:23 2005  Manish Singh <yosh@gimp.org>

        * gparam.c (g_param_spec_internal): cast away any constness on
        assignment.
2005-03-22 22:16:10 +00:00
Matthias Clasen
169da6ebcb forgotten log entry 2005-03-22 03:49:01 +00:00
Matthias Clasen
39f7b0680c Avoid forcing extra newlines when using template files. (#171005)
2005-03-21  Matthias Clasen  <mclasen@redhat.com>

	* glib-mkenums.in: Avoid forcing extra newlines when using
	template files.  (#171005)
2005-03-22 03:48:05 +00:00
Matthias Clasen
4bd613efc4 Don't copy strings which are marked as static. Don't allow non-canonical
2005-03-20  Matthias Clasen  <mclasen@redhat.com>

	* gparam.c (g_param_spec_internal): Don't copy strings
	which are marked as static. Don't allow non-canonical static
	names.

	* gparam.h (GParamFlags): Add G_PARAM_STATIC_{NAME,NICK,BLURB}
	flags.  (#160655, Ben Maurer)
2005-03-21 04:55:26 +00:00
Hans Breuer
6b55164587 handle galiasdef.c (although completely useless for msvc build)
2005-03-18  Hans Breuer  <hans@breuer.org>

	* glib/makefile.msc.in : handle galiasdef.c (although completely
	useless for msvc build)

	* glib/gbacktrace.c glib/gmessage.c : need at least _WIN_VER 0x0401
	for IsDebuggerPresent()

	* gobject/makefile.msc.in : handle gobjectaliasdef.c
2005-03-18 17:44:51 +00:00
Manish Singh
096502464e Shut up CVS 2005-03-17 04:02:27 +00:00
Matthias Clasen
3448a27829 Make work again.
2005-03-14  Matthias Clasen  <mclasen@redhat.com>

	* abicheck.sh: Make work again.

	* gsourceclosure.c: Fix a typo.

	Make PLT-reduction work with gcc4, and don't include
	everything in gobjectalias.h:

	* gobject.symbols: Group symbols by header and source
	file.
	* makegobjectalias.pl: Protect definitions by the same
	preprocessor symbols used to guard the headers. Move
	the alias declarations to a separate file which is
	produced when calling makegalias.pl -def
	* Makefile.am (gobjectaliasdef.c): Add a rule to
	build this file.
	* *.c: Include gobjectalias.h after the other i
        GLib headers, include gobjectaliasdef.c at the bottom.
2005-03-14 06:47:51 +00:00
Matthias Clasen
d927076f89 Add the new attributes here too.
2005-03-08  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.symbols: Add the new attributes here too.
2005-03-08 05:59:03 +00:00
Matthias Clasen
6aac5ce82c Define G_GNUC_NULL_TERMINATED. (#164706, Marc Meissner)
2005-03-08  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmacros.h: Define G_GNUC_NULL_TERMINATED.
	(#164706, Marc Meissner)

	* glib/gstrfuncs.h:
	* glib/gfileutils.h: Use G_GNUC_NULL_TERMINATED where
	appropriate.
2005-03-08 05:41:45 +00:00
Matthias Clasen
20967643a3 Small cleanup (use G_BEGIN/END_DECLS). (#168474, Fabricio Barros Cabral)
2005-03-07  Matthias Clasen  <mclasen@redhat.com>

	* glib/gdebug.h: Small cleanup (use G_BEGIN/END_DECLS).
	(#168474, Fabricio Barros Cabral)
2005-03-08 05:15:57 +00:00
Tor Lillqvist
b8997fbe90 Don't distribute glib.def. (#167496, J. Ali Harlow)
2005-02-24  Tor Lillqvist  <tml@novell.com>

	* Makefile.am (BUILT_EXTRA_DIST): Don't distribute
	glib.def. (#167496, J. Ali Harlow)

	* gobject/Makefile.am (EXTRA_DIST): Don't distribute
	gobject.def. (#167496, J. Ali Harlow)
2005-02-24 23:52:35 +00:00
Manish Singh
f5db7d0bb3 feed the contents of config.h and glibconfig.h into the preprocessor,
Sun Feb  6 22:00:46 2005  Manish Singh  <yosh@gimp.org>

        * abicheck.sh: feed the contents of config.h and glibconfig.h
        into the preprocessor, since glib.symbols could need #defines
        from them.
2005-02-07 06:01:18 +00:00
Matthias Clasen
1adf109e5d Define a HAVE_GNUC_VISIBILITY automake conditional.
2005-02-04  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Define a HAVE_GNUC_VISIBILITY automake
	conditional.

	* glib/Makefile.am (TESTS): Only check the abi if
	the compiler supports visibility, otherwise we
	know there will be (harmless) extra symbols.
	(#166181, Ed Avis)
2005-02-05 03:02:20 +00:00
Matthias Clasen
9bd80d9cb4 Cosmetic fixes (#163792, Benoît Carpentier):
2005-01-12  Matthias Clasen  <mclasen@redhat.com>

	Cosmetic fixes (#163792, Benoît Carpentier):

	* gobject-query.c (main): Remove duplicate lines.

	* gvaluetransform.c: Remove duplicate definitions of
	value_transform_[u]int64_[u]int64.
2005-01-12 17:27:18 +00:00
Owen Taylor
de67d93121 Add gmodule-export-2.0.pc to AC_CONFIG_FILES.
2005-01-11  Owen Taylor <otaylor@redhat.com>

        * configure.in: Add gmodule-export-2.0.pc to AC_CONFIG_FILES.

        * glib/Makefile.am gobject/Makefile.am gthread/Makefile.am:
        Use grep | head -n 1 instead of grep -m 1 which doesn't work
        with slightly older versions of GNU grep in
        install-libtool-import-lib rule.
2005-01-11 20:39:00 +00:00
Matthias Clasen
3d1e4844bb 2.6.1 2005-01-07 16:58:16 +00:00
Tor Lillqvist
bd77b4b4a9 configure.in glib/Makefile.am Win32 cross-compilation fixes. (#163144, J.
2005-01-06  Tor Lillqvist  <tml@iki.fi>

	* configure.in
	* glib/Makefile.am
	* gobject/Makefile.am: Win32 cross-compilation fixes. (#163144,
	J. Ali Harlow)
2005-01-06 19:15:49 +00:00
Tor Lillqvist
b687214a7c glib/Makefile.am glib.def and gobject.def are generated, not in $(srcdir).
2005-01-06  Tor Lillqvist  <tml@iki.fi>

	* glib/Makefile.am
	* gobject/Makefile.am: glib.def and gobject.def are generated, not
	in $(srcdir). (#163143, J. Ali Harlow)
2005-01-06 17:18:12 +00:00
Matthias Clasen
b1f6eaf987 Add an OS_LINUX conditional.
2004-12-27  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Add an OS_LINUX conditional.

	* glib/Makefile.am (TESTS): Only check the ABI on
	linux, since the shell script is not portable, and libtool
	deficiencies may distort the ABI on other platforms.  (#161741)
2004-12-27 06:55:08 +00:00
Matthias Clasen
32247a04c6 2.6.0 2004-12-16 05:48:25 +00:00
Matthias Clasen
23265157fb 2.5.7 2004-12-02 21:13:05 +00:00
Tor Lillqvist
b42a73ec9f glib/Makefile.am (glib.def) gcc -E complains "linker unused because
2004-11-30  Tor Lillqvist  <tml@iki.fi>

	* glib/Makefile.am (glib.def)
	* gobject/Makefile.am (gobject.def): gcc -E complains "linker
	unused because linking not done" if told to preprocess an
	*.symbols file. Use '-' and redirection to pass it as standard
	input instead.
2004-11-30 21:55:48 +00:00
Matthias Clasen
e761d2e3a6 Use the perl found by configure. (#149826, Morten Welinder)
2004-11-29  Matthias Clasen  <mclasen@redhat.com>

	* Makefile.am: Use the perl found by configure.  (#149826,
	Morten Welinder)
2004-11-29 05:42:41 +00:00
Manish Singh
1864918b3b filter G_GNUC before PRIVATE so $ is still true.
Sun Nov 28 13:21:12 2004  Manish Singh  <yosh@gimp.org>

        * abicheck.sh: filter G_GNUC before PRIVATE so $ is still true.
2004-11-28 21:22:05 +00:00
4
c77ae3942c applied patch by sven@gimp.org (#153727) to reduce signal connection
Sun Nov 28 01:37:54 2004    <timj@birnet.org>

        * gsignal.c: applied patch by sven@gimp.org (#153727) to reduce
        signal connection complexity from O(n_handlers) to O(1).
2004-11-28 00:40:07 +00:00
Manish Singh
43fde23cee filter out G_GNUC stuff when doing the compare.
Thu Nov 25 14:09:41 2004  Manish Singh  <yosh@gimp.org>

        * abicheck.sh: filter out G_GNUC stuff when doing the compare.
2004-11-25 22:10:25 +00:00