Evas_Quartz Leak Hunting

2008.08.08 in summer of code

So, I'm not sure exactly where I was last time I wrote about my progress on Evas_Quartz... so I'll just mention the things I know I've done recently...

1) Gradients work now! Except, only some of them. It seems that linear, sinusoidal, and angular gradients work, but I haven't seen a radial gradient out of it yet. Not sure that this is my fault, but it really only seems reasonable that it is. I just haven't figured out why yet (anyone care to help?)...

2) The biggest problems with the text block layout code (actually, the problems were with my functions for querying Core Text font metrics, as I knew) are all fixed now. Text blocks (at least the ones in Expedite, and the ones I made for my little throwaway test programs) all look great! A part of the solution is very clearly hackish, but it works for now. I've come back to this code, revising it massively, a few times during the project... one more pass should probably do it.

3) I spent a lot of time cleaning up memory leaks in #1 and #2. I suppose this is technically part of #1 and #2, but it happened more recently than the initial implementations. Heh.

In truth, I was leaking a lot. A legitimately embarrassing amount, at first... so in an afternoon, it went from >100MB (just silly!) to 100KB, and now it's at 14KB (through the entirety of the test program). The remaining leak is somewhere in the image data access functions (image_data_put, I think)...

4) I've got bits and pieces of the Ecore bits started, if you count... nearly empty files compiling and installing properly as started. I haven't added them to Git yet, and I have to find a home for them in Google Code SVN (since the root of that is currently the evas directory... oops). I think it's pretty clear that between sorting out threads/runloops/etc. and ... just ... making Cocoa work like a more conventional system, I'm going to be at this part for well into the school year, which is fine with me (maybe I can convince Robb to point me in the right direction, once I can show him what's up). But maybe there's others that work like this, I don't know. Carbon would certainly be literally a million times easier. Gah!