-
Andrew Hodgkinson authored
Image deletion routines rewritten; nasty animated GIF bug now gone (it kept trying to update the cross-referenced image in the browser that no longer existed, and I've no idea how animated GIFs ever managed to *not* blow up if a cross referencing browser was shut down; and I've tested this...). There are now as many image structures as there are total images in the visible browsers, and no more; cross referenced images in the to-be-deleted browser have their ownership moved to the cross referencer before the cross referencee is wiped, with any required fetches being transferred with them. Reformatter sped up a bit by getting rid of strlen on the main text field of tokens in all places bar one, where it is called extremely rarely. This means direct app-to-app transfer of, say, a 359K text file to the browser won't run like a drain as it tries to do strlen on a 359K string over and over again! Most of the time the performance benefits won't really be noticable, but on the above text file, formatting time went down from 290 seconds before the change to just under 7 seconds, a 41 fold speed increase or thereabouts (SA110 228MHz). MakeFile changed to force function name compilation on for debug builds (-fn in the DD...FLAGS); useful for certain functions such as register_null_handler, which can now output the name of the function being registered. ...Which helped show up some nasties in the animation handler and animation drift handler registration/deregistration process, which have been fixed (callers of fetchpage_release_nulls were unaware that the drift handler could be installed, and fragments of old code checking choices.anim_drift had a value other than 1 or 0 were still hanging around - bit tricky for a single bit item). Added support for VALIGN in table cells. Spotted a bug or two in the 'what token is the pointer over' routines as a result, and fixed them - the worst was in browser_line_at_y, which checked the y coordinate was below the given one [the mouse], but didn't check the line height to see if the given y coordinate was *within* the line, rather than just above it. Never used to matter pre-tables, but a definite concern once multiple line arrays can exist on one page.
5a494095