From 90f7e7b865a5e2ebe80f341cdbcde05a9c254d3f Mon Sep 17 00:00:00 2001 From: "smparkes@smparkes.net" Date: Fri, 28 Oct 2011 18:31:35 +0000 Subject: [PATCH] Correctly set rotated points values. Closes Issue 1041. The rotate code was setting the rotated points in a copy of the vector of points, rather than in the vector owned by the result. Use a reference instead of a copy so changes persist. git-svn-id: https://zxing.googlecode.com/svn/trunk@1995 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- cpp/core/src/zxing/Result.cpp | 4 ++++ cpp/core/src/zxing/Result.h | 1 + cpp/core/src/zxing/oned/OneDReader.cpp | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cpp/core/src/zxing/Result.cpp b/cpp/core/src/zxing/Result.cpp index db705bcfc..7ab6e312c 100644 --- a/cpp/core/src/zxing/Result.cpp +++ b/cpp/core/src/zxing/Result.cpp @@ -44,6 +44,10 @@ const std::vector >& Result::getResultPoints() const { return resultPoints_; } +std::vector >& Result::getResultPoints() { + return resultPoints_; +} + BarcodeFormat Result::getBarcodeFormat() const { return format_; } diff --git a/cpp/core/src/zxing/Result.h b/cpp/core/src/zxing/Result.h index 401ea4296..711605962 100644 --- a/cpp/core/src/zxing/Result.h +++ b/cpp/core/src/zxing/Result.h @@ -44,6 +44,7 @@ public: Ref getText(); ArrayRef getRawBytes(); const std::vector >& getResultPoints() const; + std::vector >& getResultPoints(); BarcodeFormat getBarcodeFormat() const; friend std::ostream& operator<<(std::ostream &out, Result& result); diff --git a/cpp/core/src/zxing/oned/OneDReader.cpp b/cpp/core/src/zxing/oned/OneDReader.cpp index d73057b15..8ef7a23ac 100644 --- a/cpp/core/src/zxing/oned/OneDReader.cpp +++ b/cpp/core/src/zxing/oned/OneDReader.cpp @@ -49,7 +49,7 @@ namespace zxing { result.putMetadata(ResultMetadataType.ORIENTATION, new Integer(orientation)); */ // Update result points - std::vector > points (result->getResultPoints()); + std::vector >& points (result->getResultPoints()); int height = rotatedImage->getHeight(); for (size_t i = 0; i < points.size(); i++) { points[i].reset(new OneDResultPoint(height - points[i]->getY() - 1, points[i]->getX()));