Browse Source

Tracing (startup + JCL + static variables initialization)

Source commit: bf7d1d7da54c9f2cdc5894c2203e433ee364721b
Martin Prikryl 9 years ago
parent
commit
bab68888f6

+ 11 - 11
source/core/Common.cpp

@@ -30,9 +30,9 @@ const char Bom[3] = "\xEF\xBB\xBF";
 const wchar_t TokenPrefix = L'%';
 const wchar_t NoReplacement = wchar_t(false);
 const wchar_t TokenReplacement = wchar_t(true);
-const UnicodeString LocalInvalidChars = L"/\\:*?\"<>|";
-const UnicodeString PasswordMask = L"***";
-const UnicodeString Ellipsis = L"...";
+const UnicodeString LocalInvalidChars(TraceInitStr(L"/\\:*?\"<>|"));
+const UnicodeString PasswordMask(TraceInitStr(L"***"));
+const UnicodeString Ellipsis(TraceInitStr(L"..."));
 //---------------------------------------------------------------------------
 UnicodeString ReplaceChar(UnicodeString Str, wchar_t A, wchar_t B)
 {
@@ -1372,7 +1372,7 @@ struct TDateTimeParams
 };
 typedef std::map<int, TDateTimeParams> TYearlyDateTimeParams;
 static TYearlyDateTimeParams YearlyDateTimeParams;
-static std::unique_ptr<TCriticalSection> DateTimeParamsSection(new TCriticalSection());
+static std::unique_ptr<TCriticalSection> DateTimeParamsSection(TraceInitPtr(new TCriticalSection()));
 static void __fastcall EncodeDSTMargin(const SYSTEMTIME & Date, unsigned short Year,
   TDateTime & Result);
 //---------------------------------------------------------------------------
@@ -3081,13 +3081,13 @@ UnicodeString __fastcall ChangeUrlProtocol(const UnicodeString & S, const Unicod
   return Protocol + ProtocolSeparator + RightStr(S, S.Length() - P - ProtocolSeparator.Length() + 1);
 }
 //---------------------------------------------------------------------------
-const UnicodeString RtfPara = L"\\par\n";
-const UnicodeString AssemblyNamespace = L"WinSCP";
-const UnicodeString TransferOptionsClassName(L"TransferOptions");
-const UnicodeString SessionClassName(L"Session");
-const UnicodeString RtfHyperlinkField = L"HYPERLINK";
-const UnicodeString RtfHyperlinkFieldPrefix = RtfHyperlinkField + L" \"";
-const UnicodeString RtfHyperlinkFieldSuffix = L"\" ";
+const UnicodeString RtfPara(TraceInitStr(L"\\par\n"));
+const UnicodeString AssemblyNamespace(TraceInitStr(L"WinSCP"));
+const UnicodeString TransferOptionsClassName(TraceInitStr(L"TransferOptions"));
+const UnicodeString SessionClassName(TraceInitStr(L"Session"));
+const UnicodeString RtfHyperlinkField(TraceInitStr(L"HYPERLINK"));
+const UnicodeString RtfHyperlinkFieldPrefix(TraceInitStr(RtfHyperlinkField + L" \""));
+const UnicodeString RtfHyperlinkFieldSuffix(TraceInitStr(L"\" "));
 //---------------------------------------------------------------------
 UnicodeString __fastcall RtfColor(int Index)
 {

+ 1 - 1
source/core/Exceptions.cpp

@@ -13,7 +13,7 @@
 //---------------------------------------------------------------------------
 #pragma package(smart_init)
 //---------------------------------------------------------------------------
-static std::unique_ptr<TCriticalSection> IgnoredExceptionsCriticalSection(new TCriticalSection());
+static std::unique_ptr<TCriticalSection> IgnoredExceptionsCriticalSection(TraceInitPtr(new TCriticalSection()));
 typedef std::set<UnicodeString> TIgnoredExceptions;
 static TIgnoredExceptions IgnoredExceptions;
 //---------------------------------------------------------------------------

+ 2 - 0
source/core/Global.h

@@ -48,6 +48,8 @@ void __fastcall DoAssert(wchar_t * Message, wchar_t * Filename, int LineNumber);
 #define DebugAlwaysTrue(p) (p)
 #define DebugAlwaysFalse(p) (p)
 #define DebugNotNull(p) (p)
+#define TraceInitPtr(p) (p)
+#define TraceInitStr(p) (p)
 #define DebugUsedParam(p) ((&p) == (&p))
 //---------------------------------------------------------------------------
 #endif

+ 1 - 1
source/core/SessionData.cpp

@@ -2783,7 +2783,7 @@ UnicodeString __fastcall TSessionData::GenerateSessionUrl(unsigned int Flags)
   return Url;
 }
 //---------------------------------------------------------------------
-UnicodeString ScriptCommandOpenLink = ScriptCommandLink(L"open");
+UnicodeString ScriptCommandOpenLink(TraceInitStr(ScriptCommandLink(L"open")));
 //---------------------------------------------------------------------
 void __fastcall TSessionData::AddSwitch(
   UnicodeString & Result, const UnicodeString & Name, bool Rtf)

+ 1 - 1
source/core/WebDAVFileSystem.cpp

@@ -81,7 +81,7 @@ static const int HttpUnauthorized = 401;
 #define PROP_EXECUTABLE "executable"
 #define PROP_OWNER "owner"
 //---------------------------------------------------------------------------
-static std::unique_ptr<TCriticalSection> DebugSection(new TCriticalSection);
+static std::unique_ptr<TCriticalSection> DebugSection(TraceInitPtr(new TCriticalSection));
 static std::set<TWebDAVFileSystem *> FileSystems;
 //---------------------------------------------------------------------------
 extern "C"

+ 2 - 0
source/packages/jcl/JclDebug.pas

@@ -1178,10 +1178,12 @@ begin
   OutputDebugString(PChar(StrDoubleQuote(Msg)));
 end;
 
+{$IFNDEF WINSCP}
 procedure TraceFmt(const Fmt: string; const Args: array of const);
 begin
   OutputDebugString(PChar(Format(StrDoubleQuote(Fmt), Args)));
 end;
+{$ENDIF}
 
 procedure TraceLoc(const Msg: string);
 begin

+ 1 - 1
source/windows/ConsoleRunner.cpp

@@ -106,7 +106,7 @@ private:
 };
 //---------------------------------------------------------------------------
 TOwnConsole * TOwnConsole::FInstance = NULL;
-std::unique_ptr<TCriticalSection> TOwnConsole::FSection(new TCriticalSection());
+std::unique_ptr<TCriticalSection> TOwnConsole::FSection(TraceInitPtr(new TCriticalSection()));
 //---------------------------------------------------------------------------
 __fastcall TOwnConsole::TOwnConsole()
 {

+ 1 - 1
source/windows/WinInterface.cpp

@@ -569,7 +569,7 @@ static TStrings * __fastcall StackInfoListToStrings(
   return StackTrace.release();
 }
 //---------------------------------------------------------------------------
-static std::unique_ptr<TCriticalSection> StackTraceCriticalSection(new TCriticalSection());
+static std::unique_ptr<TCriticalSection> StackTraceCriticalSection(TraceInitPtr(new TCriticalSection()));
 typedef std::map<DWORD, TStrings *> TStackTraceMap;
 static TStackTraceMap StackTraceMap;
 //---------------------------------------------------------------------------