| 759 | } |
| 760 | |
| 761 | void VersionSet::AppendVersion(Version* v) { |
| 762 | // Make "v" current |
| 763 | assert(v->refs_ == 0); |
| 764 | assert(v != current_); |
| 765 | if (current_ != nullptr) { |
| 766 | current_->Unref(); |
| 767 | } |
| 768 | current_ = v; |
| 769 | v->Ref(); |
| 770 | |
| 771 | // Append to linked list |
| 772 | v->prev_ = dummy_versions_.prev_; |
| 773 | v->next_ = &dummy_versions_; |
| 774 | v->prev_->next_ = v; |
| 775 | v->next_->prev_ = v; |
| 776 | } |
| 777 | |
| 778 | Status VersionSet::LogAndApply(VersionEdit* edit, port::Mutex* mu) { |
| 779 | if (edit->has_log_number_) { |