From: Skullheadx Date: Wed, 20 Nov 2024 23:25:09 +0000 (-0500) Subject: Change unsigned int to int in codeword finding to prevent rollover X-Git-Url: http://git.skullheadx.com/nixos/static/gitweb.js?a=commitdiff_plain;h=3903f0812ee15bf43f3ce70cdb930c38674a4f58;p=qrcodescanner.git Change unsigned int to int in codeword finding to prevent rollover --- diff --git a/camera.cpp b/camera.cpp index 4cb3e34..634cc52 100644 --- a/camera.cpp +++ b/camera.cpp @@ -195,18 +195,36 @@ void decode_mask(std::vector> &symbol, std::size_t mask_patter } } } -void retrieve_codewords(std::vector> &symbol, std::vector &codewords, bool is_upwards, unsigned int row, unsigned int col){ +void retrieve_codewords(std::vector> &symbol, std::vector &codewords, bool is_upwards, int row, int col){ if (is_upwards){ - for (unsigned int r{row + 3}; r >= row; --r){ - for (unsigned int c{col + 1}; c >= col; --c){ + for (int r{row + 3}; r >= row; --r){ + for (int c{col + 1}; c >= col; --c){ //std::cout << r << ' ' << c << std::endl; codewords.push_back(symbol[r][c]); } } } else { - for (unsigned int r{row}; r <= row + 3; ++r){ - for (unsigned int c{col + 1}; c >= col; --c){ + for (int r{row}; r <= row + 3; ++r){ + for (int c{col + 1}; c >= col; --c){ + //std::cout << r << ' ' << c << std::endl; + codewords.push_back(symbol[r][c]); + } + } + } +} +void retrieve_special_codewords(std::vector> &symbol, std::vector &codewords, bool is_upwards, int row, int col){ + if (is_upwards){ + for (int r{row + 3}; r >= row; --r){ + for (int c{col + 1}; c >= col; --c){ + //std::cout << r << ' ' << c << std::endl; + codewords.push_back(symbol[r][c]); + } + } + } + else { + for (int r{row}; r <= row + 3; ++r){ + for (int c{col + 1}; c >= col; --c){ //std::cout << r << ' ' << c << std::endl; codewords.push_back(symbol[r][c]); } @@ -216,7 +234,7 @@ void retrieve_codewords(std::vector> &symbol, std::vector get_codewords_from_symbol(std::vector> &symbol){ std::vector codewords{}; - unsigned int c{}, r{}; + int c{}, r{}; // refer to codewords by their top left corner for (c = 19, r = 17;c >= 13; c-=2){