Hi, The big patch for html.cc getting rid of the linkblock and html structures, merging them in a single class with link-receiver inside, and also enabling freeing of the resources formerly stored in the linkblock, is commited! :-) The amazing thing is that it seems to work. ;) On Fri, Nov 09, 2007 at 09:34:33AM -0300, Jorge Arellano Cid wrote:
Hi,
On Fri, Nov 09, 2007 at 09:09:26AM -0300, Jorge Arellano Cid wrote:
[...] As a side effect of flickering, I noticed several times how some non existent inputs (text entries and buttons) were phantom-rendered during updates (i.e. appeared on screen for a few jiffies).
[...]
For instance, enable flickering (disable double-buffer and internal buffer), then go to:
1. www.google.com //and then to 2. chlamydia.fs.ei.tum.de/pub/DragonFly/packages/stable/DragonFly-1.10/All/
While loading the second URL you'll see the phantom-rendering of the text input and the two buttons that google uses.
Although now we have memory-freeing hooked, the phantom rendering still occurs...
Now, I thought this was to be deleted from the call in web.cc (as a children of the top widget or something), but there's another way to do it that looks like the original idea.
Actually, it doesn't look like a good idea. What seems proper is that Dw internally deletes its widget tree, and DilloHtml deletes its non-dw state (as now).
In html parsing we have a structure called the linkblock. This contains all the data that is needed after the page is parsed and rendered (mainly forms data), and also dw widgets!
In html.hh you'll find DilloHtmlLB. Within DilloHtmlLB there's a vector of DilloHtmlForm, which has a vector of DilloHtmlInput which holds widgets.
The linkblock is designed to be freed when the displayed dw is deleted, but this hook is not currently operative! (this is the warning you get at html.cc compile time about Html_lb_free not being called).
Well, now there's no linkblock, and everything is inside the DilloHtml class (much cleaner). Memory handling is hooked and it works.
Anyway, when the linkblock-free callback is hooked, those widgets can be destroyed from Html_lb_free(). Which is mainly implemented but not yet tested.
My mistake: this part is for freeing non-dw data. What _seems_ to happen is that the "Embed" widgets are not being deleted (not yet confirmed though). Feel free to investigate! :-) -- Cheers Jorge.-