glib/gobject
Thomas Haller 0564abf6e0 gobject: avoid GLIB_PRIVATE_CALL() for g_datalist_id_update_atomic
Cache the function pointer for g_datalist_id_update_atomic() in a static
variable to avoid looking it up repeatedly.

g_datalist_id_update_atomic() is anyway internal API. And just like
GData is not a very useful data structure in general, it's mainly used
by GObject. And since GObject is the at the code, optimizing this makes
sense.

We can easily see that we never call g_datalist_id_update_atomic()
without having a GObject at hand (because we call it on
`&object->qdata`. Thus initializing the pointer in
g_object_do_class_init() (under lock) works perfectly fine. And if this
invariant ever changes, you will get a crash immediately and notice the
problem.
2025-01-16 21:33:10 +01:00
..
tests Merge branch 'wfloat-conversion' into 'main' 2024-09-17 17:57:11 +00:00
gatomicarray.c GAtomicArray: Ensure metadata does not misalign the payload 2023-01-29 12:36:06 +00:00
gatomicarray.h GAtomicArray: Ensure metadata does not misalign the payload 2023-01-29 12:36:06 +00:00
gbinding.c Remove all nicks and blurbs from param specs 2023-11-29 13:41:34 +00:00
gbinding.h docs: Move the GBinding SECTION 2023-10-16 23:34:04 +01:00
gbindinggroup.c Remove all nicks and blurbs from param specs 2023-11-29 13:41:34 +00:00
gbindinggroup.h docs: Move the GBindingGroup SECTION 2023-10-16 23:34:20 +01:00
gboxed.c Add boxed GType for GRand 2023-12-31 09:09:48 +00:00
gboxed.h Rename all visibility macros 2022-10-13 20:53:56 -04:00
gclosure.c gclosure: Delete old commented-out non-thread-safe code 2024-04-26 00:21:15 +01:00
gclosure.h docs: Move the GClosure SECTION 2023-10-16 23:35:05 +01:00
genums.c Add missing (array zero-terminated=1) annotations 2024-11-06 22:26:06 +01:00
genums.h genums: use g_once_init_enter_pointer for GType initializers 2024-01-15 17:32:11 -08:00
glib-enumtypes.c.template gio, gobject: Improve reproducibility of enumtypes headers 2024-12-13 23:40:32 +00:00
glib-enumtypes.h.template gio, gobject: Improve reproducibility of enumtypes headers 2024-12-13 23:40:32 +00:00
glib-genmarshal.in Use the python found by meson as the interpreter for installed scripts 2024-03-25 15:17:59 -04:00
glib-mkenums.in Use the python found by meson as the interpreter for installed scripts 2024-03-25 15:17:59 -04:00
glib-types.h Add boxed GType for GRand 2023-12-31 09:09:48 +00:00
gmarshal.c Replace all uses of G_VA_COPY with Standard C va_copy 2022-10-26 18:07:55 +01:00
gmarshal.h Rename all visibility macros 2022-10-13 20:53:56 -04:00
gobject_gdb.py gobject_gdb.py: Do not break bt on optimized build 2023-12-12 17:30:01 +00:00
gobject_probes.d Add missing semicolons to gobject_probes.d 2012-10-15 19:48:44 -04:00
gobject_trace.h Add SPDX license headers for LGPL-2.1-or-later to various files 2022-06-01 12:44:23 +01:00
gobject-autocleanups.h Ignore autocleanups when generating introspection data 2023-10-23 10:25:30 +01:00
gobject-query.c gobject: Fix various implicit conversions from size_t to smaller types 2024-04-25 12:39:46 +01:00
gobject.c gobject: avoid GLIB_PRIVATE_CALL() for g_datalist_id_update_atomic 2025-01-16 21:33:10 +01:00
gobject.h docs: Move the GObject SECTION 2023-10-16 23:34:24 +01:00
gobject.rc.in meson: build Windows resource files 2018-01-04 22:19:30 +01:00
gobject.stp.in stp: add code comment to gobject.object_unref about object being dangling 2023-12-30 00:20:17 +01:00
gobjectnotifyqueue.c fix https://gitlab.gnome.org/GNOME/glib/-/issues/3444 2024-09-26 22:47:30 +03:00
gparam.c gobject: fix broken links to parameters and signals naming rules 2024-05-21 22:32:20 +00:00
gparam.h gparam: Add link to constructed vfunc to CONSTRUCT 2024-12-06 18:07:47 +01:00
gparamspecs.c gparamspecs: Define G_FLOAT_EPSILON as a float constant 2024-06-28 14:35:00 +01:00
gparamspecs.h Rename all visibility macros 2022-10-13 20:53:56 -04:00
gsignal.c gsignal: Add clarification on 'detailed_signal' validation 2024-12-02 14:28:59 +00:00
gsignal.h corrected Memory management of signal handlers anchor 2025-01-10 12:51:45 +05:30
gsignalgroup.c Remove all nicks and blurbs from param specs 2023-11-29 13:41:34 +00:00
gsignalgroup.h docs: Move the GSignalGroup SECTION 2023-10-16 23:34:44 +01:00
gsourceclosure.c gobject: use g_once_init_enter_pointer for GType initializers 2023-10-04 14:50:54 +01:00
gsourceclosure.h Rename all visibility macros 2022-10-13 20:53:56 -04:00
gtype-private.h gobject: Remove unused variable from macro 2024-07-01 18:39:48 +01:00
gtype.c gtype: Move an assertion to help out the static analyser 2024-04-25 23:16:22 +01:00
gtype.h gobject: Fix macro name in comment; improve style 2024-07-03 08:09:31 +01:00
gtypemodule.c gtypemodule: Add assertions in finalize() 2023-12-21 18:25:36 +01:00
gtypemodule.h docs: Move the GTypeModule SECTION 2023-10-16 23:34:59 +01:00
gtypeplugin.c gobject: Fix invalid doc links 2023-10-23 11:26:53 +01:00
gtypeplugin.h docs: Move the GTypePlugin SECTION 2023-10-16 23:34:53 +01:00
gvalue.c docs: Move GValue documentation to Markdown 2023-10-11 14:01:29 +01:00
gvalue.h Rename all visibility macros 2022-10-13 20:53:56 -04:00
gvaluearray.c gqsort: Add g_sort_array() and deprecate g_qsort_with_data() 2024-06-28 15:27:18 +01:00
gvaluearray.h docs: Move the GValueArray SECTION 2023-10-16 23:34:39 +01:00
gvaluecollector.h docs: Move the value collection documentation to Markdown 2023-10-23 13:18:13 +01:00
gvaluetransform.c gvalue: Add explicit casts in numeric transform functions 2024-06-28 14:35:57 +01:00
gvaluetypes.c gvalue: Add explicit casts in numeric transform functions 2024-06-28 14:35:57 +01:00
gvaluetypes.h gvalue: add g_value_steal_string() 2023-11-04 10:40:30 +00:00
libgobject-gdb.py.in Rename gdb macros with _gdb suffix to avoid ns clashes 2016-05-23 10:52:10 -04:00
meson.build build: Drop redundant install_tag arguments for headers 2024-09-11 22:04:39 -07:00