# # patch "ChangeLog" # from [a30affd9f6b476e1875c0b8616d6cd9c4f2d8468] # to [f98c15871e5dc1186e24f44f0d7ec683380199c6] # # patch "revision.cc" # from [46c7406a0e98ce37fd1ae0d900531a07c34480c1] # to [17fd287fc24d034e44c2134091c8a71d4c6afbdb] # --- ChangeLog +++ ChangeLog @@ -1,5 +1,13 @@ -2005-05-06 Timothy Brownawell +2005-05-11 Timothy Brownawell + * revision.cc (expand_dominators): Fix bitmap size-matching. + (find_common_ancestor_for_merge): Do not wait for ancestors + to be expanded to the beginning of time before expanding + dominators. Requires above fix for correct behavior. + * ChangeLog: Fix date on previous entry. + +2005-05-11 Timothy Brownawell + * contrib/monoprof.sh: Add profiling test for "netsync large file". Add options to only run specific profile tests. --- revision.cc +++ revision.cc @@ -363,11 +363,11 @@ shared_bitmap(new bitmap()))); shared_bitmap pbits = dominators[parent]; - if (bits->size() > pbits->size()) - pbits->resize(bits->size()); + if (intersection.size() > pbits->size()) + pbits->resize(intersection.size()); - if (pbits->size() > bits->size()) - bits->resize(pbits->size()); + if (pbits->size() > intersection.size()) + intersection.resize(pbits->size()); if (first) { @@ -378,6 +378,11 @@ intersection &= (*pbits); } + if (intersection.size() > bits->size()) + bits->resize(intersection.size()); + + if (bits->size() > intersection.size()) + intersection.resize(bits->size()); (*bits) |= intersection; if (*bits != saved) something_changed = true; @@ -506,7 +511,7 @@ L(F("searching for common ancestor, left=%s right=%s\n") % left % right); - while (expand_ancestors(parents, ancestors, intern, app) || + while (expand_ancestors(parents, ancestors, intern, app) | expand_dominators(parents, dominators, intern, app)) { L(F("common ancestor scan [par=%d,anc=%d,dom=%d]\n") %