This patch fixes PR5382. The problem is that "bu_ls_rr_sort::operator()" and "td_ls_rr_sort::operator()" call getHeight() and getDepth() methods on SUnit, which can recompute values, what invalidates heap (SPQ). This patch guarantees that height and depth values won't be recomputed. The other solution would be to reheapify SPQ everytime when new SUnit is pop()ed, however I think it would be too expensive.

Can anyone look at this?


pr5382.patch (3.95 KB)

Thanks. I'm not crazy about this fix but don't see a better one. Dan, what do you think?