• Andrew Hodgkinson's avatar
    Support for ANT URL broadcast message added. · 5a494095
    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
!RunD,feb 3.63 KB