diff --git a/cpp/core/src/zxing/oned/UPCEANReader.h b/cpp/core/src/zxing/oned/UPCEANReader.h index 3ffe4b2cc..5ce7ab012 100644 --- a/cpp/core/src/zxing/oned/UPCEANReader.h +++ b/cpp/core/src/zxing/oned/UPCEANReader.h @@ -39,7 +39,7 @@ namespace zxing { static int* findStartGuardPattern(Ref row); //throws ReaderException - int* decodeEnd(Ref row, int endStart); //throws ReaderException + virtual int* decodeEnd(Ref row, int endStart); //throws ReaderException static bool checkStandardUPCEANChecksum(std::string s); //throws ReaderException protected: @@ -58,7 +58,7 @@ namespace zxing { static int decodeDigit(Ref row, int counters[], int countersLen, int rowOffset, UPC_EAN_PATTERNS patternType); //throws ReaderException - bool checkChecksum(std::string s); //throws ReaderException + virtual bool checkChecksum(std::string s); //throws ReaderException virtual BarcodeFormat getBarcodeFormat() = 0; virtual ~UPCEANReader(); diff --git a/cpp/core/src/zxing/oned/UPCEReader.cpp b/cpp/core/src/zxing/oned/UPCEReader.cpp index 1fce8dd85..fdea388f4 100644 --- a/cpp/core/src/zxing/oned/UPCEReader.cpp +++ b/cpp/core/src/zxing/oned/UPCEReader.cpp @@ -95,7 +95,7 @@ namespace zxing { * @param upce UPC-E code as string of digits * @return equivalent UPC-A code as string of digits */ - std::string& UPCEReader::convertUPCEtoUPCA(std::string upce) { + std::string UPCEReader::convertUPCEtoUPCA(std::string upce) { std::string result; result.append(1, upce[0]); char lastChar = upce[6]; @@ -125,8 +125,7 @@ namespace zxing { break; } result.append(1, upce[7]); - std::string& returnResult = result; - return returnResult; + return result; } diff --git a/cpp/core/src/zxing/oned/UPCEReader.h b/cpp/core/src/zxing/oned/UPCEReader.h index 454d6ba9d..2a9e89a08 100644 --- a/cpp/core/src/zxing/oned/UPCEReader.h +++ b/cpp/core/src/zxing/oned/UPCEReader.h @@ -37,7 +37,7 @@ namespace zxing { UPCEReader(); int decodeMiddle(Ref row, int startRange[], int startRangeLen, std::string& resultString); //throws ReaderException - static std::string& convertUPCEtoUPCA(std::string upce); + static std::string convertUPCEtoUPCA(std::string upce); BarcodeFormat getBarcodeFormat(); };