1. 27 May, 2010 1 commit
    • Alexander Larsson's avatar
      Initial support for dtrace and systemtap · bef9efd0
      Alexander Larsson authored
      This adds static markers for dtrace, which are also usable
      by systemtap. Additionally it adds a tapset for systemtap
      that makes it easier to use the static markers.
      These are enabled by default.
      This initial set of probes is rather limited:
      * allocation and free using g_malloc & co
      * allocation and free using g_slice
      * gquark name tracking (useful for converting quarks to strings in probes)
      Notes on naming:
      Its traditional with dtrace to use probe names with dashes as
      delimiter (slice-alloc). Since dashes are not usable in identifiers
      the C code uses double underscores (slice__alloc) which is converted
      to dashes in the UI. We follow this for the shared lowlevel probe
      Additionally dtrace supports putting a "provider" part in the probe
      names which is essentially a namespacing thing. On systemtap this
      field is currently ignored (but may be implemented in the future), but
      this is not really a problem since in systemtap the probes are
      specified by combining the solib file and the marker name, so there
      can't really be name conflicts.
      For the systemtap tapset highlevel probes we instead use names that
      are systemtapish with single dashes as separators.
  2. 26 Nov, 2007 1 commit
    • Alexander Larsson's avatar
      gio/ docs/reference/gio Merged gio-standalone into glib. · 37813437
      Alexander Larsson authored
      2007-11-26  Alexander Larsson  <alexl@redhat.com>
              * Makefile.am:
              * configure.in:
              * gio-2.0-uninstalled.pc.in:
              * gio-2.0.pc.in: 
              * gio-unix-2.0-uninstalled.pc.in:
              * gio-unix-2.0.pc.in:
      	* gio/
      	* docs/reference/gio
      	Merged gio-standalone into glib.
              * glib/glibintl.h:
              * glib/gutils.c:
      	Export glib_gettext so that gio can use it
      	Add P_ (using same domain for now)
      	Add I_ as g_intern_static_string
      svn path=/trunk/; revision=5941
  3. 19 Jun, 2004 1 commit
  4. 22 Nov, 2001 1 commit
  5. 18 Nov, 2001 1 commit
    • Owen Taylor's avatar
      Include gtypes.h not gobject/gtype.h · 5852eace
      Owen Taylor authored
      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
  6. 03 Sep, 2001 2 commits
    • Owen Taylor's avatar
      Implement. · 0038581e
      Owen Taylor authored
      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.
    • Owen Taylor's avatar
      Add closure_marshal/closure_callback fields to GSourceFuncs for use by · b4c3107c
      Owen Taylor authored
      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.
      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.
  7. 07 Mar, 2001 1 commit
    • Tim Janik's avatar
      changed prototype of g_boxed_type_register_static() to contain an optional · 37e4b8c8
      Tim Janik authored
      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
      	* 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
      	* 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
      	* 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
      	* *.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
              * gobject/gobject-sections.txt: updates.
              * gobject/tmpl/*: bunch of updates, added another patch
              from Eric Lemings <eric.b.lemings@lmco.com>.
  8. 11 Nov, 2000 1 commit
    • Owen Taylor's avatar
      Add gtypemodule.h · c36151fc
      Owen Taylor authored
      Sun Nov  5 13:20:54 2000  Owen Taylor  <otaylor@redhat.com>
      	* glib-object.h: Add gtypemodule.h
  9. 05 Nov, 2000 1 commit
    • Tim Janik's avatar
      fixed a bag full of subtle bugs of immensive screw-up potential in · 83c45024
      Tim Janik authored
      Sun Nov  5 05:22:55 2000  Tim Janik  <timj@gtk.org>
              * gsignal.c:
              fixed a bag full of subtle bugs of immensive screw-up potential in
              handlers_find(), luckily no one found out about them yet ;)
              fixed signal_handlers_foreach_matched_R() so it operates on an
              initial handler list snapshot provided by handlers_find() to work
              around general reentrancy problems and to avoid multiple callback()
              invocations on the same handlers.
              this code is now officially 80% bug free (10% remaining for interface
              types, and 10% remaining for destroyed signals ;)
      Sat Nov  4 02:01:33 2000  Tim Janik  <timj@gtk.org>
              * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
              * gtypeplugin.[hc]: new files holding a GTypePlugin interface
              implementation that provides the API required by GType to deal with
              dynamically loadable types.
              * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
  10. 25 Oct, 2000 1 commit
    • Tim Janik's avatar
      added newly added gobject/ headers. · ee23c09e
      Tim Janik authored
      Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
              * glib-object.h: added newly added gobject/ headers.
              * gmesage.c: print g_message() output to stderr instead of stdout.
      Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
              * gtype.c (g_type_free_instance): for the moment, freeing object
              structures will fill their memory portion with 0xAA. there's a
              FIXME there, remove this line at a later point.
      Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
              * glib-genmarshal.1:
              * glib-genmarshal.c: added publically installed marshaller generator.
              * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
              interface VTable from instances.
      Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
              * gobject.[hc]: new functions for closure maintenance:
              (g_object_watch_closure): maintain validity of the object and
              the closure for objects that are used as data part of a closure.
              (g_cclosure_new_object): convenience function to create C closures
              that have an object as data argument.
              (g_closure_new_object): convenience function to create closures
              that have an object as data argument.
              * gclosure.[hc]: implementation of GClosure mechanism.
              a closure is basically an encapsulation of a callback function
              and its environment. ideally, most places supporting callback
              functions will simply take a GClosure* pointer and thus unify
              callback environments wrg destroy notification etc.
              GClosure provides destroy notifiers for arbitrary data pointers,
              reference counting, invalidation notification (it can be invalidated
              which is merely a deactivate state) and a marshallinbg abstraction.
              GCClosure is also provided in these files, they present a specialized
              GClosure implementation for C language callbacks.
              * genum.c: macro cleanups.
              * gboxed.[hc]: new files, for boxed type abstraction.
              (g_boxed_copy): copy a boxed structure
              (g_boxed_free): free a boxed structure
              (g_value_get_boxed): standard GValue functions for boxed types
              (g_boxed_type_register_static): convenience function for easy
              introduction of new G_TYPE_BOXED derivatives.
              * gparam.[hc]: introduced g_param_type_register_static(), a short hand
              for creation of new GParamSpec derived types.
              * gtype.[hc]: many fixes, introduced ability to flag individual
              type nodes as ABSTRACT upon registration, added value_peek_pointer()
              to the value table to peek at GValue contents as a pointer for types
              that support this. fixed up GValue checks.
              * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
              to peek at the value contents as pointer.
              * *.[hc]: adaptions to type macro fixes and changes in the type
              registration API.
              * many const corrections over the place.
      Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
              * gtype.c (g_type_conforms_to): this function basically behaves like
              and is_a check, except that it _additionally_ features interfaces
              for instantiatable types. enforce this in the second branch as well
              (`type' conforms_to `type') even if `type' is not an interface type.
      Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
              * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
              * gtype.[hc]:
              * gobject.c:
              * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
              suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
              and G_TYPE_POINTER.
      Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
              * gbsearcharray.[hc]: long standing needed generic implementation
              of a binary searchable, sorted and dynamically sized array.
  11. 24 Jun, 2000 1 commit
    • Tim Janik's avatar
      define gstring in terms of gchar*. this typedef reflects the type name of · 09f8e937
      Tim Janik authored
      Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
              * glib.h: define gstring in terms of gchar*. this typedef reflects
              the type name of the primitive G_TYPE_STRING in the gobject module.
      Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
              * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
              G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
              added a GTypeValueTable* pointer to GTypeInfo structure for types
              to implement GValue handling functions.
              GTypeValueTable contains the following members:
                value_init(): initialize a GValue structure.
                value_free(): free GValue structure contents (optional).
                value_copy(): copy one GValue contents to another GValue structure of
                collect_type: varargs collection type for the first variable argument
                to be collected by collect_value().
                collect_value(): variable arguments collection function (optional).
                lcopy_type: varargs collection type for the first variable argument
                to be location copyied by lcopy_value().
                lcopy_value(): variable arguments location copy function (optional).
              g_type_value_table_peek(): new function to retrive the GTypeValueTable*
              for a type node. ValueTables get inherited from parent types, unless
              overridden through the GTypeInfo structure. internally, GTypeValueTable
              support means an added overhead of one pointer per static or used
              dynamic type node.
              g_type_add_class_cache_func(): provide a cache_func/data pair to be
              called  prior to a type nodes last_unref() function, this can be used
              to prevent premature class destruction. multiple installed cache_func()
              will be chained upon last_unref() untill one of them returns TRUE.
              the cache_func()s have to check the type id passed in to figure whether
              they actually wants to cache the class of this type (since any types are
              routed through the cache_func() chain).
              g_type_remove_class_cache_func(): remove a previously installed
              cache_func/data pair. the cache maintained by this function has to be
              clear when calling g_type_remove_class_cache_func() to avoid leaks.
              g_type_class_unref_uncached(): class unref function for cache_func()
              implementations, unreferences a class omitting the cache chain (and
              therefore unref->cache->unref->... loops).
              * gvaluetypes.[hc]: provide the value setters/getters for the primitive
              fundamental types boolean, char, uchar, int, uint, long, ulong, float,
              double and string.
              * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
              GTypeValueTable is provided for this type.
              removed g_value_init_default(), g_value_validate(), g_value_defaults(),
              g_value_set_default() and g_values_cmp() as these are supplied by the
              GParamSpec API now.
              moved g_values_exchange() into the "implementation details" section,
              since it just provides the underlying functionality for
              * gvaluecollector.h: renamed the varargs value container from
              GParamCValue to GTypeCValue as the value collection methods are
              supplied by the type system now.
              G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
              G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
              GParamSpec structure now.
              * genums.h: macros cleanups/fixes.
              * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
              and assorted g_value_{s|g}et_{enum|flags}() implementations.
              * gobject.[hc]:
              provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
              and g_value_{s|g}et_object().
              * gparam.[hc]: reduced class to value_set_default(),
              value_validate() and values_cmp(). also parameters now need to fill
              in a GType value_type; field to indicate the GValue type they
              are handling. provide g_param_value_set_default(),
              g_param_value_defaults(), g_param_value_validate() and
              * gparamspecs.[hc]: got rid of the g_value_* functions and
              the G_IS_VALUE_* macros. adapted param spec implementations
              according to the GParamSpecClass changes.
  12. 12 May, 2000 1 commit
    • Tim Janik's avatar
      added gobject · 153f8c64
      Tim Janik authored
      Fri Apr 28 23:54:35 2000  Tim Janik  <timj@gtk.org>
              * setup things for a new sub-library libgobject:
              * Makefile.am (SUBDIRS): added gobject
              * glib-config.in: feature -lgobject.
              * configure.in (AC_OUTPUT): generate gobject/Makefile.
              * glib.m4 (AM_PATH_GLIB): feature gobject module.
              * glib.spec.in: added %{prefix}/lib/libgobject-1.3.so.*