fix reorganize.

This commit is contained in:
Christopher Jeffrey 2016-06-02 08:22:19 -07:00
parent 5b1ce02324
commit 1839bb5725
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -1002,20 +1002,18 @@ Chain.prototype._reorganize = function _reorganize(entry, block, callback) {
function disconnect(callback) { function disconnect(callback) {
var entries = []; var entries = [];
entries.push(tip);
(function collect(entry) { (function collect(entry) {
if (entry.hash === fork.hash)
return finish();
entries.push(entry);
entry.getPrevious(function(err, entry) { entry.getPrevious(function(err, entry) {
if (err) if (err)
return callback(err); return callback(err);
assert(entry); assert(entry);
if (entry.hash === fork.hash)
return finish();
entries.push(entry);
collect(entry); collect(entry);
}); });
})(tip); })(tip);
@ -1032,23 +1030,28 @@ Chain.prototype._reorganize = function _reorganize(entry, block, callback) {
var entries = []; var entries = [];
(function collect(entry) { (function collect(entry) {
if (entry.hash === fork.hash)
return finish();
entries.push(entry);
entry.getPrevious(function(err, entry) { entry.getPrevious(function(err, entry) {
if (err) if (err)
return callback(err); return callback(err);
assert(entry); assert(entry);
if (entry.hash === fork.hash)
return finish();
entries.push(entry);
collect(entry); collect(entry);
}); });
})(entry); })(entry);
function finish() { function finish() {
entries = entries.slice().reverse(); entries = entries.slice().reverse();
// We don't want to connect the new tip here.
// That will be done outside in setBestChain.
entries.pop();
utils.forEachSerial(entries, function(entry, next) { utils.forEachSerial(entries, function(entry, next) {
self.connect(entry, next); self.connect(entry, next);
}, callback); }, callback);