Hi,
some weeks ago I was granted with commit access to improve the efl bindings
for Vala language. Apart from them being quite outdated in relation to the
C API, the current vala API for elementary (the library which mot of users
use) is conceptually wrong.

Basically in current vAPI we are using constructors which at C level call
the elm_*_add() functions. The problem is that calling that function in C
is giving ownership of the widget to the parent widget passed as parameter
(ownsership as in it is responsible of freeing it once it is deleted). The
problem comes here. A constructor in vala always return an owned reference
of an object, which means that the object is freed automatically by vala
when the object gets out of scope (using evas_object_del), which is bad
because efl itself will try to free the object too once the parent is
deleted.

So we are now changing the elementary vapi to use static methods which
return unowned references of new objects, which I think is the desired and
right way to go.

I just wanted to share with the community this information, because this
means that once we are finished with this code changes, all applitacions
using eflvala with elementary (hopefully no more than 5 o 6 :P) will cease
to work.

I'm now working on it in a separate git repo in gitorious (
https://gitorious.org/eflvala) to not disturb users of the bindings as I'm
changing lots of different things (some of them might not be stable) which
would make them to rewrite their applications quite frequently and that's a
problem for example for apps built from OpenEmbedded,  asit stops all
system from building.

I'm already porting one of my applications to try the new eflvala in
complex situations (genlists with objects, etc.).

You'll find that all the tests and examples in the repo should be already
using correctly the new vapi. If someone has some thoughts on the thread,
he's welcome to talk on this :)


Once I get the vapi files uptodate with last EFL release (which will be out
soon hopefully), I'll move the development back to E svn using git-svn. As
for now it's easier for me to manage all the huge amount of changes in a
separate git repo where I can work offline and get feedback/access from
other people too ;)

Thanks for the attention,
-- 
Pau Espin Pedrol
mail/jabber: [email protected]
http://blog.espeweb.net
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to