<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/glib.git/gobject, branch pgriffis/wip/resolver-https</title>
<subtitle>gitlab.gnome.org: GNOME/glib.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/'/>
<entry>
<title>Distribute cxx test tests/cxx-test.cpp to each module tests directory</title>
<updated>2021-12-14T13:43:03+00:00</updated>
<author>
<name>Emmanuel Fleury</name>
<email>emmanuel.fleury@gmail.com</email>
</author>
<published>2021-12-13T15:06:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=ae345e56c25e5b7452e3ce7c94611e7a71911047'/>
<id>ae345e56c25e5b7452e3ce7c94611e7a71911047</id>
<content type='text'>
tests/cxx-test.cpp is removed and splitted into gio/tests/cxx.cpp,
gmodule/tests/cxx.cpp and gobject/tests/cxx.cpp.

Helps issue #1434
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tests/cxx-test.cpp is removed and splitted into gio/tests/cxx.cpp,
gmodule/tests/cxx.cpp and gobject/tests/cxx.cpp.

Helps issue #1434
</pre>
</div>
</content>
</entry>
<entry>
<title>Defer GObject::notify during object destruction</title>
<updated>2021-11-29T15:43:59+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2021-11-28T00:36:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=1ec331266ac5782223d3dafa6c9176eaeefcebae'/>
<id>1ec331266ac5782223d3dafa6c9176eaeefcebae</id>
<content type='text'>
Notifying during object destruction is a dubious "feature": objects
might end up recreating a bunch of state just before clearing it;
language bindings might get spurious notifications during garbage
collection runs.

We freeze the notification queue before running the dispose() chain; if
the object was temporarily vivified during dispose, we thaw the
notification queue, otherwise we let the instance clear it when we
finalize it.

See: https://gitlab.gnome.org/GNOME/gjs/-/issues/445
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Notifying during object destruction is a dubious "feature": objects
might end up recreating a bunch of state just before clearing it;
language bindings might get spurious notifications during garbage
collection runs.

We freeze the notification queue before running the dispose() chain; if
the object was temporarily vivified during dispose, we thaw the
notification queue, otherwise we let the instance clear it when we
finalize it.

See: https://gitlab.gnome.org/GNOME/gjs/-/issues/445
</pre>
</div>
</content>
</entry>
<entry>
<title>gobject: Use new g_newa0() function</title>
<updated>2021-11-26T12:24:23+00:00</updated>
<author>
<name>Nishal Kulkarni</name>
<email>nishalkulkarni@gmail.com</email>
</author>
<published>2021-11-25T10:48:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=1529c2ca4d44d0bb82f5ea416d77dc776e90510d'/>
<id>1529c2ca4d44d0bb82f5ea416d77dc776e90510d</id>
<content type='text'>
Replace old `g_newa()` and `memset()` with `g_newa0()`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace old `g_newa()` and `memset()` with `g_newa0()`
</pre>
</div>
</content>
</entry>
<entry>
<title>gsignal: Use new g_newa0() function</title>
<updated>2021-11-26T12:24:23+00:00</updated>
<author>
<name>Nishal Kulkarni</name>
<email>nishalkulkarni@gmail.com</email>
</author>
<published>2021-11-25T08:18:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=34cf69ef17892719e32841dd4d7fc4f486adffa5'/>
<id>34cf69ef17892719e32841dd4d7fc4f486adffa5</id>
<content type='text'>
Replace old `g_alloca()` and `memset()` with `g_newa0()`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace old `g_alloca()` and `memset()` with `g_newa0()`
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'reformat-enums' into 'main'</title>
<updated>2021-11-22T13:54:42+00:00</updated>
<author>
<name>Sebastian Dröge</name>
<email>slomo@coaxion.net</email>
</author>
<published>2021-11-22T13:54:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=c3f4f9c215baaa4b33fc0a34068368ef4d8da9c2'/>
<id>c3f4f9c215baaa4b33fc0a34068368ef4d8da9c2</id>
<content type='text'>
tests: Reformat mkenums.py slightly to make run-black.sh happy

See merge request GNOME/glib!2342</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tests: Reformat mkenums.py slightly to make run-black.sh happy

See merge request GNOME/glib!2342</pre>
</div>
</content>
</entry>
<entry>
<title>gobject: Add advice on larger alignment requirements for GObject members</title>
<updated>2021-11-17T11:56:20+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>withnall@endlessm.com</email>
</author>
<published>2017-12-08T14:57:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=7a8756d247a5c54be121668919ae9cac2f8ae4fb'/>
<id>7a8756d247a5c54be121668919ae9cac2f8ae4fb</id>
<content type='text'>
We now guarantee that GObjects will always be allocated at least as
aligned as the basic types. If you want to put an element in your
GObject which has higher alignment requirements, we can’t guarantee it
will be aligned*. If you need it to be aligned, you’ll need to put it on
the heap (aligned appropriately), or add appropriate padding in your
GObject struct.

*Actually, GSlice will guarantee that the whole GObject is aligned to at
least the power of 2 greater than or equal to the size of the GObject,
which means any element in the GObject struct should always be
appropriate aligned if the compiler pads it appropriately. If malloc()
is used, however, it doesn’t make that guarantee, so we can’t make that
guarantee overall.

Signed-off-by: Philip Withnall &lt;withnall@endlessm.com&gt;

Helps: #1231
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We now guarantee that GObjects will always be allocated at least as
aligned as the basic types. If you want to put an element in your
GObject which has higher alignment requirements, we can’t guarantee it
will be aligned*. If you need it to be aligned, you’ll need to put it on
the heap (aligned appropriately), or add appropriate padding in your
GObject struct.

