From 1aadd4ab964f0e448f8fea5a905e95c78ca58d98 Mon Sep 17 00:00:00 2001 From: byronh Date: Mon, 25 May 2020 20:24:30 -0500 Subject: [PATCH] Allocate correct bytecount when serializing The size of buffer calculated for serializing data was not accounting for hidden frame data. This would cause the bottoms of images to sometimes be truncated when using undo. --- .../serialization/arraybuffer/ArrayBufferSerializer.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/js/utils/serialization/arraybuffer/ArrayBufferSerializer.js b/src/js/utils/serialization/arraybuffer/ArrayBufferSerializer.js index 4c1b3be00..d52fd9f4a 100644 --- a/src/js/utils/serialization/arraybuffer/ArrayBufferSerializer.js +++ b/src/js/utils/serialization/arraybuffer/ArrayBufferSerializer.js @@ -42,7 +42,7 @@ */ ns.ArrayBufferSerializer = { - calculateRequiredBytes : function(piskel, framesData) { + calculateRequiredBytes : function(piskel, framesData, serializedHiddenFrames) { var width = piskel.getWidth(); var height = piskel.getHeight(); var descriptorNameLength = piskel.getDescriptor().name.length; @@ -63,6 +63,9 @@ // Layers meta bytes += 1 * 2; + // Frames meta + bytes += 1 * 2; + /********/ /* DATA */ /********/ @@ -72,6 +75,9 @@ // Descriptor description bytes += descriptorDescriptionLength * 2; + // Hidden frames + bytes += serializedHiddenFrames.length * 2; + // Layers for (var i = 0, layers = piskel.getLayers(); i < layers.length; i++) { bytes += 5 * 2;