diff --git a/core/fpdfdoc/doc_utils.cpp b/core/fpdfdoc/doc_utils.cpp
index ccb244d..408f006 100644
--- a/core/fpdfdoc/doc_utils.cpp
+++ b/core/fpdfdoc/doc_utils.cpp
@@ -91,11 +91,11 @@
   }
   CPDF_SimpleParser syntax(m_csDA.AsStringC());
   if (syntax.FindTagParamFromStart("Tf", 2)) {
-    csFont += (CFX_ByteString)syntax.GetWord();
+    csFont += syntax.GetWord();
     csFont += " ";
-    csFont += (CFX_ByteString)syntax.GetWord();
+    csFont += syntax.GetWord();
     csFont += " ";
-    csFont += (CFX_ByteString)syntax.GetWord();
+    csFont += syntax.GetWord();
   }
   return csFont;
 }
@@ -135,31 +135,31 @@
   }
   CPDF_SimpleParser syntax(m_csDA.AsStringC());
   if (syntax.FindTagParamFromStart(bStrokingOperation ? "G" : "g", 1)) {
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
     csColor += " ";
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
     return csColor;
   }
   if (syntax.FindTagParamFromStart(bStrokingOperation ? "RG" : "rg", 3)) {
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
     csColor += " ";
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
     csColor += " ";
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
     csColor += " ";
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
     return csColor;
   }
   if (syntax.FindTagParamFromStart(bStrokingOperation ? "K" : "k", 4)) {
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
     csColor += " ";
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
     csColor += " ";
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
     csColor += " ";
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
     csColor += " ";
-    csColor += (CFX_ByteString)syntax.GetWord();
+    csColor += syntax.GetWord();
   }
   return csColor;
 }
@@ -245,10 +245,10 @@
   CPDF_SimpleParser syntax(m_csDA.AsStringC());
   if (syntax.FindTagParamFromStart("Tm", 6)) {
     for (int i = 0; i < 6; i++) {
-      csTM += (CFX_ByteString)syntax.GetWord();
+      csTM += syntax.GetWord();
       csTM += " ";
     }
-    csTM += (CFX_ByteString)syntax.GetWord();
+    csTM += syntax.GetWord();
   }
   return csTM;
 }
diff --git a/xfa/fxbarcode/pdf417/BC_PDF417DetectionResultRowIndicatorColumn.cpp b/xfa/fxbarcode/pdf417/BC_PDF417DetectionResultRowIndicatorColumn.cpp
index bdcd910..3a6d73f 100644
--- a/xfa/fxbarcode/pdf417/BC_PDF417DetectionResultRowIndicatorColumn.cpp
+++ b/xfa/fxbarcode/pdf417/BC_PDF417DetectionResultRowIndicatorColumn.cpp
@@ -222,7 +222,7 @@
   return m_isLeft;
 }
 CFX_ByteString CBC_DetectionResultRowIndicatorColumn::toString() {
-  return (CFX_ByteString) "IsLeft: " + (CFX_ByteString)m_isLeft + '\n' +
+  return CFX_ByteString("IsLeft: ") + m_isLeft + '\n' +
          CBC_DetectionResultColumn::toString();
 }
 void CBC_DetectionResultRowIndicatorColumn::removeIncorrectCodewords(
