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

Side by Side Diff: core/fxcrt/include/fx_string.h

Issue 1887003003: Update comments about string constructors (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef CORE_FXCRT_INCLUDE_FX_STRING_H_ 7 #ifndef CORE_FXCRT_INCLUDE_FX_STRING_H_
8 #define CORE_FXCRT_INCLUDE_FX_STRING_H_ 8 #define CORE_FXCRT_INCLUDE_FX_STRING_H_
9 9
10 #include <stdint.h> // For intptr_t. 10 #include <stdint.h> // For intptr_t.
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 // A mutable string with shared buffers using copy-on-write semantics that 140 // A mutable string with shared buffers using copy-on-write semantics that
141 // avoids the cost of std::string's iterator stability guarantees. 141 // avoids the cost of std::string's iterator stability guarantees.
142 class CFX_ByteString { 142 class CFX_ByteString {
143 public: 143 public:
144 typedef FX_CHAR value_type; 144 typedef FX_CHAR value_type;
145 145
146 CFX_ByteString() {} 146 CFX_ByteString() {}
147 CFX_ByteString(const CFX_ByteString& other) : m_pData(other.m_pData) {} 147 CFX_ByteString(const CFX_ByteString& other) : m_pData(other.m_pData) {}
148 CFX_ByteString(CFX_ByteString&& other) { m_pData.Swap(other.m_pData); } 148 CFX_ByteString(CFX_ByteString&& other) { m_pData.Swap(other.m_pData); }
149 149
150 // Deliberately implicit to avoid calling on every string literal.
150 CFX_ByteString(char ch); 151 CFX_ByteString(char ch);
151 CFX_ByteString(const FX_CHAR* ptr) 152 CFX_ByteString(const FX_CHAR* ptr)
152 : CFX_ByteString(ptr, ptr ? FXSYS_strlen(ptr) : 0) {} 153 : CFX_ByteString(ptr, ptr ? FXSYS_strlen(ptr) : 0) {}
153 154
154 CFX_ByteString(const FX_CHAR* ptr, FX_STRSIZE len); 155 CFX_ByteString(const FX_CHAR* ptr, FX_STRSIZE len);
155 CFX_ByteString(const uint8_t* ptr, FX_STRSIZE len); 156 CFX_ByteString(const uint8_t* ptr, FX_STRSIZE len);
156 157
158 // TODO(tsepez): mark constructor as explicit.
157 CFX_ByteString(const CFX_ByteStringC& bstrc); 159 CFX_ByteString(const CFX_ByteStringC& bstrc);
158 CFX_ByteString(const CFX_ByteStringC& bstrc1, const CFX_ByteStringC& bstrc2); 160 CFX_ByteString(const CFX_ByteStringC& bstrc1, const CFX_ByteStringC& bstrc2);
159 161
160 ~CFX_ByteString(); 162 ~CFX_ByteString();
161 163
162 void clear() { m_pData.Reset(); } 164 void clear() { m_pData.Reset(); }
163 165
164 static CFX_ByteString FromUnicode(const FX_WCHAR* ptr, FX_STRSIZE len = -1); 166 static CFX_ByteString FromUnicode(const FX_WCHAR* ptr, FX_STRSIZE len = -1);
165 static CFX_ByteString FromUnicode(const CFX_WideString& str); 167 static CFX_ByteString FromUnicode(const CFX_WideString& str);
166 168
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 // A mutable string with shared buffers using copy-on-write semantics that 466 // A mutable string with shared buffers using copy-on-write semantics that
465 // avoids the cost of std::string's iterator stability guarantees. 467 // avoids the cost of std::string's iterator stability guarantees.
466 class CFX_WideString { 468 class CFX_WideString {
467 public: 469 public:
468 typedef FX_WCHAR value_type; 470 typedef FX_WCHAR value_type;
469 471
470 CFX_WideString() {} 472 CFX_WideString() {}
471 CFX_WideString(const CFX_WideString& other) : m_pData(other.m_pData) {} 473 CFX_WideString(const CFX_WideString& other) : m_pData(other.m_pData) {}
472 CFX_WideString(CFX_WideString&& other) { m_pData.Swap(other.m_pData); } 474 CFX_WideString(CFX_WideString&& other) { m_pData.Swap(other.m_pData); }
473 475
476 // Deliberately implicit to avoid calling on every string literal.
477 CFX_WideString(FX_WCHAR ch);
474 CFX_WideString(const FX_WCHAR* ptr) 478 CFX_WideString(const FX_WCHAR* ptr)
475 : CFX_WideString(ptr, ptr ? FXSYS_wcslen(ptr) : 0) {} 479 : CFX_WideString(ptr, ptr ? FXSYS_wcslen(ptr) : 0) {}
476 480
477 CFX_WideString(const FX_WCHAR* ptr, FX_STRSIZE len); 481 CFX_WideString(const FX_WCHAR* ptr, FX_STRSIZE len);
478 CFX_WideString(FX_WCHAR ch);
479 482
483 // TODO(tsepez): mark constructor as explicit.
480 CFX_WideString(const CFX_WideStringC& str); 484 CFX_WideString(const CFX_WideStringC& str);
481 CFX_WideString(const CFX_WideStringC& str1, const CFX_WideStringC& str2); 485 CFX_WideString(const CFX_WideStringC& str1, const CFX_WideStringC& str2);
482 486
483 ~CFX_WideString(); 487 ~CFX_WideString();
484 488
485 static CFX_WideString FromLocal(const CFX_ByteStringC& str); 489 static CFX_WideString FromLocal(const CFX_ByteStringC& str);
486 static CFX_WideString FromCodePage(const CFX_ByteStringC& str, 490 static CFX_WideString FromCodePage(const CFX_ByteStringC& str,
487 uint16_t codepage); 491 uint16_t codepage);
488 492
489 static CFX_WideString FromUTF8(const CFX_ByteStringC& str); 493 static CFX_WideString FromUTF8(const CFX_ByteStringC& str);
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 } 674 }
671 675
672 FX_FLOAT FX_atof(const CFX_ByteStringC& str); 676 FX_FLOAT FX_atof(const CFX_ByteStringC& str);
673 inline FX_FLOAT FX_atof(const CFX_WideStringC& wsStr) { 677 inline FX_FLOAT FX_atof(const CFX_WideStringC& wsStr) {
674 return FX_atof(FX_UTF8Encode(wsStr.c_str(), wsStr.GetLength()).c_str()); 678 return FX_atof(FX_UTF8Encode(wsStr.c_str(), wsStr.GetLength()).c_str());
675 } 679 }
676 void FX_atonum(const CFX_ByteStringC& str, FX_BOOL& bInteger, void* pData); 680 void FX_atonum(const CFX_ByteStringC& str, FX_BOOL& bInteger, void* pData);
677 FX_STRSIZE FX_ftoa(FX_FLOAT f, FX_CHAR* buf); 681 FX_STRSIZE FX_ftoa(FX_FLOAT f, FX_CHAR* buf);
678 682
679 #endif // CORE_FXCRT_INCLUDE_FX_STRING_H_ 683 #endif // CORE_FXCRT_INCLUDE_FX_STRING_H_
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698