diff --git a/core/fxcrt/css/cfx_csssyntaxparser.cpp b/core/fxcrt/css/cfx_csssyntaxparser.cpp
index b3f33d2..25192f6 100644
--- a/core/fxcrt/css/cfx_csssyntaxparser.cpp
+++ b/core/fxcrt/css/cfx_csssyntaxparser.cpp
@@ -115,7 +115,8 @@
               }
               FALLTHROUGH;
             default:
-              AppendChar(wch);
+              AppendCharIfNotLeadingBlank(wch);
+              m_TextPlane.MoveNext();
               break;
           }
           break;
@@ -140,7 +141,8 @@
               }
               FALLTHROUGH;
             default:
-              AppendChar(wch);
+              AppendCharIfNotLeadingBlank(wch);
+              m_TextPlane.MoveNext();
               break;
           }
           break;
@@ -160,7 +162,8 @@
               }
               FALLTHROUGH;
             default:
-              AppendChar(wch);
+              AppendCharIfNotLeadingBlank(wch);
+              m_TextPlane.MoveNext();
               break;
           }
           break;
@@ -187,19 +190,14 @@
   return m_eStatus;
 }
 
-bool CFX_CSSSyntaxParser::AppendChar(wchar_t wch) {
-  m_TextPlane.MoveNext();
-  if (m_TextData.GetLength() > 0 || wch > ' ') {
+void CFX_CSSSyntaxParser::AppendCharIfNotLeadingBlank(wchar_t wch) {
+  if (m_TextData.GetLength() > 0 || wch > ' ')
     m_TextData.AppendChar(wch);
-    return true;
-  }
-  return false;
 }
 
-int32_t CFX_CSSSyntaxParser::SaveTextData() {
+void CFX_CSSSyntaxParser::SaveTextData() {
   m_iTextDataLen = m_TextData.TrimEnd();
   m_TextData.Clear();
-  return m_iTextDataLen;
 }
 
 void CFX_CSSSyntaxParser::SwitchMode(CFX_CSSSyntaxMode eMode) {
diff --git a/core/fxcrt/css/cfx_csssyntaxparser.h b/core/fxcrt/css/cfx_csssyntaxparser.h
index 5e26c6f..e063052 100644
--- a/core/fxcrt/css/cfx_csssyntaxparser.h
+++ b/core/fxcrt/css/cfx_csssyntaxparser.h
@@ -54,8 +54,8 @@
   int32_t SwitchToComment();
 
   bool RestoreMode();
-  bool AppendChar(wchar_t wch);
-  int32_t SaveTextData();
+  void AppendCharIfNotLeadingBlank(wchar_t wch);
+  void SaveTextData();
 
   CFX_CSSTextBuf m_TextData;
   CFX_CSSExtTextBuf m_TextPlane;
