Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: core/fxcrt/fx_basic_bstring.cpp

Issue 2060913003: Make code compile with clang_use_chrome_plugin (part II) (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: base Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cctype> 10 #include <cctype>
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 m_pData.Reset(StringData::Create(pStr, nLen)); 87 m_pData.Reset(StringData::Create(pStr, nLen));
88 } 88 }
89 89
90 CFX_ByteString::CFX_ByteString(const uint8_t* pStr, FX_STRSIZE nLen) { 90 CFX_ByteString::CFX_ByteString(const uint8_t* pStr, FX_STRSIZE nLen) {
91 if (nLen > 0) { 91 if (nLen > 0) {
92 m_pData.Reset( 92 m_pData.Reset(
93 StringData::Create(reinterpret_cast<const FX_CHAR*>(pStr), nLen)); 93 StringData::Create(reinterpret_cast<const FX_CHAR*>(pStr), nLen));
94 } 94 }
95 } 95 }
96 96
97 CFX_ByteString::CFX_ByteString() {}
98
99 CFX_ByteString::CFX_ByteString(const CFX_ByteString& other)
100 : m_pData(other.m_pData) {}
101
102 CFX_ByteString::CFX_ByteString(CFX_ByteString&& other) {
103 m_pData.Swap(other.m_pData);
104 }
105
97 CFX_ByteString::CFX_ByteString(char ch) { 106 CFX_ByteString::CFX_ByteString(char ch) {
98 m_pData.Reset(StringData::Create(1)); 107 m_pData.Reset(StringData::Create(1));
99 m_pData->m_String[0] = ch; 108 m_pData->m_String[0] = ch;
100 } 109 }
101 110
111 CFX_ByteString::CFX_ByteString(const FX_CHAR* ptr)
112 : CFX_ByteString(ptr, ptr ? FXSYS_strlen(ptr) : 0) {}
113
102 CFX_ByteString::CFX_ByteString(const CFX_ByteStringC& stringSrc) { 114 CFX_ByteString::CFX_ByteString(const CFX_ByteStringC& stringSrc) {
103 if (!stringSrc.IsEmpty()) 115 if (!stringSrc.IsEmpty())
104 m_pData.Reset(StringData::Create(stringSrc.c_str(), stringSrc.GetLength())); 116 m_pData.Reset(StringData::Create(stringSrc.c_str(), stringSrc.GetLength()));
105 } 117 }
106 118
107 CFX_ByteString::CFX_ByteString(const CFX_ByteStringC& str1, 119 CFX_ByteString::CFX_ByteString(const CFX_ByteStringC& str1,
108 const CFX_ByteStringC& str2) { 120 const CFX_ByteStringC& str2) {
109 int nNewLen = str1.GetLength() + str2.GetLength(); 121 int nNewLen = str1.GetLength() + str2.GetLength();
110 if (nNewLen == 0) 122 if (nNewLen == 0)
111 return; 123 return;
112 124
113 m_pData.Reset(StringData::Create(nNewLen)); 125 m_pData.Reset(StringData::Create(nNewLen));
114 m_pData->CopyContents(str1.c_str(), str1.GetLength()); 126 m_pData->CopyContents(str1.c_str(), str1.GetLength());
115 m_pData->CopyContentsAt(str1.GetLength(), str2.c_str(), str2.GetLength()); 127 m_pData->CopyContentsAt(str1.GetLength(), str2.c_str(), str2.GetLength());
116 } 128 }
117 129
118 CFX_ByteString::~CFX_ByteString() {} 130 CFX_ByteString::~CFX_ByteString() {}
119 131
132 void CFX_ByteString::clear() {
133 m_pData.Reset();
134 }
135
120 const CFX_ByteString& CFX_ByteString::operator=(const FX_CHAR* pStr) { 136 const CFX_ByteString& CFX_ByteString::operator=(const FX_CHAR* pStr) {
121 if (!pStr || !pStr[0]) 137 if (!pStr || !pStr[0])
122 clear(); 138 clear();
123 else 139 else
124 AssignCopy(pStr, FXSYS_strlen(pStr)); 140 AssignCopy(pStr, FXSYS_strlen(pStr));
125 141
126 return *this; 142 return *this;
127 } 143 }
128 144
129 const CFX_ByteString& CFX_ByteString::operator=( 145 const CFX_ByteString& CFX_ByteString::operator=(
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 return other.IsEmpty(); 210 return other.IsEmpty();
195 211
196 if (other.IsEmpty()) 212 if (other.IsEmpty())
197 return false; 213 return false;
198 214
199 return other.m_pData->m_nDataLength == m_pData->m_nDataLength && 215 return other.m_pData->m_nDataLength == m_pData->m_nDataLength &&
200 FXSYS_memcmp(other.m_pData->m_String, m_pData->m_String, 216 FXSYS_memcmp(other.m_pData->m_String, m_pData->m_String,
201 m_pData->m_nDataLength) == 0; 217 m_pData->m_nDataLength) == 0;
202 } 218 }
203 219
220 bool CFX_ByteString::operator!=(const char* ptr) const {
221 return !(*this == ptr);
222 }
223
224 bool CFX_ByteString::operator!=(const CFX_ByteStringC& str) const {
225 return !(*this == str);
226 }
227
228 bool CFX_ByteString::operator!=(const CFX_ByteString& other) const {
229 return !(*this == other);
230 }
231
232 bool CFX_ByteString::operator<(const CFX_ByteString& str) const {
233 int result = FXSYS_memcmp(c_str(), str.c_str(),
234 std::min(GetLength(), str.GetLength()));
235 return result < 0 || (result == 0 && GetLength() < str.GetLength());
236 }
237
238 uint8_t CFX_ByteString::GetAt(FX_STRSIZE nIndex) const {
239 return m_pData ? m_pData->m_String[nIndex] : 0;
240 }
241
242 uint8_t CFX_ByteString::operator[](FX_STRSIZE nIndex) const {
243 return m_pData ? m_pData->m_String[nIndex] : 0;
244 }
245
204 bool CFX_ByteString::EqualNoCase(const CFX_ByteStringC& str) const { 246 bool CFX_ByteString::EqualNoCase(const CFX_ByteStringC& str) const {
205 if (!m_pData) 247 if (!m_pData)
206 return str.IsEmpty(); 248 return str.IsEmpty();
207 249
208 FX_STRSIZE len = str.GetLength(); 250 FX_STRSIZE len = str.GetLength();
209 if (m_pData->m_nDataLength != len) 251 if (m_pData->m_nDataLength != len)
210 return false; 252 return false;
211 253
212 const uint8_t* pThis = (const uint8_t*)m_pData->m_String; 254 const uint8_t* pThis = (const uint8_t*)m_pData->m_String;
213 const uint8_t* pThat = str.raw_str(); 255 const uint8_t* pThat = str.raw_str();
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 FX_STRSIZE len) { 870 FX_STRSIZE len) {
829 FX_STRSIZE str_len = len >= 0 ? len : FXSYS_wcslen(str); 871 FX_STRSIZE str_len = len >= 0 ? len : FXSYS_wcslen(str);
830 return FromUnicode(CFX_WideString(str, str_len)); 872 return FromUnicode(CFX_WideString(str, str_len));
831 } 873 }
832 874
833 // static 875 // static
834 CFX_ByteString CFX_ByteString::FromUnicode(const CFX_WideString& str) { 876 CFX_ByteString CFX_ByteString::FromUnicode(const CFX_WideString& str) {
835 return CFX_CharMap::GetByteString(0, str.AsStringC()); 877 return CFX_CharMap::GetByteString(0, str.AsStringC());
836 } 878 }
837 879
880 const FX_CHAR* CFX_ByteString::c_str() const {
881 return m_pData ? m_pData->m_String : "";
882 }
883
884 const uint8_t* CFX_ByteString::raw_str() const {
885 return m_pData ? reinterpret_cast<const uint8_t*>(m_pData->m_String)
886 : nullptr;
887 }
888
889 CFX_ByteStringC CFX_ByteString::AsStringC() const {
890 return CFX_ByteStringC(raw_str(), GetLength());
891 }
892
893 FX_STRSIZE CFX_ByteString::GetLength() const {
894 return m_pData ? m_pData->m_nDataLength : 0;
895 }
896
897 bool CFX_ByteString::IsEmpty() const {
898 return !GetLength();
899 }
900
838 int CFX_ByteString::Compare(const CFX_ByteStringC& str) const { 901 int CFX_ByteString::Compare(const CFX_ByteStringC& str) const {
839 if (!m_pData) { 902 if (!m_pData) {
840 return str.IsEmpty() ? 0 : -1; 903 return str.IsEmpty() ? 0 : -1;
841 } 904 }
842 int this_len = m_pData->m_nDataLength; 905 int this_len = m_pData->m_nDataLength;
843 int that_len = str.GetLength(); 906 int that_len = str.GetLength();
844 int min_len = this_len < that_len ? this_len : that_len; 907 int min_len = this_len < that_len ? this_len : that_len;
845 for (int i = 0; i < min_len; i++) { 908 for (int i = 0; i < min_len; i++) {
846 if ((uint8_t)m_pData->m_String[i] < str.GetAt(i)) { 909 if ((uint8_t)m_pData->m_String[i] < str.GetAt(i)) {
847 return -1; 910 return -1;
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 fraction %= scale; 1039 fraction %= scale;
977 scale /= 10; 1040 scale /= 10;
978 } 1041 }
979 return buf_size; 1042 return buf_size;
980 } 1043 }
981 CFX_ByteString CFX_ByteString::FormatFloat(FX_FLOAT d, int precision) { 1044 CFX_ByteString CFX_ByteString::FormatFloat(FX_FLOAT d, int precision) {
982 FX_CHAR buf[32]; 1045 FX_CHAR buf[32];
983 FX_STRSIZE len = FX_ftoa(d, buf); 1046 FX_STRSIZE len = FX_ftoa(d, buf);
984 return CFX_ByteString(buf, len); 1047 return CFX_ByteString(buf, len);
985 } 1048 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698