Fix a PDF417 encoding bug for 45 digits numeric data.
authorBo Xu <bo_xu@foxitsoftware.com>
Fri, 16 Jan 2015 19:46:03 +0000 (11:46 -0800)
committerBo Xu <bo_xu@foxitsoftware.com>
Fri, 16 Jan 2015 19:46:03 +0000 (11:46 -0800)
This bug is fixed in https://github.com/zxing/zxing/commit/71d83953bdb2aa83a5c70e7e005adcbc523647dc

R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/837663004

xfa/src/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp

index 8ee21ea..54bd0b6 100644 (file)
@@ -294,11 +294,11 @@ void CBC_PDF417HighLevelEncoder::encodeNumeric(CFX_WideString msg, FX_INT32 star
 {\r
     FX_INT32 idx = 0;\r
     BigInteger num900 = 900;\r
-    while (idx < count - 1) {\r
+    while (idx < count) {\r
         CFX_WideString tmp;\r
         FX_INT32 len = 44 < count - idx ? 44 : count - idx;\r
         CFX_ByteString part = ((FX_WCHAR)'1' + msg.Mid(startpos + idx, len)).UTF8Encode();\r
-        BigInteger bigint = stringToBigInteger(FX_LPCSTR(part));\r
+        BigInteger bigint = stringToBigInteger(part.c_str());\r
         do {\r
             FX_INT32 c = (bigint % num900).toInt();\r
             tmp += (FX_WCHAR)(c);\r