-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://codereview.secondlife.com/r/24/
-----------------------------------------------------------

(Updated 2010-12-16 11:06:44.936367)


Review request for Viewer.


Changes
-------

Added comments.

I'm wondering if there is still a reason for the deadlist_t related code now?

If that was "inlined" into the loop it would become:

        while (oi != end)
        {
                // increment the loop iterator now since it may become invalid 
below
                observer_multimap_t::iterator cur_oi = oi++;

                LLRemoteParcelInfoObserver * observer = cur_oi->second.get();
                if(observer)
                {
                        // may invalidate cur_oi if the observer removes itself 
                        observer->processParcelInfo(parcel_data);
                }
                else
                {
                        // the handle points to an expired observer, so don't 
keep it
                        // around anymore (invalidates cur_oi)
                        observers.erase(cur_oi);
                }
        }

That might decrease the chance of the fix being reverted since even if the 
comment on "processParcelInfo" is missed, then "observers.erase()" would still 
make the need for two iterators ("oi" and "cur_oi") clear?


Summary
-------

erase() on a multimap will only invalidate iterators that point to the element 
being erased so pre-incrementing the loop iterator should prevent it from 
getting invalidated when an observer calls removeObserver() as part of its 
processParcelInfo() implementation.


This addresses bug VWR-24207.
    http://jira.secondlife.com/browse/VWR-24207


Diffs (updated)
-----

  indra/newview/llremoteparcelrequest.cpp UNKNOWN 

Diff: http://codereview.secondlife.com/r/24/diff


Testing
-------


Thanks,

Kitty

_______________________________________________
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Reply via email to