codemasher 5 лет назад
Родитель
Сommit
1f1a363d9d
2 измененных файлов с 8 добавлено и 1 удалено
  1. 7 0
      src/Common/Mode.php
  2. 1 1
      src/Data/QRData.php

+ 7 - 0
src/Common/Mode.php

@@ -85,4 +85,11 @@ class Mode{
 		throw new QRCodeException(sprintf('invalid version number: %d', $version));
 	}
 
+	/**
+	 * returns the array of length bits for the given mode
+	 */
+	public static function getLengthBitsForMode(int $mode):array{
+		return self::LENGTH_BITS[$mode];
+	}
+
 }

+ 1 - 1
src/Data/QRData.php

@@ -222,7 +222,7 @@ class QRData{
 
 		foreach($this->dataSegments as $segment){
 			// data length in bits of the current segment +4 bits for each mode descriptor
-			$length += ($segment->getLengthInBits() + Mode::LENGTH_BITS[$segment->getDataMode()][0] + 4);
+			$length += ($segment->getLengthInBits() + Mode::getLengthBitsForMode($segment->getDataMode())[0] + 4);
 
 			if(!$segment instanceof ECI){
 				// mode length bits margin to the next breakpoint