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
