Merge pull request #3395 from BeksOmega/fixes/EqualsDynamicChecks

Fixed logic_compare type checks for disposed blocks
This commit is contained in:
Rachel Fenichel
2019-11-07 15:10:47 -08:00
committed by GitHub
2 changed files with 10 additions and 2 deletions

View File

@@ -561,7 +561,7 @@ Blockly.Constants.Logic.LOGIC_COMPARE_ONCHANGE_MIXIN = {
var prevA = this.prevBlocks_[0];
if (prevA !== blockA) {
blockA.unplug();
if (prevA && !prevA.isShadow()) {
if (prevA && !prevA.isDisposed() && !prevA.isShadow()) {
// The shadow block is automatically replaced during unplug().
this.getInput('A').connection.connect(prevA.outputConnection);
}
@@ -569,7 +569,7 @@ Blockly.Constants.Logic.LOGIC_COMPARE_ONCHANGE_MIXIN = {
var prevB = this.prevBlocks_[1];
if (prevB !== blockB) {
blockB.unplug();
if (prevB && !prevB.isShadow()) {
if (prevB && !prevB.isDisposed() && !prevB.isShadow()) {
// The shadow block is automatically replaced during unplug().
this.getInput('B').connection.connect(prevB.outputConnection);
}

View File

@@ -842,6 +842,14 @@ Blockly.Block.prototype.setEditable = function(editable) {
}
};
/**
* Returns if this block has been disposed of / deleted.
* @return {boolean} True if this block has been disposed of / deleted.
*/
Blockly.Block.prototype.isDisposed = function() {
return this.disposed;
};
/**
* Find the connection on this block that corresponds to the given connection
* on the other block.