@@ -155,7 +155,7 @@ public void generateDiff(BinImage img1Orig, BinImage img2, FlashProgrammer flash
155155 size += possiblyFinishRawBuffer (rawBuffer , outputDiffStream );
156156 logger .trace ("{} bestResult={}" , String .format ("%08x " , i ), bestResult );
157157 i += bestResult .length ;
158- size += 5 ;
158+ size += 1 ;
159159 byte cmdByte = (byte )CMD_COPY ;
160160 if (bestResult .length <= MAX_LENGTH_SHORT ) {
161161 cmdByte = (byte )(cmdByte | FLAG_SHORT | (bestResult .length & 0b111111)); // command + 6 bits of the length
@@ -166,6 +166,7 @@ public void generateDiff(BinImage img1Orig, BinImage img2, FlashProgrammer flash
166166 debug ("@ b=%02X i=%d CMD_COPY FLAG_LONG" , (cmdByte & 0xff ), i );
167167 byte lengthLowByte = (byte )(bestResult .length & 0xff ); // 8 low bits of the length
168168 outputDiffStream .add (cmdByte );
169+ size += 1 ;
169170 outputDiffStream .add (lengthLowByte );
170171 }
171172 // 3 bytes are enough to address ROM or RAM buffer, the highest bit indicates ROM or RAM source
@@ -185,6 +186,7 @@ public void generateDiff(BinImage img1Orig, BinImage img2, FlashProgrammer flash
185186 }
186187 debug ("%02X " , (srcData [bestResult .offset + k ] & 0xff ));
187188 }
189+ size += 3 ;
188190 addr3 = (byte )(addr3 | addrFromFlag );
189191 outputDiffStream .add (addr3 );
190192 outputDiffStream .add (addr2 );
0 commit comments