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

Unified Diff: core/fxcrt/include/fx_string.h

Issue 1888843004: Still more comments about strings (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: One more line. 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/fxcrt/include/fx_string.h
diff --git a/core/fxcrt/include/fx_string.h b/core/fxcrt/include/fx_string.h
index 94df35c8e7f27ca24abfd62a76bc438e953ef114..2fabee39cf9cfc5ef65a3587be91b029cd1b567c 100644
--- a/core/fxcrt/include/fx_string.h
+++ b/core/fxcrt/include/fx_string.h
@@ -34,18 +34,19 @@ class CFX_ByteStringC {
m_Length = size;
}
+ // Deliberately implicit to avoid calling on every string literal.
CFX_ByteStringC(const FX_CHAR* ptr) {
m_Ptr = (const uint8_t*)ptr;
m_Length = ptr ? FXSYS_strlen(ptr) : 0;
}
+ // Deliberately implicit to avoid calling on every string literal.
// |ch| must be an lvalue that outlives the the CFX_ByteStringC. However,
// the use of char rvalues are not caught at compile time. They are
// implicitly promoted to CFX_ByteString (see below) and then the
// CFX_ByteStringC is constructed from the CFX_ByteString via the alternate
// constructor below. The CFX_ByteString then typically goes out of scope
// and |m_Ptr| may be left pointing to invalid memory. Beware.
- // TODO(tsepez): Mark single-argument string constructors as explicit.
CFX_ByteStringC(FX_CHAR& ch) {
m_Ptr = (const uint8_t*)&ch;
m_Length = 1;
@@ -357,11 +358,19 @@ class CFX_WideStringC {
m_Length = 0;
}
+ // Deliberately implicit to avoid calling on every string literal.
CFX_WideStringC(const FX_WCHAR* ptr) {
m_Ptr = ptr;
m_Length = ptr ? FXSYS_wcslen(ptr) : 0;
}
+ // Deliberately implicit to avoid calling on every string literal.
+ // |ch| must be an lvalue that outlives the the CFX_WideStringC. However,
+ // the use of char rvalues are not caught at compile time. They are
+ // implicitly promoted to CFX_WideString (see below) and then the
+ // CFX_WideStringC is constructed from the CFX_WideString via the alternate
+ // constructor below. The CFX_WideString then typically goes out of scope
+ // and |m_Ptr| may be left pointing to invalid memory. Beware.
CFX_WideStringC(FX_WCHAR& ch) {
m_Ptr = &ch;
m_Length = 1;
« 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