Quellcode durchsuchen

:octocat: QRData::setData(): clear BitBuffer before write

smiley vor 3 Jahren
Ursprung
Commit
f414762148
2 geänderte Dateien mit 15 neuen und 0 gelöschten Zeilen
  1. 12 0
      src/Common/BitBuffer.php
  2. 3 0
      src/Data/QRData.php

+ 12 - 0
src/Common/BitBuffer.php

@@ -155,4 +155,16 @@ final class BitBuffer{
 		return $result;
 	}
 
+	/**
+	 * Clears the buffer and resets the stats
+	 */
+	public function clear():self{
+		$this->buffer    = [];
+		$this->length    = 0;
+		$this->bytesRead = 0;
+		$this->bitsRead  = 0;
+
+		return $this;
+	}
+
 }

+ 3 - 0
src/Data/QRData.php

@@ -74,6 +74,8 @@ final class QRData{
 
 	/**
 	 * Sets the data string (internally called by the constructor)
+	 *
+	 * Subsequent calls will overwrite the current state - use the QRCode::add*Segement() method instead
 	 */
 	public function setData(array $dataSegments):self{
 		$this->dataSegments = $dataSegments;
@@ -84,6 +86,7 @@ final class QRData{
 
 		$this->version = new Version($version);
 
+		$this->bitBuffer->clear();
 		$this->writeBitBuffer();
 
 		return $this;