Sfoglia il codice sorgente

Fixed deep copy bug with Fork/Register ingredient values.

n1474335 7 anni fa
parent
commit
870c2b6d8b
2 ha cambiato i file con 4 aggiunte e 3 eliminazioni
  1. 4 2
      src/core/FlowControl.js
  2. 0 1
      src/web/App.js

+ 4 - 2
src/core/FlowControl.js

@@ -55,7 +55,9 @@ const FlowControl = {
         state.forkOffset += state.progress + 1;
 
         recipe.addOperations(subOpList);
-        const ingValues = subOpList.map(op => op.getIngValues());
+
+        // Take a deep(ish) copy of the ingredient values
+        const ingValues = subOpList.map(op => JSON.parse(JSON.stringify(op.getIngValues())));
 
         // Run recipe over each tranche
         for (i = 0; i < inputs.length; i++) {
@@ -63,7 +65,7 @@ const FlowControl = {
 
             // Baseline ing values for each tranche so that registers are reset
             subOpList.forEach((op, i) => {
-                op.setIngValues(ingValues[i]);
+                op.setIngValues(JSON.parse(JSON.stringify(ingValues[i])));
             });
 
             const dish = new Dish(inputs[i], inputType);

+ 0 - 1
src/web/App.js

@@ -488,7 +488,6 @@ App.prototype.setRecipeConfig = function(recipeConfig) {
 
     // Unpause auto bake
     this.autoBakePause = false;
-    window.dispatchEvent(this.manager.statechange);
 };