*Actually, GSlice will guarantee that the whole GObject is aligned to at
least the power of 2 greater than or equal to the size of the GObject,
which means any element in the GObject struct should always be
appropriate aligned if the compiler pads it appropriately. If malloc()
is used, however, it doesn’t make that guarantee, so we can’t make that
guarantee overall.

Signed-off-by: Philip Withnall &lt;withnall@endlessm.com&gt;

Helps: #1231
</pre>
</div>
</content>
</entry>
<entry>
<title>gtype: Eliminate -Wcast-align warnings with G_TYPE_CHECK_INSTANCE_CAST</title>
<updated>2021-11-17T11:56:20+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>withnall@endlessm.com</email>
</author>
<published>2017-12-08T14:53:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=ed553e8e309d71a42d24d2015c0afbb92f2df7b6'/>
<id>ed553e8e309d71a42d24d2015c0afbb92f2df7b6</id>
<content type='text'>
Regardless of the actual alignment of the GTypeInstance in question,
these do a runtime check on the type, so if the type was originally
aligned correctly when allocated, it should be aligned correctly if the
type check succeeds. -Wcast-align is meant to warn about casts between
types, which this isn’t (if the check succeeds).

Signed-off-by: Philip Withnall &lt;withnall@endlessm.com&gt;

Fixes: #1231
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Regardless of the actual alignment of the GTypeInstance in question,
these do a runtime check on the type, so if the type was originally
aligned correctly when allocated, it should be aligned correctly if the
type check succeeds. -Wcast-align is meant to warn about casts between
types, which this isn’t (if the check succeeds).

Signed-off-by: Philip Withnall &lt;withnall@endlessm.com&gt;

Fixes: #1231
</pre>
</div>
</content>
</entry>
<entry>
<title>gobject: Assert that GObjects are at least as aligned as basic types</title>
<updated>2021-11-17T11:56:20+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>withnall@endlessm.com</email>
</author>
<published>2017-12-08T14:34:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=0749643daaa818e78d68da27db5378f15eb31e0b'/>
<id>0749643daaa818e78d68da27db5378f15eb31e0b</id>
<content type='text'>
See the reasoning in the patch for why we believe GObjects *are*
(already) as aligned as the basic types.

We want to make this guarantee so that it’s guaranteed to be safe for
people to ignore -Wcast-align warnings for GObjects which contain basic
types. This typically happens with gdouble on 32-bit ARM platforms.

The checks are slightly complicated by the need to support GObjects with
custom constructors. We should expect that a custom construction
function will chain up to g_object_constructor (which calls
g_type_create_instance() as normal), but it’s possible that someone has
done something crazy and uses a custom allocator which doesn’t return
with the same alignment as GSlice. Hand them a warning in that case. If
that is true, the code which uses their custom-constructed GObject can
presumably already deal with the alignment it gets given.

Signed-off-by: Philip Withnall &lt;withnall@endlessm.com&gt;

Helps: #1231
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See the reasoning in the patch for why we believe GObjects *are*
(already) as aligned as the basic types.

We want to make this guarantee so that it’s guaranteed to be safe for
people to ignore -Wcast-align warnings for GObjects which contain basic
types. This typically happens with gdouble on 32-bit ARM platforms.

The checks are slightly complicated by the need to support GObjects with
custom constructors. We should expect that a custom construction
function will chain up to g_object_constructor (which calls
g_type_create_instance() as normal), but it’s possible that someone has
done something crazy and uses a custom allocator which doesn’t return
with the same alignment as GSlice. Hand them a warning in that case. If
that is true, the code which uses their custom-constructed GObject can
presumably already deal with the alignment it gets given.

Signed-off-by: Philip Withnall &lt;withnall@endlessm.com&gt;

Helps: #1231
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Reformat mkenums.py slightly to make run-black.sh happy</title>
<updated>2021-11-17T10:37:07+00:00</updated>
<author>
<name>Philip Withnall</name>
<email>pwithnall@endlessos.org</email>
</author>
<published>2021-11-17T10:37:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=c6dca3459bed9bf383b4868966e6dd3707f39487'/>
<id>c6dca3459bed9bf383b4868966e6dd3707f39487</id>
<content type='text'>
This should remove some warnings from the CI, making it easier to see
legitimate CI failures.

For example, see https://gitlab.gnome.org/GNOME/glib/-/jobs/1621041.

Signed-off-by: Philip Withnall &lt;pwithnall@endlessos.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should remove some warnings from the CI, making it easier to see
legitimate CI failures.

For example, see https://gitlab.gnome.org/GNOME/glib/-/jobs/1621041.

Signed-off-by: Philip Withnall &lt;pwithnall@endlessos.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'weak-refs-docs' into 'main'</title>
<updated>2021-10-27T23:37:22+00:00</updated>
<author>
<name>Michael Catanzaro</name>
<email>mcatanzaro@gnome.org</email>
</author>
<published>2021-10-27T23:37:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glib.git/commit/?id=98e0789fea615be6b2baa648a891b607eb7016db'/>
<id>98e0789fea615be6b2baa648a891b607eb7016db</id>
<content type='text'>
gobject: Clarify behaviour of adding weak refs during disposal

See merge request GNOME/glib!2255</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
gobject: Clarify behaviour of adding weak refs during disposal

See merge request GNOME/glib!2255</pre>
</div>
</content>
</entry>
</feed>
