diff --git a/src/Common/Mode.php b/src/Common/Mode.php index c53b4f348..d36e84beb 100644 --- a/src/Common/Mode.php +++ b/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]; + } + } diff --git a/src/Data/QRData.php b/src/Data/QRData.php index 3e9726fe0..a3972b1ec 100644 --- a/src/Data/QRData.php +++ b/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