Re: Epiphany extensions, what to do next

Xan Lopez wrote:
> Unfortunately, because of the way bindings manage memory
> through toggle references, I've been told that it's, at minimum, not a
> good idea to enable both Python and Seed extensions at the same time
> (this makes sense to me, although I'd welcome a 'yes, this is right
> and can't be made to work' authoritative answer :)).

Basically, the problem is that if you expose the same GObject to
multiple runtimes, then each will hold a toggle ref on the object, and
so the object's refcount will always be at least 2 (and not, in
particular, "1 with just a toggle ref"), and so it will never be destroyed.

So it's not *impossible* to make things work, it just means you can't
expose the same objects to multiple runtimes. So instead of letting
plugins work directly with your WebKitViews, etc, you'd have to create
proxy objects, where any given proxy object is only exposed to a single
runtime (or even a single plugin). (Of course, objects like the default
GdkDisplay or GConfClient that don't ever get destroyed anyway, can be
exposed directly.)

Depending on how much functionality plugins are allowed access to, this
would suck more or less.

-- Dan

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