You can pass a NULL GValue * to any of g_value_array_insert, _prepend or
_append to add a new, uninitialized value. This is a very useful
shortcut, and it should be documented rather than left languishing in a
comment in the implementation.
Fixes Gnome bug #552363.
When creating a binding between two object properties we might want to
automatically synchronize the two values at the moment of the binding
creation, instead of waiting for the next change.
The G_BINDING_SYNC_CREATE flag does exactly what it says on the tin.
https://bugzilla.gnome.org/show_bug.cgi?id=622281
This is a minimal patch-out of the galias functionality. We will do a
release like this so that we can easily back it out if there are
reported problems.
A more substantial cleanup (mostly removing #includes from every file)
will follow if there are no issues.
Since an object instance might have a lot of bindings, using a list
might become a performance issue when removing them. Using a simple
hash table guarantees constant time lookup, which is the most common
operation.
GBinding is a simple, opaque object that represents a binding between a
property on a GObject instance (source) and property on another GObject
instance (target).
https://bugzilla.gnome.org/show_bug.cgi?id=348080
g_object_notify_by_pspec() will emit the "notify" signal on the given
pspec, short-circuiting the hash table lookup needed by
g_object_notify(). The suggested and documented way of using
g_object_notify_by_pspec() is similar to the way of emitting signals
with their ID.
Emission tests (with no handler attached to the notify signal) show a
10-15% speedup over using g_object_notify().
https://bugzilla.gnome.org/show_bug.cgi?id=615425
This adds static markers and systemtap tapsets for:
* type creation
* object lifetimes (creation, ref, unref, dispose, finalize)
* signal creation and emission
Signal emissions and finalization marker have a corresponding
*_end (or *-end in dtrace) version that is when the corresponding
operation is finished.
https://bugzilla.gnome.org/show_bug.cgi?id=606044
Add a @valuenum@ substitution that outputs the integer value of a
particular enum value. The value is determined by using (sandboxed)
perl to evaluate C expression. If evaluation fails then glib-mkenums
dies loudly. Evaluation is only enabled if '@valuenum@' appears in the
template file, so existing users will not be affected.
Currently, specifying a comment template in the template file results in
the given template being appended to the default (C-style) one rather
than replacing it.
This causes it to be replaced outright.
Bug 617940.
Don't keep the lists of source files for libglib, libgobject and
libgio in the VS project files in addition to the canonical location,
the corresponding Makefile.am files.
Instead, generate the corresponding .vcproj files at make dist time
using the C preprocessor, from template files called .vcprojin. We
still list explicitly in the .vcprojin files some of the
Windows-specific source files, and the sources files of gnulib and
pcre.
This adds the two new functions g_type_add_class_private()
and g_type_class_get_private() and a convenience macro
for the getter G_TYPE_CLASS_GET_PRIVATE().
Appease the MS C++ compiler by using _val instead of __value as a variable
name in G_VALUE_COLLECT_INIT.
Problem found by Haakon Sporsheim <haakon.sporsheim@gmail.com>.
Re-closes: bgo#608602
This way we don't need to keep a custom array that we bsearch on (and
that isn't threadsafe) but can use the gtype.c machinery that is
threadsafe. And fast, too!
https://bugzilla.gnome.org/show_bug.cgi?id=554887
This eases cleaning up these functions.
One optimization in value_set_internal() was lost in the process. It
shouldn't cause too many issues when all is said and done.
https://bugzilla.gnome.org/show_bug.cgi?id=554887
It makes the IBM XL C Compiler (the 'native' non-free compiler
on the AIX 5.3 and 6.1 platform) stop compiling with syntax error.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=581300
Signed-off-by: Javier Jardón <jjardon@gnome.org>
The reason we need to enforce this is that the GTypeValueTable
documentation explicitly states that memory is memset to 0 when the
value_init function is called.
https://bugzilla.gnome.org/show_bug.cgi?id=603590
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
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
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
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
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.
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
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
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.
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.
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.
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.
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
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
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
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
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.
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.
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.
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-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
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
* 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-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
* 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-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-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-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-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 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-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-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-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-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-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-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-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 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
* 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
* 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-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 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-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-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-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-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
* 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-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 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
* 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-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-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-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-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
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
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
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-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-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-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
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
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-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-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
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-02 Behdad Esfahbod <behdad@gnome.org>
* glib/Makefile.am:
* gobject/Makefile.am:
Include pltcheck.sh in EXTRA_DIST, and remove redefinition of TESTS.
(#358966)
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-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
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.
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 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).
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-05 Matthias Clasen <mclasen@redhat.com>
* gparamspecs.c (g_param_spec_types_init): Don't initialize
struct members with function calls. (#349952)
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-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-02 Behdad Esfahbod <behdad@gnome.org>
* gobject/genum.h: Make value_name and value_nick const in structs
_GEnumValue and _GFlagValue. (#317793)
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.
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-01-18 Matthias Clasen <mclasen@redhat.com>
* gobject.h: Make g_object_compat_control() visible
for GTK+ compilation, to avoid segfaults on 64bit
platforms.
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.
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.
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-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.
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-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-26 Matthias Clasen <mclasen@redhat.com>
* glib-mkenums.in: Don't hang on '{' following a trigraph comment
in the same line. (#314890, Mathias Hasselmann)
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-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-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-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-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.
* 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-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-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.
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.
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.
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-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-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-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-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-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-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-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-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-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-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-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)
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-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-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-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)
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-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.
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-23 Matthias Clasen <mclasen@redhat.com>
Fix a problem with the PLT reduction changes which caused the
internal aliases to lose all attributes.
* glib/glib.symbols: Add attribute annotations.
* glib/makegalias.pl: Keep attribute annotations, but strip PRIVATE.
* glib/Makefile.am (glib.def): Strip attribute annotations, but keep
PRIVATE.
2004-11-11 J. Ali Harlow <ali@juiblex.co.uk>
* gobject/Makefile.am:
* glib/Makefile.am (gtk.def): Use embedded tab rather than '\t'
escape sequence. (#157951)
Mon Nov 8 10:47:41 2004 Manish Singh <yosh@gimp.org>
* gobject/gsourceclosure.c: removed wrap_g_io_channel_ref() hack,
since g_io_channel_ref() has a compatible API now.
2004-10-29 Hans Breuer <hans@breuer.org>
* glibconfig.h */makefile.msc.in : updated [and finally fixed my
script to produce ready to go de-in(ed) files, w/o autotools]
* */*.rc.in : updated copyrights to 2004
* glib/gutils.c : some CSIDL_* defines lacking from older SDK;
use the same fallback mecahnism as on *NIX where ever applicable
2004-10-26 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols: Add new symbols.
* abicheck.sh: Don't include symbols which are just in the
symbols list for .defs file compatibility.
2004-10-23 Matthias Clasen <mclasen@redhat.com>
* gtype.h (GTypeInterfaceCheckFunc): Rename first parameter to
check_data, since apparently the system headers on AIX leak a
macro named func_data. (#155178, Andrea Campi)
Wed Oct 6 02:12:44 2004 <timj@birnet.org>
* gtype.c (g_type_instance_get_private): applied patch from Jean-Yves
Lefort <jylefort@brutele.be> to not access the instance_real_class_bsa
pointer without holding the instance_real_class lock.
2004-10-04 Matthias Clasen <mclasen@redhat.com>
* gsignal.c (g_signal_add_emission_hook): Improve the warning
if G_SIGNAL_NO_HOOKS is set. (#154299, Nickolay V. Shmyrev)
2004-09-22 Tor Lillqvist <tml@iki.fi>
* Makefile.am (install-libtool-import-lib): [Win32] Add code to
remove the bug-compatibility entries (see #134813, and related
comments below) from the import library. The PRIVATE keyword in
the .def file is supposed to mean that, but it isn't implemented
yet by GNU ld.
* makegobjectalias.pl: In case the symbol is followed by some
stuff ("PRIVATE") that's intended for the .def file, use just the
actual symbol.
* gobject.symbols: For binary bug compatibility on Win32, add the
g_slist_remove_all and g_unichar_validate symbols inside #ifdef
INCLUDE_INTERNAL_SYMBOLS. (See #134813 and log entries from March
below.)
2004-09-16 Matthias Clasen <mclasen@redhat.com>
Implement the same PLT reduction technique used in GTK+:
* Makefile.am: Generate gobjectalias.h from gobject.symbols.
(BUILT_SOURCES): Add gobjectalias.h.
* makegobjectalias.pl: Script to generate gobjectalias.h.
* *.c: Include gobjectalias.h
2004-09-16 Matthias Clasen <mclasen@redhat.com>
Add ABI control using the same technique that is used in GTK+.
* gobject.symbols: Master list of symbols.
* gobject.def: Removed. It is now generated from gobject.symbols.
* Makefile.am (gobject.def): Generate from gobject.symbols.
(TESTS): Add abicheck.sh
(EXTRA_DIST): Add abicheck.sh
(export_symbols): Don't export _-prefixed symbols.
* gtype.h:
* gtype.c: Move the declarations of the various _init() functions
to the header, and mark them as G_GNUC_INTERNAL.
2004-07-21 Matthias Clasen <mclasen@redhat.com>
* glib-genmarshal.c (put_marshal_value_getters): Use the
correct fields for enums and flags. (#145015,Tommi Komulainen)
Tue Jul 6 00:46:43 2004 Matthias Clasen <maclas@gmx.de>
* gtypemodule.h:
* gtypemodule.c: Fix the declarations of the new
functions to return GType, not void.
Also add missing includes. (#145508, Morten Welinder)
Wed Jun 23 12:55:34 2004 Matthias Clasen <maclas@gmx.de>
* gtype.h (G_DEFINE_TYPE_EXTENDED): Add an initializer for
the g_define_type_info.value_table. (#144678,Mariano
Suárez-Alvarez)
Fri Jun 18 22:55:36 2004 Matthias Clasen <maclas@gmx.de>
* gsourceclosure.h (__G_SOURCECLOSURE_H__): Actually
define the guard after checking for it. (#108038,
Morten Welinder)
2004-04-30 Matthias Clasen <mclasen@redhat.com>
* === Released 2.4.1 ===
* glib/libcharset/Makefile.am (INCLUDES): Add -I$(top_srcdir)
to make make distcheck happy.
* configure.in: Version 2.4.1, interface age 1.
* NEWS: Updates
2004-04-15 Matthias Clasen <mclasen@redhat.com>
* gparamspecs.c (param_float_init): Correct the initial
minimal value to be -G_MAXFLOAT. The initial values were
inconsistant before, with the initial default being smaller
than the inital minimum.
(param_double_init): Correct the initial minimal value
to be -G_MAXDOUBLE.
* glib/tmpl/types.sgml: Correct the description of the
gfloat and gdouble ranges.
2004-03-06 Tor Lillqvist <tml@iki.fi>
* README.win32: Update.
* configure.in
* Makefile.am
* */Makefile.am: Drop the hand-written makefile.mingw(.in)
files. They haven't been maintained in a long time. As several
people have managed to build GLib for Win32 using the
autoconfiscation mechanism, there is no real reason to even try to
maintain the hand-written mingw makefiles.
2004-03-04 Tor Lillqvist <tml@iki.fi>
* gobject.def: Another of the glib DLL's functions was erronously
present in the stable branch's gobject.def: g_unichar_validate,
and nobody noticed until too late. Thus there are applications
deployed that expect it to be found in the gobject DLL, and to
keep ABI compatibility, we must keep it there forever. Argh.
Mon Mar 1 16:49:51 2004 Owen Taylor <otaylor@redhat.com>
* === Released 2.3.5 ===
* configure.in: Version 2.3.5, interface ago 0.
* NEWS: Some further updates.
2004-03-01 Tor Lillqvist <tml@iki.fi>
* gobject.def: Add g_slist_remove_all back for ABI
compatibility. That entry point actually is in the glib DLL, but
it was at some time many years ago by mistake added to
gobject.def. Thus there presumably are executables out there that
expect it to be exported from the gobject DLL. We don't want to
break those. (#134813, J. Ali Harlow)
Tue Feb 3 21:24:01 2004 Tim Janik <timj@gtk.org>
* gtype.h (_G_TYPE_CVH): provide a short-cut version for
this macro in case value->g_type==checked_type for gcc, similar
to instance and class check short-cuts. this speeds up code that
makes frequent use of G_VALUE_HOLDS_*() (e.g. setters/getters).
* gtype.c (type_data_last_unref_Wm): don't call class-cache functions
for the uncached case, this rendered g_type_class_unref_uncached()
useless. pointed out by Stefan Westerfeld.
Sat Jan 24 18:20:13 2004 Tim Janik <timj@gtk.org>
* gtype.h: prefixed the parent_class variable defined by G_DEFINE_TYPE()
with type_name. removed type_parent_class argument
from G_DEFINE_TYPE_EXTENDED().
Sun Jan 11 15:34:35 2004 Manish Singh <yosh@gimp.org>
* gsourceclosure.c: wrap g_io_channel_ref in a function that returns
the passed in GIOChannel, so we aren't abusing GBoxedCopyFunc
semantics. Fixes bug #131076.
Sat Jan 10 02:43:20 2004 Tim Janik <timj@gtk.org>
* gtype.h: made G_DEFINE_TYPE_INTERNAL() public by renaming it to
G_DEFINE_TYPE_EXTENDED() and moving it into the appropriate section.
2003-12-30 Murray Cumming <murrayc@usa.net>
* gobject/glib-mkenums.in: Added a lowercase_name option, to be used
next to the enum declaration, where the flag option is already used,
when it is not possible to guess where to put the underscores in the
_get_type() function name, for instance for GNOMEVFSURIHide.
Wed Dec 17 23:29:17 2003 Matthias Clasen <maclas@gmx.de>
* gvalue.c (g_value_peek_pointer): Use g_assert() instead of
g_return_val_if_fail(), suggested by Sheldon Simms.
Sat Nov 29 14:57:20 2003 Tim Janik <timj@gtk.org>
* gobject.c: fix g_object_set() whithin _init() implementations
not working for construct-only properties.
(g_object_init): make the object enter a construct_objects list.
(g_object_newv): remove object from construct_objects after creation.
(g_object_set_valist):
(g_object_set_property): allow construct-only properties for
objects which are in construct_objects.
Thu Nov 27 17:53:52 2003 Tim Janik <timj@gtk.org>
* gtype.[hc]:
(g_type_class_peek_static): variant of class_peek() which works for
static types only.
* gobject.c:
(g_object_do_class_init): make ::notify a run-action signal.
(g_object_newv): use g_type_class_peek_static() by default to
speed up common code path (trades two write-locks for one read-lock).
(g_object_disconnect):
(g_object_connect): allow signal specification words to be
seperated by '-'.
(g_object_set_valist):
(g_object_new_valist): don't leak values.
(g_object_get_property): check property for readability.
(g_object_set_property): check property for writability and to
not be construct-only.
(g_object_set_valist): check property to not be construct-only.
Tue Oct 14 17:40:19 2003 Owen Taylor <otaylor@redhat.com>
* gparamspecs.[ch]: Add a new GParamSpecOverride type
that is a pointer to a different paramspec in a parent
class or interface.
* gparam.[ch]: Add g_paramspec_get_redirect_target()
which follows GParamSpecOverride to the real property.
Make g_param_spec_pool_list() hand redirections,
properties on interfaces.
* gobject.[ch] gobjectnotifyqueue.c: Add
g_object_interface_install_property,
g_object_interface_find_property,
g_object_interface_list_properties(). Redirect virtually all
publically exposed GParamSpec's to the redirect target if
any. (->constructor is the exception.)
(#105894)
Thu Oct 2 01:16:50 2003 Owen Taylor <otaylor@redhat.com>
* gtype.[ch]: Add g_type_add/remove_interface_check(),
which allows inserting a post-interface-initialization
check.
* testgobject.c: Fix a deprecated usage.
Mon Sep 29 10:51:01 2003 Owen Taylor <otaylor@redhat.com>
* gtype.[ch]: Add g_type_default_interface_ref/peek/unref
for accessing the default vtable of an interface.
Fri Sep 26 17:24:53 2003 Owen Taylor <otaylor@redhat.com>
* gtype.c (g_type_instance_get_private): You can
have instance_real_class_bsa be non-NULL, but still
the class not be in the bsa. (Found by Kris Rietveld)
Fri Sep 12 16:31:40 2003 Owen Taylor <otaylor@redhat.com>
* gsignal.[ch]: Add g_signal_accumulator_true_handled(), to
do TRUE-stops-emit signals.
* Makefile.am: Move testoverride.c and testifaceinit.c to
tests/gobject.
2003-09-12 Matthias Clasen <maclas@gmx.de>
Make the g_value_set_x_take_ownership() functions "official"
part of the API (#100948):
* gvaluetypes.[hc]: Add g_value_take_string() (synonym to the
now deprecated g_value_set_string_take_ownership()).
* gparam.[hc]: Add g_value_take_param() (synonym to the
now deprecated g_value_set_param_take_ownership()).
* gobject.[hc]: Add g_value_take_object() (synonym to the
now deprecated g_value_set_object_take_ownership()).
* gboxed.[hc]: Add g_value_take_boxed() (synonym to the
now deprecated g_value_set_boxed_take_ownership()).
* gobject/gobject-sections.txt: Add new g_value_take_x() functions.
* gobject/tmpl/param_value_types.sgml: Document new g_value_take_x()
functions. (#100948)
Tue Sep 2 19:37:21 2003 Tim Janik <timj@gtk.org>
* gtype.[hc]: added support for a "default vtable" per interface,
that interface vtables are initialized from.
the default vtable is initialized and finalized through class_init,
class_finalize and class_data from the interfaces GTypeInfo struct.
(type_data_last_unref_Wm): unload child plugin before unreffing
parent type.
testifaceinit.c: minor fixups. fixed up base_init() assertions, since
with a default vtable, base_init() may be called multiple times.
added default initializer to iface1.
Tue Sep 2 14:53:41 2003 Tim Janik <timj@gtk.org>
* gobject-query.c (main): fix iterating over fundamental types.
* gtype.c: applied patch from owen which keeps internal
class initialization state to maintain class and interface
initialization happen in the order of:
1. class' base_init
2. interface' base_init
= interfaces added after here are immediately base_init-ialized
3. class_init
4. Interface_init
= interfaces added here are immediately Interface_init-ialized
Wed Aug 27 01:25:40 2003 Owen Taylor <otaylor@redhat.com>
* Makefile.am testifaceinit.c: Add a detailed test case
for interface initialization, testing the ability to
add interfaces during class initialization and the ordering
of interface base_init, class init, and interface_init.
(Expected to fail at the moment.)
Mon Aug 25 14:51:46 2003 Manish Singh <yosh@gimp.org>
* gtypemodule.c (g_type_module_register_type): fix typo in last
commit, cast to GTypeValueTable * to get rid of const warning.
Mon Aug 25 14:16:48 2003 Owen Taylor <otaylor@redhat.com>
* gtypemodule.c (g_type_module_register_type): Clarify
docs on the return. Fix a memory leak if a type with a
value table is reloaded.
Tue Aug 19 05:21:04 2003 Tim Janik <timj@gtk.org>
* testgobject.c (main): check private instance data after
initialization.
* gtype.c: for instances with private data, store the real class
pointer in a bsearch array during class initialization.
(g_type_instance_get_private): fetch the real class of
an instance from the bsearch array if necessary.
Tue Aug 19 04:08:14 2003 Tim Janik <timj@gtk.org>
* gvalue.c: adapt to new gbsearcharray.h code.
(g_value_register_transform_func): turn transform function
replacement into a valid operation.
* gsignal.c: adapt to new gbsearcharray.h code.
* gboxed.c: adapt to new gbsearcharray.h code.
2003-08-13 Tor Lillqvist <tml@iki.fi>
* glib/Makefile.am
* gmodule/Makefile.am
* gobject/Makefile.am
* gthread/Makefile.am: Use srcdir also in references to the .def
files. (#118885, Jeff Bonggren)
Wed Aug 6 09:57:14 2003 Owen Taylor <otaylor@redhat.com>
* testgobject.c (test_signal_accumulator): Add check
for instance private usage within in instance_init.
(Currently will fail.)
Tue Jul 8 22:29:31 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtype.c (type_class_init_Wm): Only access node->data->instance
when the node is instantiable.
Tue Jul 8 14:55:27 2003 Owen Taylor <otaylor@redhat.com>
* gtype.c (type_class_init_Wm): Initialize
node->data->instance.private_size here rather than
in type_data_make_W() since the class init for the parent
class may have changed pnode->data->instance.private_size.
(#116921, reported by Soeren Sandmann)
2003-06-17 Matthias Clasen <maclas@gmx.de>
* acinclude.m4 (JH_PATH_XML_CATALOG, JH_CHECK_XML_CATALOG): New
macros to check for XML catalog contents and path, borrowed from
gtk-doc.
* configure.in: New option --enable-man to enable regeneration of
man pages from Docbook, if the necessary tools are found.
* gobject/Makefile.am: Add rule to regenerate man pages from
Docbook.
(man_MANS): Add glib-mkenums.1, glib-genmarshal.1 and gobject-query.1.
(content_files): Add glib-mkenums.xml, glib-genmarshal.xml and
gobject-query.xml.
* gobject/glib-mkenums.xml:
* gobject/glib-genmarshal.xml:
* gobject/gobject-query.xml: New refentries.
* gobject/glib-mkenums.1:
* gobject/glib-genmarshal.1:
* gobject/gobject-query.1: Man pages generated from the .xml
sources.
* gobject/gobject-docs.sgml: Include glib-mkenums.xml,
glib-genmarshal.xml and gobject-query.xml.
* glib/Makefile.am: Add rule to regenerate man pages from
Docbook.
(man_MANS): Add glib-gettextize.1.
(content_files): Add glib-gettextize.xml.
* glib/glib-gettextize.xml: New refentry.
* glib/glib-gettextize.1: Man page generated from the .xml source.
* glib/glib-docs.sgml: Include glib-gettextize.xml.
Fri May 30 14:42:24 2003 Owen Taylor <otaylor@redhat.com>
* gobject.c (g_value_set_object): Order refs/unrefs
so setting the same object back is safe. (#112861,
Morten Welinder)
Thu Feb 27 17:33:19 2003 Owen Taylor <otaylor@redhat.com>
* gtype.[ch] testgobject.c: Add support for instance-private data.
g_type_class_add_private(), g_type_instance_get_private(),
G_TYPE_INSTANCE_GET_PRIVATE(). (#101959, patch partly by
Mark McLoughlin, extensive feedback from Tim Janik.)
2003-03-01 James Henstridge <james@daa.com.au>
* autogen.sh: require automake 1.7. Add calls to libtoolize and
gtkdocize. Clean up some of the error messages.
* configure.in: move version declaration to the top of the file
(before AC_INIT), using M4 macros.
GLIB_AC_DIVERT_BEFORE_HELP() calls no longer necessary, due to use
of M4 macro expansion in help messages instead.
Convert AC_ARG_WITH/AC_ARG_ENABLE calls to use AC_HELP_STRING to
format help strings. Use quadrigraphs to get square brackets to
show correctly.
Replace gtk-doc checks with a call to GTK_DOC_CHECK() macro.
Use AC_CONFIG_COMMANDS([glibconfig.h], ...) to output
glibconfig.h, so that "./config.status glibconfig.h" works.
Add an extra AC_CONFIG_FILES call listing other files we want
generated by config.status protected by an "if false" block. This
way automake generates the rules needed to rebuild the files for
us.
Add quotes in various places.
* docs/reference/*/Makefile.am: convert to use the common
gtk-doc.make file. This localises the complexity to a single
makefile fragment maintained with gtk-doc itself.
* */Makefile.am: remove unneeded rules to build win32 files with
config.status. Automake now does this for us.
Replace instances of @FOO@ with $(FOO) where appropriate -- this
allows automake to do a better job checking the makefile.
Add some files to DISTCLEANFILES where appropriate
* Makefile.am: use the DISTCHECK_CONFIGURE_FLAGS variable to
ensure that --enable-gtk-doc is passed to configure during a
distcheck. Remove the custom distcheck, since the standard one
will now do.
* gobject/Makefile.am: switch to BUILT_SOURCES, since that now
works.
Mon Feb 17 20:59:47 2003 Tim Janik <timj@gtk.org>
* gvalue.c (g_value_register_transform_func): don't assert the types
passed in to have value tables. this prevents dynamic types from
registering transform functions.
2003-01-04 Tor Lillqvist <tml@iki.fi>
* {glib,gmodule,gobject,gthread}/Makefile.am:
[Win32] Install also the .def files, to help users generate
import libraries for other compilers. Uninstall, too.
* glib-zip.in: Include .def files from above.
2002-12-18 Michael Natterer <mitch@gimp.org>
* gobject/gtype.c (type_data_finalize_class_ifaces_Wm): applied
patch I got from Tim Janik for testing which fixes bug #101521.
(restart iterating the interface enties each time we finalized one
because they might have been modified).
* tests/string-test.c: Add a test for positional parameters in
g_snprintf().
* glib-genmarshal.c, gobject-query.c: Use g_printf() instead of
system printf. (#99319)
Thu Nov 21 16:05:50 2002 Owen Taylor <otaylor@redhat.com>
* gtype.c (g_type_check_instance_cast): Allow
NULL to be cast to any type. (Frequently requested,
most recently #99023, Lars Clausen.)
2002-11-21 Tor Lillqvist <tml@iki.fi>
* {glib,gmodule,gobject,gthread}/makefile.{mingw,msc}.in:
Hardcode 2.0 in the names, as that is what Makefile.am does.
2002-11-21 Tor Lillqvist <tml@iki.fi>
* gmodule/gmodule.rc.in
* gobject/gobject.rc.in
* gthread/gthread.rc.in: Hardcode 2.0 in the names, as that is
what the Makefile.am does.
Mon Nov 4 14:41:48 2002 Owen Taylor <otaylor@redhat.com>
* glib/gbsearcharray.c: Include config.h
so DISABLE_MEMPOOLS actually has an effect.
(#96437, Morten Welinder)
* tests/uri-test.c: Include <config.h>
Mon Nov 4 14:42:36 2002 Owen Taylor <otaylor@redhat.com>
* gtype.c gsignal.c gvaluearray.c: Include config.h
so DISABLE_MEMPOOLS actually has an effect.
(#96437, Morten Welinder)
* gsignal.c: Conditionalize definition of g_handler_ts
on DISABLE_MEM_POOLS (#96437)
Mon Nov 4 14:45:24 2002 Owen Taylor <otaylor@redhat.com>
* gthread-posix.c gthread-solaris.c: Include <config.h>
* gtype.c (g_type_interface_prerequisites): Report only the most
specific instantiatable prerequisite, filter out all supertypes of
this one (the supertypes are added to the prerequisites array for
technical reasons).
Sat Oct 12 22:02:32 2002 Tim Janik <timj@gtk.org>
* merged up from 2.0:
* testgobject.c: test creation of new fundamental types.
* gtype.c (g_type_fundamental_next), (type_node_fundamental_new_W):
account for static_fundamental_next storing non-shifted fundamental
IDs. this fixes g_type_fundamental_next() not returning a new usable
fundamental ID.
Wed Sep 11 16:50:20 2002 Dom Lachowicz <cinamod@hotmail.com>
* gtype.h: Fix problems with excessive C++ warnings: "ISO C++ forbids nested groups within expressions"
Fri Jul 26 15:46:36 2002 Owen Taylor <otaylor@redhat.com>
* gvaluetransform.c: Fix problems with excess ';'
by addition of strategic 'extern void glib_dummy_decl (void)'
(#83272, David L. Cooper II)
Thu Jul 25 20:34:39 2002 Owen Taylor <otaylor@redhat.com>
* gtype.c (g_type_interface_add_prerequisite): When
adding ancestral prerequisites, add the grandparents,
not the siblings. (Problem found by Jon Trowbridge, patch from
Dave Camp, #86879)
Mon May 20 15:57:47 2002 Owen Taylor <otaylor@redhat.com>
* gsignal.c: When printing errors, handle NULL
returns from g_type_debug(). (#73559, Laszlo Peter)
* gtype.c (type_descriptive_name_I): De-inline,
since it's only used for debugging.
2002-05-07 Michael Natterer <mitch@gimp.org>
* configure.in: added a new conditional CROSS_COMPILING which
indicates ($build != $host). If it is set, look for
glib-genmarshal in PATH. Error out if it was not found.
2002-05-07 Michael Natterer <mitch@gimp.org>
* Makefile.am: use the glib-genmarshal found at configure time
if CROSS_COMPILING is set, use the one which was just built
otherwise.
Mon May 6 16:06:23 2002 Owen Taylor <otaylor@redhat.com>
[ merged from stable ]
* gobject.c: Remove PROPERTIES_CHANGED enumeration
value that wasn't used any more. (#78833,
Matthias Clasen)
* gboxed.c (g_boxed_copy): Remove check on data[2]
that no longer exists. (#80814, Daniel Elstner)
Tue Mar 26 15:21:47 2002 Owen Taylor <otaylor@redhat.com>
* gsignal.h (g_signal_handlers_*_by_func): Add explicit
cast of G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA to
GSignalMatchType so that these macros work for C++.
(#76454, Damien Sandras)
Mon Mar 25 17:51:05 2002 Owen Taylor <otaylor@redhat.com>
* glib-mkenums.in (parse_entries): Fix various bugs and
excessive stack usage that crept in the conversion from
gtk-mkenums. (#74431)
Tue Mar 19 18:57:12 2002 Tim Janik <timj@gtk.org>
* gtype.c (check_add_interface_L): applied patch from Matthias Clasen
<maclas@gmx.de> to check for prerequisite of interfaces, fixes#74427.
fixed mutex recursion in his patch (we can't call g_type_is_a() while
holding a read lock).
* gparam.c (canonalize_key): cleanup.
2002-03-13 Alexander Larsson <alla@lysator.liu.se>
* gparam.c (canonalize_key):
Function to canonicalize parameter names. Faster than
using g_strcanon().
(g_param_spec_internal, param_spec_ht_lookup):
Use canonalize_key.
2002-03-05 Sven Neumann <sven@gimp.org>
* gvaluetransform.c (g_value_transforms_init): don't try to
register undeclared value transform functions if G_GINT64_FORMAT
or G_GUINT64_FORMAT are undefined (#73586).
Sun Mar 3 21:09:24 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Default to --disable-gtk-doc, to avoid
Jade setup hassles.
* autogen.sh: Add --enable-gtk-doc.
* configure.in: Default to --disable-static to go
along with Pango, GTK+ where we need to do that for
bin-compat reasons.
* Makefile.am: Add a slightly modified distcheck rule
that passes --enable-gtk-doc to the configure inside.
(So that 'make dist' succeeds inside.)
* configure.in *.pc.in **/Makefile.am m4macros/glib-2.0.m4
tests/makefile.mingw.in: Switch everything over to
glib-2.0.
Sun Mar 3 04:11:58 2002 Tim Janik <timj@gtk.org>
* gobject.c: placed a comment about not changing CArray until we have
g_object_list_watched_closures().
* gparam.h (struct _GParamSpecClass): added padding.
* gobjectnotifyqueue.c (struct _GObjectNotifyQueue): abuse
g_list_alloc() to allocate GObjectNotifyQueue to et rid
of locking issues.
* docs/debugging.txt, gobject/glib-genmarshal.c,
gobject/glib-genmarshal.1, gobject/Makefile.am, gobject/gtype.c:
Remove references to gruntime. This includes renaming the test
program testgruntime to testgobject and the debug envvar
GRUNTIME_DEBUG to GOBJECT_DEBUG. (#50877)
Sun Feb 24 22:08:29 2002 Owen Taylor <otaylor@redhat.com>
* gtypemodule.[ch] (g_type_module_add_interface): Make
GInterfaceInfo paramter const to correspond to the
conventions for the g_type_add_interface() functions.
(#72461, Miroslaw Dobrzanski-Neumann)
Sat Feb 23 13:28:56 2002 Owen Taylor <otaylor@redhat.com>
* gtypeplugin.h (struct _GTypePluginClass): Add some
padding to the class.
* gclosure.h (struct _GClosure): Fix typo in comment.
Wed Feb 20 22:55:15 2002 Owen Taylor <otaylor@redhat.com>
* gobject.c: Fix implicit conversions between void * and
function pointer (Miroslaw Dobrzanski-Neumann, #71963)
Sun Feb 16 22:08:48 2002 Tim Janik <timj@gtk.org>
* gobject.[hc]:
* gparam.[hc]: provide marshaller specific value_set_*_take_ownership()
variants.
* gvalue.h: shrink GValue's data contents to 2 unions.
* glib-genmarshal.c: fix release and realeas_check hackage by always
using _take_ownership() variants. directly access value contents if
G_ENABLE_DEBUG is not defined.
* gobject.h: add padding pointers to the class struct.
Sun Feb 17 11:37:06 2002 Owen Taylor <otaylor@redhat.com>
* 1.3.14
* glib/glibintl.h: Error out of config.h wasn't included
rather than including it, since config.h must be the
first thing included.
* glib/gconvert.c glib/gmarkup.c glib/gshell.c glib/gspawn.c
glib/gunibreak.c glib/gunidecomp.c glib/guniprop.c:
Include config.h as the first thing. (#71704, Morten
Welinder)
Wed Feb 13 06:29:51 2002 Tim Janik <timj@gtk.org>
* gvaluetransform.c: cosmetic cleanups, fixed [u]int64->string
conversions.
* ChangeLog: added entry from owen which went into the wrong
file.
Fri Feb 8 23:52:27 2002 Owen Taylor <otaylor@redhat.com>
* gobject/gvaluetransform.c: Register transformations for
gint64, guint64. (#70780, patch from Andy Wingo)
* configure.in: Handle missing G_GINT64_FORMAT,
G_GUINT64_FORMAT ... harder to require GNU libc than GCC.
* NEWS: Some cleanups that I had setting around.
Fri Jan 11 12:26:36 2002 Tim Janik <timj@gtk.org>
* gparamspecs.c: fixed param_value_array_values_cmp(),
param_value_array_validate() and
param_value_array_set_default() to deal with NULL value
arrays.
Fri Jan 4 04:36:46 2002 Tim Janik <timj@gtk.org>
* gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): turn this into a GType,
so negating it works on 64bit platforms.
2001-12-21 Tor Lillqvist <tml@iki.fi>
* config.h.win32.in: Add (undefined) HAVE_C99_VSNPRINTF.
* glibconfig.h.win32.in: Add definition of G_HAVE_GROWING_STACK.
* tests/Makefile.am: Rename the progs_LDADD, thread_LDADD and
module_LDADD Make macros to progs_ldadd, thread_ldadd and
module_ldadd. Newer automakes reserve macros named *_LDADD for
the use as LDADDs for targets it knows.
* glib/giowin32.c: (struct _GIOWin32Watch): 'callback' wasn't used
here, either.
2001-12-21 Tor Lillqvist <tml@iki.fi>
* gobject.def: Add g_signal_get_invocation_hint.
Tue Dec 18 21:39:57 2001 Tim Janik <timj@gtk.org>
* testoverride.c: added some assertions to test
g_signal_get_invocation_hint().
* gsignal.[hc]: remove signal_id argument from
g_signal_chain_from_overridden(), the parameters are assumed to match
the innermost signal currently in emission for this instance.
added g_signal_get_invocation_hint() to figure the invocation hint
of the innermost signal emission of an instance.
* gsignal.c (g_signal_list_ids): fix G_BSEARCH_ARRAY_NODES() to
access a bsearch array and not a pointer to it (discovered by
Sven Neumann).
2001-12-10 Sven Neumann <sven@gimp.org>
* gobject/gvalue.c (g_value_register_transform_func): perform an exact
match on the two types instead of using transform_func_lookup().
2001-12-08 Christopher Blizzard <blizzard@redhat.com>
* gsignal.h (g_signal_connect): Explicitly add a cast to the last
argument so that the macro will work from C++.
Sun Nov 25 22:33:32 2001 Tim Janik <timj@gtk.org>
* gtype.h: removed enum GTypeFundamentals. use macros
to provide the constant fundamental type IDs, so they
all return numbers of type GType, and not int.
sizeof(GTypeFundamentals) < sizeof(GType) problem reported
and fix sugegsted by Havoc.
2001-11-24 Tor Lillqvist <tml@iki.fi>
*/.cvsignore: Add various Win32 related file types.
gmodule:
2001-11-24 Tor Lillqvist <tml@iki.fi>
* Makefile.am: Remove rule for testgmodule.exp, too.
2001-11-22 Tor Lillqvist <tml@iki.fi>
* gmodule-win32.c: Current w32api headers do include tlhelp32.h,
so no need to have an extract from it here.
Mon Nov 19 14:35:56 2001 Owen Taylor <otaylor@redhat.com>
* *.h: Improve the detection of invalid includes by moving
the test outside the duplicate include guards.
* gsourceclosure.c (g_source_set_closure): Doc fix.
Thu Nov 22 03:30:57 2001 Tim Janik <timj@gtk.org>
* gvalue.h (G_TYPE_IS_VALUE): use g_type_check_is_value_type()
instead of g_type_value_table_peek().
* gtype.[hc] (type_check_is_value_type_U): speed up check
LOCK-less by caching lookups in node->mutatable_has_value_table.
* gtype.[hc]: removed locks where possible. partly based on
patches from owen and alex.
Thu Nov 22 00:26:26 2001 Tim Janik <timj@gtk.org>
* gtype.[hc]: provide G_TYPE_FUNDAMENTAL_SHIFT and
g_type_fundamental_next() to return next usable fundamental
type. use TypeNode pointers as type IDs.
2001-11-21 Tor Lillqvist <tml@iki.fi>
* glib/makefile.mingw.in (DEFINES): Set G_LOG_DOMAIN as in
Makefile.am.
gobject:
2001-11-22 Tor Lillqvist <tml@iki.fi>
* makefile.mingw.in (DEFINES): Set G_LOG_DOMAIN as in Makefile.am.
* gparamspecs.h (GOBJECT_VAR): Can't use GLIB_VAR here, as that
makes sense only when building libglib. GOBJECT_VAR is similar for
libgobject.
* gobject.def: Add g_param_spec_types, remove
g_type_fundamental_branch_last.
Wed Nov 21 17:23:33 2001 Tim Janik <timj@gtk.org>
* gparamspecs.[hc]: put newly created param spec types into a
global array.
* gboxed.[hc]: moved boxed types with _get_type() function here,
for: G_TYPE_CLOSURE, G_TYPE_VALUE, G_TYPE_VALUE_ARRAY,
G_TYPE_GSTRING.
* gtype.h: removed fundamental branch APIs and derived enum
values.
Sat Nov 17 14:10:35 2001 Owen Taylor <otaylor@redhat.com>
* glib/gbsearcharray.h: Include gtypes.h not gobject/gtype.h
* glib/glib-object.h gobject/*.h: Prevent headers from
being included directly except when compiling GObject.
* gobject/gvaluecollector.h: Include glib-object.h so that
this file can be included directly, since we don't
include it _from_ glib-object.h.
* gobject/gtype.c: Remove struct _GValue hack since we
now include glib/gvaluecollector.h which simply pulls in
glib-object.h.
Sat Nov 17 18:14:40 2001 Owen Taylor <otaylor@redhat.com>
* glib-genmarshal.c: Exit with non-zero exit status if
any errors were encountered.
* glib-genmarshal.c: Instead of generating gobject/gmarshal.h
#include only for the header, generate glib-object.h
#include for both the header and body. (#63834)
* glib-genmarshal.c: Generate include guards around the
content unless --nostdinc is specified.
Tue Nov 13 23:18:10 2001 Tim Janik <timj@gtk.org>
* gsignal.[hc]: add API for chaining:
g_signal_chain_from_overridden() and g_signal_override_class_closure(),
implementation yet to come.
* gtype.[hc], Makefile.am: provide G_LOG_DOMAIN as compile flag.
* gparam.[hc]: s/g_param_get/g_param_spec_get/ for get_nick,
get_name and get_blurb, to be consistent with the rest of the
g_param_spec_*() functions.
* gparamspecs.[hc]: got rid of bogus GClosure paramspec.
G_TYPE_CLOSURE is a boxed type already.
Tue Nov 13 22:16:41 2001 Tim Janik <timj@gtk.org>
* gtype.[hc]: API cleanups.
remove g_type_check_flags(), provide g_type_test_flags() as
a *private* function.
s/g_type_check_is_a/g_type_check_class_is_a/, private function.
s/g_type_instance_is_a/g_type_check_instance_is_a/, also private.
Wed Nov 7 00:56:00 2001 Tim Janik <timj@gtk.org>
* gclosure.h: provide G_CLOSURE_N_NOTIFIERS() for people that need
to walk the notifier list (puhh, black magic, stay-away-warning ;).
Sun Nov 4 14:01:23 2001 Owen Taylor <otaylor@redhat.com>
* gvaluetypes.[ch]: Add a function g_pointer_type_register_static()
to register a type derived from G_TYPE_POINTER.
2001-10-29 Daniel Egger <degger@fhm.edu>
* glib/gbacktrace.h: Fix non-Intel/-Alpha version of the
G_BREAKPOINT macro to include <signal.h> and use SIGTRAP.
* glib/gmessages.c: Conditionalise definition of args2
depending on the definition of HAVE_VSNPRINTF to avoid
compiler warning.
* gobject/testgruntime.c
* tests/patterntest.c: Include <string.h> to avoid warnings.
Mon Oct 29 11:05:15 2001 Owen Taylor <otaylor@redhat.com>
* glib-mkenums.in: Generate glib-mkenums from glib-mkenums.in,
substituting in path to perl. (#63093, Dan Winship)
* Makefile.am (bin_SCRIPTS): Remove hack to copy glib-mkenums
from srcdir.
Mon Oct 29 10:59:36 2001 Owen Taylor <otaylor@redhat.com>
* configure.in: Check for path to Perl, add gobject/glib-mkenums
2001-10-26 Tor Lillqvist <tml@iki.fi>
* glib/glib.def: Update.
* tests/makefile.{mingw,msc}.in: Add ../* to PATH before running
tests to find DLLs. Separate the interactive tests, don't run them
in the check target.
* */makefile.msc.in: Include make.msc from GLib's build directory.
2001-10-23 Tor Lillqvist <tml@iki.fi>
* {glib,gmodule,gobject,gthread}/Makefile.am: (Win32): If we
have built the MSVC import library, install it. Install the
gcc import library. Also support uninstall.
* glib-genmarshal.c gparamspecs.[ch] gtype.[ch] gvalue.h
gvaluecollector.h gvaluetypes.[ch]: Fill in missing support for
gint64 & guint64 (#59254).
* Unconditionalize same (compile with or without G_HAVE_INT64).
Wed Oct 3 16:02:24 2001 Owen Taylor <otaylor@redhat.com>
* glib-genmarshal.c gparamspecs.[ch] gvalue.h
gobject/gvaluetypes.[ch]: Add support for G_TYPE_INT64
and storing it in GValue (Patch from Mathieu Lacage, #59254.)
2001-09-25 Tor Lillqvist <tml@iki.fi>
* configure.in: More Win32 automake macros. For .def files:
GLIB_DEF, GMODULE_DEF, GOBJECT_DEF and GTHREAD_DEF. For .exp
files: TESTGMODULE_EXP (for programs that need to export symbols,
just testgmodule here). A new conditional, MS_LIB_AVAILABLE to
test whether the Microsoft librarian ("ar") is available to build
MS import libraries.
* glib/Makefile.am
* gmodule/Makefile.am: Use above. New rule to build MS import
library.
* glib/makefile.msc.in
* tests/makefile.msc.in
* tests/makefile.mingw.in: Use same DLL and import library names as
libtool.
gmodule:
2001-09-25 Tor Lillqvist <tml@iki.fi>
* makefile.mingw.in: Fix missing end @ in @LT_CURRENT@.
* makefile.msc.in: Use same DLL and import library names as
libtool.
gobject:
2001-09-25 Tor Lillqvist <tml@iki.fi>
* Makefile.am: Use new macros for .def file, and check for
MS_LIB_AVAILABLE, new rule to build MS import library.
* makefile.msc.in: Use same DLL and import library names as
libtool.
gthread:
2001-09-25 Tor Lillqvist <tml@iki.fi>
* Makefile.am: Use new macros for .def file, and check for
MS_LIB_AVAILABLE, new rule to build MS import library.
* makefile.msc.in: Use same DLL and import library names as
libtool.
Tue Sep 18 22:57:33 2001 Tim Janik <timj@gtk.org>
* configure.in (GLIB_MICRO_VERSION): up version number to 1.3.8,
interface age 0, binary age 0.
* NEWS: updates.
Tue Sep 18 23:09:02 2001 Tim Janik <timj@gtk.org>
* gparam.[hc]: rename *nick and *blurb fields to catch
direct accesses in third party code.
provide g_param_get_nick(), g_param_get_blurb() and
g_param_get_name() accessors.
2001-09-17 Tor Lillqvist <tml@iki.fi>
* configure.in: Add variable for LT_CURRENT minus LT_AGE (the
suffix used by libtool on Win32 for DLLs). Set variables for the
compiled resource files on Windows. Handle the native Win32
gthread stuff.
* glib/Makefile.am
* gmodule/Makefile.am
* gobject/Makefile.am: (Win32) Add minor hacks to link in the object
file produced from the resource file. Use the lt-compile-resource
script from the build module. The non-hack way would be to teach
libtool, autoconf and automake about .rc files (which are a kind
of source code, after all, that gets compiled to object
files). But then there would be problems for those who wouldn't have
bleeding edge auto* and libtool.
* glib/glib.def
* gobject/gobject.def: Updates.
* glib/glib.rc.in
* gmodule/gmodule.rc.in
* gobject/gobject.rc.in
* gthread/gthread.rc.in: Update InternalName and OriginalFilename to
match libtool's naming convention for DLLs.
* glib/gutils.c: Ditto when constructing the DLL name in the
definition for GLIB_LOCALE_DIR.
* glib/makefile.mingw.in
* gmodule/makefile.mingw.in
* gobject/makefile.mingw.in
* gthread/makefile.mingw.in: Update import library names.
Mon Sep 10 20:31:37 2001 Tim Janik <timj@gtk.org>
* gobject.[hc]: removed extraneous GObject* returns from a
couple functions that are very unlikely to be used in nested.
changed gpointer->GObject* for a couple return values/arguments.
this fixes#50206.
Mon Sep 10 17:13:36 2001 Tim Janik <timj@gtk.org>
* glib/gmessages.h: got rid of g_set_error_handler(),
g_set_warning_handler(), g_set_message_handler().
Wed Sep 5 05:24:07 2001 Tim Janik <timj@gtk.org>
* gobject/tmpl/gboxed.sgml: documented some functions.
* gobject/tmpl/objects.sgml: some fixups.
Mon Sep 10 19:27:47 2001 Tim Janik <timj@gtk.org>
* gtype.[hc]:
g_type_add_interface*(): implement the ability to add an interface to
a type whose parents already conform to this interface.
such "overriding" interfaces, when initialized, are not just initialized
with 0, but with a copy of the interface they override.
g_type_interface_peek_parent(): new function, return the interface
that this interface "overrides", if any.
* testgruntime.c: test new interface stuff.
2001-09-10 Alex Larsson <alexl@redhat.com>
* gobject/gboxed.[ch]:
* gobject/gsourceclosure.c:
Removed is_refcounted and GBoxedInitFunc from
g_boxed_type_register_static().
2001-09-04 Tor Lillqvist <tml@iki.fi>
* README.win32: Update. Don't mention pthreads.
* build-dll: Remove, moved to the build module.
* glibconfig.h.win32.in: Don't mention pthreds here, either.
* glib/gstrfuncs.c: Mark the correct variable for export from DLL.
* glib/giowin32.c (g_io_win32_msg_create_watch): Owen forgot to
rename the win32_watch_funcs variable here, too.
* */makefile.mingw.in: Don't use version number in import library
name. Use whole version number in DLL name. Use build-dll from the
build module.
Mon Aug 27 14:55:27 2001 Owen Taylor <otaylor@redhat.com>
* gsourceclosure.[ch] (g_source_set_closure): Implement.
* gsourceclosure.[ch]: Add GType's for GIOChannel, GIOCondition.
Mon Aug 27 14:56:12 2001 Owen Taylor <otaylor@redhat.com>
* glib/gmain.h: Add closure_marshal/closure_callback
fields to GSourceFuncs for use by g_source_set_closure().
* glib/gmain.c glib/giounix.c glib/giowin32.c
glib/gmain.h: Export the SourceFuncs vtables so GObject
can use them to figure out closure callbacks/marshallers
for the default source types.
2001-08-30 Tor Lillqvist <tml@iki.fi>
After being away for about five months, I'm back working on
this... For now, still using same build setup for Win32. Probably
will change to not including version numbers in the import library
names, though. (But the DLL names would still include them,
possibly even also the micro version number.) That would be more
Unix-like. Also, will have to check out newest mingw tool versions
to see if the build-dll script now can be retired.
* makefile.mingw
* makefile.msc: New files, no need to generate from .in as
they don't contain references to automake variables.
* makefile.mingw.in
* makefile.msc.in: Removed.
* glib.rc.in: Remove
* glib/glib.rc.in: Moved here.
* Makefile.am
* glib/Makefile.am: Corresponding changes.
* glib/glib.def: Fix typo, add new entries.
* glib/gspawn-win32-helper.c: More debugging. Doesn't work
currently (or then it never has on Win2k, which I now use?)
* glib/gstrfuncs.c
* glib/gstrfuncs.h: Mark g_ascii_table for export/import on Win32.
* */makefile.mingw.in: Reflect new location of glib library.
2001-08-17 James Henstridge <james@daa.com.au>
* gobject.c (WeakRefStack): add an object member to the structure.
(weak_refs_notify): pass wstack->object as extra argument to
notify functions.
(g_object_weak_ref): set wstack->object when initialising
WeakRefStack.
* gobject.h (GWeakNotify): add second argument to prototype which
gives the pointer to where the object that is being disposed of
was.
Wed Jul 18 19:42:31 2001 Tim Janik <timj@gtk.org>
* gtype.h: if __GNUC__ is defined, inline a test for an exact type
match for instances and classes in G_TYPE_CHECK_INSTANCE_TYPE() and
G_TYPE_CHECK_CLASS_TYPE() before calling g_type_instance_is_a().
Sun Aug 12 02:07:10 2001 Tim Janik <timj@gtk.org>
* gvaluearray.[hc]: fix preallocation logic, support DISABLE_MEM_POOLS
properly, group value allocations.
(g_value_array_new): fix semantic of n_prealloced argument, so it's
really just about preallocation space.
2001-08-06 Sven Neumann <sven@gimp.org>
* glib/gutils.[ch]: added new function g_nullify_pointer().
* gobject/gobject.[ch]:
added new functions g_object_[add|remove]_weak_pointer().
2001-08-04 Alexander Larsson <alexl@redhat.com>
* win32-fixup.pl:
Hacky script to fix up your .msc.in files on windows.
Dunno if this is a good solution yet.
* build/win32/module.defs:
Back down libiconv version to 1.3, since that is what tor distributes.
* glib/glib.def:
Update
* gobject/makefile.msc.in:
build gobject-query.exe and gmarshal.strings, add libiconv dependency to linklines.
* gobject/marshal-genstrings.pl:
New file. perl script to generate gmarshal.strings.
2001-07-26 Michael Natterer <mitch@convergence.de>
* gobject/glib-genmarshal.c: added a "release_check" to the
OutArgument structure, which, if present, gets integrated in the
marshaller code and protects us from stuff like
g_object_unref(NULL) on marshaller return values.
* .cvsignore: Add some generated files.
* glib/gmain.c: (g_main_context_iterate): Comment out cruft
after #endif to avoid gcc warning.
* gmodule/gmodule.c: (g_module_set_error_unduped): Remove
const from type to avoid gcc warning.
* gobject/gsignal.c: (g_signal_emitv): ifdef variable used
only if G_ENABLE_DEBUG to avoid gcc warning.
* gobject/gtype.c: (type_iface_vtable_init_Wm),
(type_iface_vtable_finalize_Wm): ifdef call needed only
if !G_DISABLE_ASSERT to avoid gcc warning.
* tests/testglib.c: (main): ifdef call needed only if
!G_DISABLE_ASSERT to avoid gcc warning. Maybe later we
should make the test to #undef G_DISABLE_ASSERT.
* tests/unicode-collate.c: Add include of <string.h> to
avoid gcc warning.
Mon Jul 2 07:17:47 2001 Tim Janik <timj@gtk.org>
* gobject.c (g_object_weak_ref):
(g_object_watch_closure): congrats tim, introducing of-by-one
errors like on my very first day of C programming.
Sat Jun 30 23:14:32 2001 Tim Janik <timj@gtk.org>
* glib/glist.[hc]: added g_list_insert_before().
* glib/gslist.c (g_slist_insert_before): provide an implementation,
prototype was already present...
Sat Jun 30 11:07:00 2001 Tim Janik <timj@gtk.org>
* gobject.[hc]: provide weak_ref/weak_unref functions,
invoked from ->dispose. renamed ->shutdown() to ->dispose(),
provide "public" API entry here: g_object_run_dispose(), this
fucntion should _only_ be called from object system implementations
(e.g. gtkobject.c) if at all.
* gtypemodule.c (g_type_module_dispose): s/shutdown/dispose/
* gsignal.h: removed compat aliases.
* gobject.c (g_object_connect): support data objects.
Thu Jun 28 22:49:40 2001 Owen Taylor <otaylor@redhat.com>
* gtype.[ch] gobject-query.c testgruntime.c: Remove
debug flag argument to g_type_init() and add
g_type_init_with_debug_flags().
Thu Jun 28 16:57:44 2001 Tim Janik <timj@gtk.org>
* configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
interface age 0, binary age 0.
Thu Jun 28 16:42:49 2001 Tim Janik <timj@gtk.org>
* gsignal.c (g_signal_lookup):
(g_signal_list_ids): give elaborate warnings about invalid types,
non-instantiatable types and unloaded types that we can't operate on.
* gparam.[hc]: g_param_spec_pool_belongings() ->
g_param_spec_pool_list_owned().
* gsignal.[hc]: renamed:
g_signal_newc -> g_signal_new
g_signal_disconnect_by_func -> g_signal_handlers_disconnect_by_func
g_signal_block_by_func -> g_signal_handlers_block_by_func
g_signal_unblock_by_func -> g_signal_handlers_unblock_by_func
added GConnectType to simplify (..gboolean swapped, gboolean after)
args.
* gobject.[hc]: changed prototypes accordingly.
Tue Jun 26 11:43:46 2001 Owen Taylor <otaylor@redhat.com>
* configure.in Makefile.am *.[ch] glib/*.[ch] glib/Makefile.am:
Move glib library into a subdirectory, make all GLib include
files include as <glib/glist.h>
* tests/testglib.c tests/testgdate.c tests/testgdateparser.c
tests/timeloop.c tests/timeloop-basic.c: Move all tests into
the tests/ subdirectory.
Mon Jun 11 17:07:06 2001 Tim Janik <timj@gtk.org>
* gboxed.[hc]: remove left-over usages of an anonymous GBoxed typedef.
* gobjectnotifyqueue.c: moved property notify queue implementation
bits into this function.
* gparam.[hc]: added g_param_spec_pool_belongings(), completed
g_param_spec_pool_list(). added GParameter for _setv() functions.
* gobject.[hc]: use gobjectnotifyqueue.h implementation now.
got rid of properties_changed signal.
new functions g_object_newv(), g_object_class_list_properties().
removed "properties_changed" signal.
* gtype.[hc]: added g_type_depth() to figure number of parent
types + 1 for a type.
* gsignal.h: add g_signal_connect() (as per owen's request) and
g_signal_connect_swapped().
2001-06-13 Havoc Pennington <hp@redhat.com>
* Makefile.am (progs_LDADD): link to ./libgobject-1.3.la
since an installed libgobject was somehow being found; think
it's a libtool bug, but this workaround should do for now.
2001-06-11 Havoc Pennington <hp@redhat.com>
* NEWS: updated
* configure.in (GLIB_MICRO_VERSION): increment version to 1.3.6
2001-06-12 Havoc Pennington <hp@redhat.com>
* Makefile.am (glib-mkenums): don't put $(srcdir)/glib-mkenums in
bin_SCRIPTS, that breaks make install. Instead put 'glib-mkenums'
in bin_SCRIPTS and cp it into builddir
2001-05-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Fix typo.
* gobject/Makefile.am (EXTRA_DIST): Really distribute
glib-mkenums, now that bin_SCRIPTS doesn't seem to care about
doing so anymore.
Mon May 28 06:51:24 2001 Tim Janik <timj@gtk.org>
* gsignal.c (signal_emit_unlocked_R): fixed bad faux-pass, forgot
to release signal lock when restarting emissions.
Sun May 27 05:09:18 2001 Tim Janik <timj@gtk.org>
* gmain.c (g_main_context_prepare): unlock context when bailing
out with a warning.
(g_main_context_check): same here.
* gmain.c (g_main_context_check): before returning due to
changed pollfds, unlock context.
Sun May 27 04:52:28 2001 Tim Janik <timj@gtk.org>
* gsignal.[hc] (g_signal_stop_emission_by_name): added variant
to stop signal emissions through a detailed_signal string.
* gsignal.c (signal_emit_R) (g_signal_emit_valist): account for
the fact that g_value_* functions may cause signal emissons by
unlocking the global signal system lock around g_value_* functions.
(signal_emit_unlocked_R): renamed this from signal_emit_R() to reflect
that this functions acquires the lock on its own now.
2001-05-24 Hans Breuer <hans@breuer.org>
* makefile.msc.in : changed depndencies to build glib-genmarshal
first and statically linked with glib, which makes it independent
from the installed glib version. Added new object files to build.
* gobject.def : updated
Tue May 22 02:46:13 2001 Tim Janik <timj@gtk.org>
* gobject.c (g_value_set_object): make g_value_set_object()
take a gpointer v_object so people don't need to G_OBJECT()
cast NULL pointers (C code convenience).
Mon May 14 01:49:01 2001 Tim Janik <timj@gtk.org>
* gsignal.[hc] (g_signal_handler_is_connected): new function
to check whether a handler is still connected to an instance
(by handler id).
Thu May 10 15:19:01 2001 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_key_hash): use g_str_hash() algorithm
to generate hashes.
* gmem.c (standard_calloc): free() doesn't return a value
(Mark Murnane).
Thu May 10 14:00:48 2001 Tim Janik <timj@gtk.org>
* gparamspecs.[hc]: removed g_param_spec_stringc() in lack of
evidence of public need.
* gsignal.h: added g_signal_disconnect_by_func(),
g_signal_block_by_func() and g_signal_unblock_by_func() convenience
macros as per owen's request.
* gtype.c (SIZEOF_FUNDAMENTAL_INFO): align sizeof (GTypeFundamentalInfo)
to size of longs and pointers.
2001-05-05 James Henstridge <james@daa.com.au>
* Makefile.am: glib-mkenums is not a compiled program, so shouldn't
be in the bin_PROGRAMS primary. Put it in bin_SCRIPTS instead, and
removed the glib_mkenums_SOURCES var.
Thu May 3 06:10:23 2001 Owen Taylor <otaylor@redhat.com>
* gobject.c (g_object_set_[q]data_full): Make types of ternary
operator correspond. (Fixes compilation errors with Sun CC,
#52230)
Sun Apr 29 00:37:34 2001 Tim Janik <timj@gtk.org>
* ghook.[hc]: made hook ids a gulong.
Sat Apr 28 23:39:42 2001 Tim Janik <timj@gtk.org>
* gsignal.[hc]: made signal handler and emission hook ids gulongs.
(signal_handlers_foreach_matched_R): only invoke callback for handlers
that are not disconnected (id>0).
(signal_emit_R): prevent invocation of signal handlers during the
emission they were connected within.
* glib-mkenums: publically installed perl-script to parse C code
enums and generate descriptions thereof.
* glib-mkenums.1: assorted man page.
2001-04-19 Havoc Pennington <hp@redhat.com>
* gobject.c (g_object_get_valist): We were returning junk memory
here, because we didn't copy the value (G_VALUE_NOCOPY_CONTENTS
passed to G_VALUE_LCOPY) and then we freed the GValue immediately
after. Removed G_VALUE_NOCOPY_CONTENTS from here; need a
G_VALUE_STEAL_CONTENTS or the like if we want this optimization.
Wed Apr 18 09:46:56 2001 Owen Taylor <otaylor@redhat.com>
* gobject.c gsignal.c: Change C++ comments for FIXME's to
C comments. (Patch from Andres Salomon)
Mon Apr 9 18:57:44 2001 Tim Janik <timj@gtk.org>
* configure.in: increment version to 1.3.4 (binary 0, interface 0).
Mon Apr 9 18:56:15 2001 Tim Janik <timj@gtk.org>
* gclosure.c (g_closure_invoke): only require marshal/meta_marshal if
we're valid (about to actually do marshalling).
Tue Apr 3 13:46:22 2001 Tim Janik <timj@gtk.org>
* glist.[hc]: added g_list_nth_prev() which walks ->prev instead
of ->next.
* gpattern.[hc]: added shell-style pattern matching code from beast,
derived from the gtk_pattern_*() code, but with a couple of bug fixes
and a number of optimizations.
Tue Apr 3 14:06:00 2001 Tim Janik <timj@gtk.org>
* gparam.[hc]: added g_param_spec_pool_list() to list pspecs per
owner_type. the pspecs are not referenced, so the caller is
supposed to have some idea about owner_type not randomly
nuking his pspec's. if this is going to provide problems in
the future, we can either auto-ref the pspecs, or add a
_foreach variant, though the latter would have to invoke
the callback while pspec's mutex is acquired, so i just
went for the _list variant for now.
* gclosure.h (G_CALLBACK): made GCallback a void (*) (void) fucntion.
Sat Mar 31 23:55:58 2001 Tim Janik <timj@gtk.org>
* gtype.h:
* gparamspecs.[hc]: applied patch from owen to implement
GParamSpecUnichar.
Fri Mar 30 07:34:02 2001 Tim Janik <timj@gtk.org>
* gtype.c (type_iface_retrive_holder_info_Wm):
* gtypeplugin.c (g_type_plugin_complete_interface_info):
* gtypemodule.c (g_type_module_complete_interface_info):
change order of instance_type and interface_type so they match
the g_type_add_interface_*() API.
* gsignal.c (g_signal_emit_valist): always assign C return value
location, people depending on unaltered return values after emissions
that had no handlers to run need to use g_signal_emitv().
* gtype.[hc] (g_type_query): new function to allow querying of
class and object size (semantics like g_signal_query()).
currently the implementation is better held conservative so as to
only support types that are classed and static.
Wed Mar 14 18:46:54 2001 Tim Janik <timj@gtk.org>
* gscanner.[hc]: removed archaic gpointer derived_data; relict and
added a GData member instead.
* glist.[hc]: added g_list_remove_all().
* gslist.[hc]: added g_slist_remove_all().
Sat Mar 17 23:18:36 2001 Tim Janik <timj@gtk.org>
* gobject.c (g_object_get_property): minor bug-fix.
* gbsearcharray.[hc]: provide a macro for static initialization and
functions g_bsearch_array_new() and g_bsearch_array_destroy() for
dynamic allocations.
* gboxed.c: introduce G_TYPE_GSTRING, boxed type for GString.
* gclosure.[hc]: naming corrections.
Fri Mar 9 16:42:08 2001 Tim Janik <timj@gtk.org>
* gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as
a public function (was static in gobject.c before). it's a bit odd
to have that function here, especially since it requires extra includes,
but then it doesn't very well fit somewhere else either.
* gparamspecs.c: added default/max/min checks to param spec creation
functions.
Fri Mar 9 18:01:43 2001 Tim Janik <timj@gtk.org>
* gscanner.[hc]: made config arg to g_scanner_new() const.
Fri Mar 9 16:42:08 2001 Tim Janik <timj@gtk.org>
* gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as
a public function (was static in gobject.c before). it's a bit odd
to have that function here, especially since it requires extra includes,
but then it doesn't very well fit somewhere else either.
* gparamspecs.c: added default/max/min checks to param spec creation
functions.
2001-03-10 Tor Lillqvist <tml@iki.fi>
* */Makefile.am: Use the _LIBADD dependencies on libglib only on
Win32.
* gobject/gobject.def: Add a couple of missing entries.
2001-02-21 Tor Lillqvist <tml@iki.fi>
* *.h: Use G_BEGIN_DECLS and G_END_DECLS.
* Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
libtool with -no-undefined for Win32 and Cygwin.
Fri Mar 9 14:57:17 2001 Tim Janik <timj@gtk.org>
* testgruntime.c: test program. covers run first/last/cleanup signal
handlers, return value accumulator, signal string returns, and
interface types in signal arguments.
* gtype.c (g_type_value_table_peek): for interface types without
value table, try looking up a value table from an instantiatable
prerequisite type (this is safe as an interface may only have
one instantiatable prerequisiste).
(type_check_is_value_type_U): same here.
* gsignal.c (g_signal_newv): assert that return types never have
G_SIGNAL_TYPE_STATIC_SCOPE set.
(g_signal_newc): only create class closure if the class_offset is not
0.
Fri Mar 9 10:14:00 2001 Tim Janik <timj@gtk.org>
* gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
that wouldn't allow interface types.
* gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
with bad implications and an off-by-one error.
Thu Mar 8 16:34:22 2001 Owen Taylor <otaylor@redhat.com>
* gvaluetransform.c: Include <string.h> for memcpy.
* gvaluetransform.c (DEFINE_SPRINTF): Remove unnecessary
and ANSI-illegal ## token pasting.
Thu Mar 8 16:23:34 2001 Tim Janik <timj@gtk.org>
* ghook.[hc]: destruction cleanup. there's one
->finalize_hook member in the hooklist now that gets
called when a hook should be destroyed, that's it.
that function is guarranteed to be called only when
all ref_counts to the hook vanished, thus also when
the hook is not in call.
Thu Mar 8 16:35:48 2001 Tim Janik <timj@gtk.org>
* gparamspecs.[hc]: s/g_param_spec_string_c/g_param_spec_stringc/.
* gsignal.[hc]: fixed accumulator invocation, implemented emission
hooks. and no, neither of these callbacks are called via a closure,
language bindings can wrap the accumulator and emission hook
interface, they already get parameters marshalled into a GValue array.
(g_signal_connect): removed this function as its C specific, doesn't
cover the swapped argument, is too close to its broken original
gtk_signal_connect() and creates demand for _swapped, _after and
_swapped_after variants <brrr>.
(g_signal_connectc): convenience macro to connect a C handler
func with data, like the old g_signal_connect() plus swapped
argument.
* gtype.h:
* gboxed.c: added G_TYPE_VALUE boxed type.
Wed Mar 7 19:02:51 2001 Tim Janik <timj@gtk.org>
* gtype.c (type_node_add_iface_entry_W): catch when adding an interface
to an ancestor of a child that already conforms to this interface.
currently we spew a warning here, should we be silent?
(g_type_interface_add_prerequisite): new function to add a prerequisite
type to an interface, that must succeed an instance is_a prerequisite
type check before the interface can be added to an instance. the
prerequisite types are also suuported in is_a checks of the interface.
(g_type_instance_is_a):
(g_type_check_instance_cast):
(g_type_check_instance): cleanups and optimizations.
(g_type_class_is_a):
(g_type_check_class_cast): same, also prevented these from accepting
interface types, as class structures don't nest interfaces.
Wed Mar 7 09:36:33 2001 Tim Janik <timj@gtk.org>
* gboxed.[hc]: changed prototype of g_boxed_type_register_static()
to contain an optional init function and a hint at whether the
boxed structure uses ref counting internally.
added g_value_set_boxed_take_ownership().
made G_TYPE_BOXED an abstract value type.
* genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
types.
* glib-genmarshal.c: argument type changes, preparation for third-party
arg specification.
* gobject.[hc]: cleaned up get/set property code.
added g_strdup_value_contents() to improve warnings.
* gparam.[hc]: added g_param_value_convert(), taking over responsibility
of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
validation alterations may be valid a part of the property setting
process.
* gparamspecs.[hc]: made value comparisons stable (for sort applications).
added GParamSpecValueArray, a param spec for value arrays and
GParamSpecClosure. nuked the value exchange functions and
GParamSpecCCallback.
* gtype.[hc]: catch unintialized usages of the type system with
g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
to flag types that introduce a value table, but can't be used for
g_value_init(). cleaned up reserved type ids.
* gvalue.[hc]: code cleanups and saner checking.
nuked the value exchange API. implemented value transformations, we
can't really "convert" values, rather transforms are an anylogy to
C casts, real conversions need a param spec for validation, which is
why g_param_value_convert() does real conversions now.
* gvaluearray.[hc]: new files that implement a GValueArray, a struct
that can hold inhomogeneous arrays of value (to that extend that it
also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
this is exposed to the type system as a boxed type.
* gvaluetransform.c: new file implementing most of the former value
exchange functions as single-sided transformations.
* gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
g_value_set_string_take_ownership().
* *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
* *.[hc]: many fixes and cleanups.
* many warning improvements.
Tue Feb 27 18:35:15 2001 Tim Janik <timj@gtk.org>
* gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
into G_VALUE_LCOPY(), this needs proper documenting.
* gparam.c: fixed G_PARAM_USER_MASK.
* gtype.c (type_data_make_W):
(type_data_last_unref_Wm): fixed invalid memory freeing.
* gobject.c (g_object_last_unref): destroy signal handlers associated
with object, right before finalization.
* gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
that don't actually support details.
* gobject.[hc]: got rid of property trailers. nuked GObject
properties "data" and the "signal" variants.
(g_object_connect): new convenience function to do multiple
signal connections at once.
(g_object_disconnect): likewise, for disconnections.
* gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
* gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
as private (the latter got renamed from g_value_get_as_pointer()).
Wed Mar 7 09:32:06 2001 Tim Janik <timj@gtk.org>
* glib-object.h: add gvaluearray.h.
* gstring.[hc]: fixup naming of g_string_sprint*.
* gtypes.h: fixed GCompareDataFunc naming.
Wed Mar 7 09:33:27 2001 Tim Janik <timj@gtk.org>
* gobject/Makefile.am: shuffled rules to avoid excessive
rebuilds.
* gobject/gobject-sections.txt: updates.
* gobject/tmpl/*: bunch of updates, added another patch
from Eric Lemings <eric.b.lemings@lmco.com>.
Wed Feb 21 18:31:46 2001 Jonathan Blandford <jrb@redhat.com>
* gsignal.h (g_signal_connect): Add g_signal_connect define to
make porting from gtk_signal_connect easy.
2001-02-21 Tor Lillqvist <tml@iki.fi>
* gutils.c (g_path_is_absolute): Match also UNC paths on Win32.
* gthread.h: Include gtypes.h to be sure to get GLIB_VAR
definition, remove definition from here.
* gunicode.h: Remove duplicate GLIB_VAR definition from here, too.
* gutils.c: (Win32) Use USERPROFILE as home dir if present. On
Win2k, HOMEDRIVE and HOMEPATH aren't reliable.
* Makefile.am (INCLUDES): Add -DGLIB_COMPILATION.
* makefile.mingw.in: Remove install target, Windows isn't Unix.
* testgdate.c
* testgdateparser.c
* testglib.c: Undefine GLIB_COMPILATION.
* glib.def: Updates.
* .cvsignore
* */.cvsignore: Ignore also .obj, .dll, .lib and .exe files.
Sat Feb 17 04:55:35 2001 Tim Janik <timj@gtk.org>
* gtype.[hc]: changed collect_format, collect_value() and lcopy_format,
lcopy_value() in the GTypeValueTable. the collect functions are now
called only once per value, collect_format/lcopy_format are strings
that enlist all necessary GTypeCValues to be varargs-collected.
* gvalue.h: ranamed STATIC_TAG to G_VALUE_NOCOPY_CONTENTS to indicate that
a value shouldn't copy its contents.
* gvaluecollector.h: changed G_VALUE_COLLECT() and G_VALUE_LCOPY()
macros to carry an additional argument (flags) that can be used
to pass G_VALUE_NOCOPY_CONTENTS along to the collection functions.
* *.c: adapted collect_value() and lcopy_value() functions to the new
prototypes, support G_VALUE_NOCOPY_CONTENTS where apropriate.
* gsignal.[hc]: introduced a G_SIGNAL_TYPE_STATIC_SCOPE flag that can
be passed along (ORed) with the parameter types, indicating that the
emission arguments are to be considered static for the scope of the
emission. should be used with care and only if the caller knows that
a parameter cannot be destroyed/freed from signal handlers connected
to an emission.
Fri Feb 16 06:52:20 2001 Tim Janik <timj@gtk.org>
* gobject/tmpl/types.sgml: incorporated huge docu patch from Eric
Lemings <eric.b.lemings@lmco.com> with a bunch of editing on my part.
Fri Feb 16 07:10:44 2001 Tim Janik <timj@gtk.org>
* gclosure.c:
(g_closure_ref):
(g_closure_sink): make closure sinking explicit.
* gsignal.c:
(g_signal_connect_data):
(g_signal_connect_closure):
(g_signal_connect_closure_by_id):
(g_signal_newv): perform explicit closure sinking.
Thu Feb 8 00:31:45 2001 Tim Janik <timj@gtk.org>
* gtype.h: added G_TYPE_DEBUG_NONE for/from Eric Lemings ;)
Sun Feb 4 07:38:32 2001 Tim Janik <timj@gtk.org>
* docs/debugging.txt: s/glib_trap_/g_trap_/. add comments on
g_trap_instance_signals, g_trace_instance_signals and
GRUNTIME_DEBUG.
* gmem.c: s/glib_trap_/g_trap_/.
Sun Feb 4 07:30:53 2001 Tim Janik <timj@gtk.org>
* gtype.[hc]: changed g_type_init() to take debugging flags
initially, a combination of G_TYPE_DEBUG_OBJECTS and
G_TYPE_DEBUG_SIGNALS. using the G_TYPE_ prefix is a bit odd
here, but basically g_type_int() serves as initialization
fucntion for all of GType, GObject, GSignal, so what the heck.
* gobject.c: special case debugging code properly.
changed glib_trap_object_ref to g_trap_object_ref.
* gsignal.c: add signal emission debugging abilities, along with
a new trap object g_trap_instance_signals.
2001-02-04 Tor Lillqvist <tml@iki.fi>
* tests/Makefile.am (thread_LDADD): Change order of libs,
put progs_LDADD last. Needed for cygwin, says jbdoll@kepri.re.kr.
2001-02-04 Tor Lillqvist <tml@iki.fi>
* Makefile.am (progs_LDADD): Change order of libs to libgobject
first, then libglib. Needed for cygwin, says jbdoll@kepri.re.kr.
Wed Jan 31 07:14:22 2001 Tim Janik <timj@gtk.org>
* gobject/Makefile.am: adapt to work with new CVS gtk-doc, leaving the old
rules in place caused bogus recursions. main changes:
- add to conditionalized section:
all-local:
$(MAKE) scan
$(MAKE) templates
$(MAKE) sgml
$(MAKE) html.stamp
html.stamp: sgml.stamp $(EXTRA_SGML_FILES)
$(MAKE) html
DOC_STAMPS= html.stamp sgml.stamp
- change:
maintainer-clean-local: clean
- cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+ cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt $(DOC_STAMPS)
* glib/Makefile.am (maintainer-clean-local): dito.
Wed Jan 31 06:21:32 2001 Tim Janik <timj@gtk.org>
* gobject/tmpl/types.sgml: applied docu patch from Eric Lemings
<eric.b.lemings@lmco.com>, did some more editing.
Wed Jan 31 06:19:49 2001 Tim Janik <timj@gtk.org>
* gparam.h: gtk-doc sucks for not dealing with #define inside enums.
* gtype.[hc]: added G_TYPE_FLAG_RESERVED_ID_BIT, a bit in the type
number that's supposed to be left untouched (preserved mainly
for the signal code).
* *.c: added thread safety code, based on an old patch from sebastian.
the remaining thread safety issues are now datalists on pspecs (to be
solved im gdataset.c) and gvalue.c where locking concerns value exchange
functionality only, and that's soon to be revised.
2001-01-27 Tor Lillqvist <tml@iki.fi>
* gmodule.c: (Win32) Need <io.h> for open() and close().
2001-01-27 Tor Lillqvist <tml@iki.fi>
* makefile.msc.in: Don't try to compile gmarshal.c on its own.
2001-01-25 Tor Lillqvist <tml@iki.fi>
* makefile.mingw.in
* */makefile.mingw.in: Protect the rule to rebuild makefile.mingw
if makefile.mingw.in has changed with a check if said .in file
exists. (This rule is mainly a convenience for yours truly.)