From 2de913d220095eaa304a95c60bf28af4d3d1d5a7 Mon Sep 17 00:00:00 2001 From: flyashi Date: Fri, 6 Aug 2010 14:28:47 +0000 Subject: [PATCH] Fixes two virtual calls and one local variable reference. Closes issue 493 and issue 498 and makes UPC-E work. git-svn-id: https://zxing.googlecode.com/svn/trunk@1509 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- cpp/core/src/zxing/oned/UPCEANReader.h | 4 ++-- cpp/core/src/zxing/oned/UPCEReader.cpp | 5 ++--- cpp/core/src/zxing/oned/UPCEReader.h | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) 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(); };