diff --git a/fxbarcode/oned/BC_OnedCode39Writer_unittest.cpp b/fxbarcode/oned/BC_OnedCode39Writer_unittest.cpp
index 27a0410..7a5f569 100644
--- a/fxbarcode/oned/BC_OnedCode39Writer_unittest.cpp
+++ b/fxbarcode/oned/BC_OnedCode39Writer_unittest.cpp
@@ -49,6 +49,8 @@
       "###   # # # ### "  // U
       "### ### # #   # "  // M
       "#   # ### ### #";  // * End
+  for (size_t i = 0; i < strlen(expected); i++)
+    EXPECT_EQ(expected[i] != ' ', !!encoded[i]) << i;
   FX_Free(encoded);
 
   writer.SetWideNarrowRatio(2);
@@ -63,6 +65,8 @@
       "##  # # # ## "  // U
       "## ## # #  # "  // M
       "#  # ## ## #";  // * End
+  for (size_t i = 0; i < strlen(expected); i++)
+    EXPECT_EQ(expected[i] != ' ', !!encoded[i]) << i;
   FX_Free(encoded);
 }
 
@@ -79,9 +83,8 @@
   expected =
       "#   # ### ### # "  // * Start
       "#   # ### ### #";  // * End
-  for (size_t i = 0; i < strlen(expected); i++) {
+  for (size_t i = 0; i < strlen(expected); i++)
     EXPECT_EQ(expected[i] != ' ', !!encoded[i]) << i;
-  }
   FX_Free(encoded);
 
   encoded = writer.Encode("123", BCFORMAT_CODE_39, width, height);
@@ -93,9 +96,8 @@
       "# ###   # # ### "  // 2
       "### ###   # # # "  // 3
       "#   # ### ### #";  // * End
-  for (size_t i = 0; i < strlen(expected); i++) {
+  for (size_t i = 0; i < strlen(expected); i++)
     EXPECT_EQ(expected[i] != ' ', !!encoded[i]) << i;
-  }
   FX_Free(encoded);
 
   encoded = writer.Encode("PDFIUM", BCFORMAT_CODE_39, width, height);
@@ -110,9 +112,8 @@
       "###   # # # ### "  // U
       "### ### # #   # "  // M
       "#   # ### ### #";  // * End
-  for (size_t i = 0; i < strlen(expected); i++) {
+  for (size_t i = 0; i < strlen(expected); i++)
     EXPECT_EQ(expected[i] != ' ', !!encoded[i]) << i;
-  }
   FX_Free(encoded);
 
   encoded = writer.Encode("A -$%./+Z", BCFORMAT_CODE_39, width, height);
@@ -130,9 +131,8 @@
       "#   # #   #   # "  // +
       "#   ### ### # # "  // Z
       "#   # ### ### #";  // * End
-  for (size_t i = 0; i < strlen(expected); i++) {
+  for (size_t i = 0; i < strlen(expected); i++)
     EXPECT_EQ(expected[i] != ' ', !!encoded[i]) << i;
-  }
   FX_Free(encoded);
 }
 
@@ -156,9 +156,8 @@
       "### ###   # # # "  // 3 (3)
       "# ###   ### # # "  // 6 (6 = (1 + 2 + 3) % 43)
       "#   # ### ### #";  // * End
-  for (size_t i = 0; i < strlen(expected); i++) {
+  for (size_t i = 0; i < strlen(expected); i++)
     EXPECT_EQ(expected[i] != ' ', !!encoded[i]) << i;
-  }
   FX_Free(encoded);
 
   encoded = writer.Encode("PDFIUM", BCFORMAT_CODE_39, width, height);
@@ -175,9 +174,8 @@
       "### ### # #   # "  // M (22)
       "###   # # ### # "  // . (37 = (25 + 13 + 15 + 18 + 30 + 22) % 43)
       "#   # ### ### #";  // * End
-  for (size_t i = 0; i < strlen(expected); i++) {
+  for (size_t i = 0; i < strlen(expected); i++)
     EXPECT_EQ(expected[i] != ' ', !!encoded[i]) << i;
-  }
   FX_Free(encoded);
 }
 
diff --git a/fxbarcode/qrcode/BC_QRCoderEncoder.cpp b/fxbarcode/qrcode/BC_QRCoderEncoder.cpp
index a44dfc3..8da2d48 100644
--- a/fxbarcode/qrcode/BC_QRCoderEncoder.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderEncoder.cpp
@@ -479,7 +479,6 @@
     result->push_back(
         {CBC_QRCoderMode::sALPHANUMERIC, content.Mid(flag, index - flag)});
   }
-  flag = index;
   if (index < content.GetLength())
     SplitString(content.Right(content.GetLength() - index), result);
 }
