Fix offset outside bounds warning on GCC

Alterntive to part of https://codereview.chromium.org/1785943002/

BUG=589724
R=dsinclair@chromium.org

Review URL: https://codereview.chromium.org/1802553004 .
diff --git a/core/fpdfapi/fpdf_parser/cpdf_syntax_parser.cpp b/core/fpdfapi/fpdf_parser/cpdf_syntax_parser.cpp
index 62be488..f5464cc 100644
--- a/core/fpdfapi/fpdf_parser/cpdf_syntax_parser.cpp
+++ b/core/fpdfapi/fpdf_parser/cpdf_syntax_parser.cpp
@@ -471,7 +471,7 @@
       if (!pObj)
         continue;
 
-      CFX_ByteStringC keyNoSlash(key.c_str() + 1, key.GetLength() - 1);
+      CFX_ByteStringC keyNoSlash(key.raw_str() + 1, key.GetLength() - 1);
       pDict->SetAt(keyNoSlash, pObj);
     }
 
diff --git a/core/include/fxcrt/fx_string.h b/core/include/fxcrt/fx_string.h
index d68fc2c..9b623b9 100644
--- a/core/include/fxcrt/fx_string.h
+++ b/core/include/fxcrt/fx_string.h
@@ -169,14 +169,22 @@
 
   static CFX_ByteString FromUnicode(const CFX_WideString& str);
 
-  // Explicit conversion to raw string
+  // Explicit conversion to C-style string.
   const FX_CHAR* c_str() const { return m_pData ? m_pData->m_String : ""; }
 
-  // Implicit conversion to C-style string -- deprecated
+  // Implicit conversion to C-style string -- deprecated.
   operator const FX_CHAR*() const { return m_pData ? m_pData->m_String : ""; }
 
+  // Explicit conversion to uint8_t*.
+  const uint8_t* raw_str() const {
+    return m_pData ? reinterpret_cast<const uint8_t*>(m_pData->m_String)
+                   : nullptr;
+  }
+
+  // Implicit conversiont to uint8_t* -- deprecated.
   operator const uint8_t*() const {
-    return m_pData ? (const uint8_t*)m_pData->m_String : NULL;
+    return m_pData ? reinterpret_cast<const uint8_t*>(m_pData->m_String)
+                   : nullptr;
   }
 
   FX_STRSIZE GetLength() const { return m_pData ? m_pData->m_nDataLength : 0; }
@@ -569,10 +577,10 @@
 
   static FX_STRSIZE WStringLength(const unsigned short* str);
 
-  // Explicit conversion to raw string
+  // Explicit conversion to C-style wide string.
   const FX_WCHAR* c_str() const { return m_pData ? m_pData->m_String : L""; }
 
-  // Implicit conversion to C-style wide string -- deprecated
+  // Implicit conversion to C-style wide string -- deprecated.
   operator const FX_WCHAR*() const { return m_pData ? m_pData->m_String : L""; }
 
   void Empty();