# # patch "ChangeLog" # from [c49c26c5aaa8bb8612d4baa0d2d1fe80375de09f] # to [115bf895d0e70b78a4f0fa8d0b3bc65f6ff23ebb] # # patch "change_set.cc" # from [d7ca9d033951cfaea901ea66a17490361c63368f] # to [ac5f6d85330f8287a66d747e06d414b9120cb2cd] # # patch "vocab.cc" # from [306f28040121de17ab2e4849928e9cf2938943bd] # to [2c41cbb5d3163362b8ade235b944e808e97dbf99] # --- ChangeLog +++ ChangeLog @@ -1,5 +1,10 @@ 2005-04-27 Matt Johnston + * vocab.cc (verify(file_path)): don't find() twice. + * change_set.cc (extend_state): remove commented out line + +2005-04-27 Matt Johnston + * change_set.cc (extend_state): don't mix find() and insert() on the path_state, to avoid hitting the smap's worst-case. --- change_set.cc +++ change_set.cc @@ -1306,7 +1306,6 @@ { if (dst.find(path_state_tid(i)) == dst.end()) tmp.push_back(*i); - //dst.insert(*i); } for (std::vector >::const_iterator i = tmp.begin(); --- vocab.cc +++ vocab.cc @@ -163,18 +163,22 @@ if (val.ok) return; - if (known_good.find(val()) == known_good.end()) + std::map::const_iterator j = known_good.find(val()); + if (j == known_good.end()) { local_path loc(val()); verify(loc); N(!book_keeping_file(loc), F("prohibited book-keeping path in '%s'") % val); const std::string & normalized_val = loc(); + val.s = normalized_val; known_good.insert(std::make_pair(val(), normalized_val)); } + else + { + val.s = j->second; + } - val.s = known_good.find(val())->second; - val.ok = true; }