Re: Problems with un-owned objects passed to closures in pygobject (gtk_cell_renderer_text_start_editing)

I cannot offer a solution, just a grumpy observation:

The problem occurring with this kind of ref sequence is due to
gobject-introspection's decision to always set transfer-ownership=none
for GInitiallyUnowned descendants and the resulting habit of language
bindings to always sink floating refs.  For previous discussion:

On 17.01.2013 01:42, Simon Feltman wrote:
The pygobject specific problems I mention could be solved by tracking
incoming floating refs and re-floating them upon closure exit if the
python ref is not stored anywhere (or by attempting to just keep it

The approach in parentheses is used by the Perl bindings:

• For constructors which return GInitiallyUnowned instances, we
internally force transfer-ownership=full.

• We generally only sink floating refs if transfer-ownership=full.

Thus, there is no need to add and remove an additional ref during closure marshalling and the GtkEntry in the example keeps its "floating" flag.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]