瀏覽代碼

Compiler warning

Source commit: 94fb9edaf5ffd1de7b759d395d5c72ef30d2b456
Martin Prikryl 7 年之前
父節點
當前提交
9f10b86890
共有 1 個文件被更改,包括 48 次插入38 次删除
  1. 48 38
      source/windows/WinInterface.cpp

+ 48 - 38
source/windows/WinInterface.cpp

@@ -1460,61 +1460,71 @@ void __fastcall ClickToolbarItem(TTBCustomItem * Item, bool PositionCursor)
   PostMessage(Toolbar->Handle, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(X, Y));
   PostMessage(Toolbar->Handle, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(X, Y));
 }
 }
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
 class TCallstackThread : public TSignalThread
 class TCallstackThread : public TSignalThread
 {
 {
 public:
 public:
-  __fastcall TCallstackThread() : TSignalThread(true, DoCreateEvent())
-  {
-  }
+  __fastcall TCallstackThread();
 
 
 protected:
 protected:
-  virtual void __fastcall ProcessEvent()
+  virtual void __fastcall ProcessEvent();
+
+private:
+  static UnicodeString DoGetName();
+  static HANDLE DoCreateEvent();
+};
+//---------------------------------------------------------------------------
+__fastcall TCallstackThread::TCallstackThread() :
+  TSignalThread(true, DoCreateEvent())
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TCallstackThread::ProcessEvent()
+{
+  try
   {
   {
+    UnicodeString FileName = FORMAT(L"%s.txt", (DoGetName()));
+    UnicodeString Path = TPath::Combine(SystemTemporaryDirectory(), FileName);
+    std::unique_ptr<TStrings> StackStrings;
+    HANDLE MainThreadHandle = reinterpret_cast<HANDLE>(MainThreadID);
+    if (SuspendThread(MainThreadHandle) < 0)
+    {
+      RaiseLastOSError();
+    }
     try
     try
     {
     {
-      UnicodeString FileName = FORMAT(L"%s.txt", (DoGetName()));
-      UnicodeString Path = TPath::Combine(SystemTemporaryDirectory(), FileName);
-      std::unique_ptr<TStrings> StackStrings;
-      HANDLE MainThreadHandle = reinterpret_cast<HANDLE>(MainThreadID);
-      if (SuspendThread(MainThreadHandle) < 0)
+      TJclStackInfoList * StackInfoList = JclCreateThreadStackTraceFromID(true, MainThreadID);
+      if (StackInfoList == NULL)
       {
       {
         RaiseLastOSError();
         RaiseLastOSError();
       }
       }
-      try
-      {
-        TJclStackInfoList * StackInfoList = JclCreateThreadStackTraceFromID(true, MainThreadID);
-        if (StackInfoList == NULL)
-        {
-          RaiseLastOSError();
-        }
-        StackStrings.reset(StackInfoListToStrings(StackInfoList));
-      }
-      __finally
-      {
-        if (ResumeThread(MainThreadHandle) < 0)
-        {
-          RaiseLastOSError();
-        }
-      }
-      TFile::WriteAllText(Path, StackStrings->Text);
+      StackStrings.reset(StackInfoListToStrings(StackInfoList));
     }
     }
-    catch (...)
+    __finally
     {
     {
+      if (ResumeThread(MainThreadHandle) < 0)
+      {
+        RaiseLastOSError();
+      }
     }
     }
+    TFile::WriteAllText(Path, StackStrings->Text);
   }
   }
-
-private:
-  static UnicodeString DoGetName()
-  {
-    return FORMAT("WinSCPCallstack%d", (GetCurrentProcessId ()));
-  }
-
-  static HANDLE DoCreateEvent()
+  catch (...)
   {
   {
-    UnicodeString Name = DoGetName();
-    return CreateEvent(NULL, false, false, Name.c_str());
   }
   }
-};
+}
+//---------------------------------------------------------------------------
+UnicodeString TCallstackThread::DoGetName()
+{
+  return FORMAT("WinSCPCallstack%d", (GetCurrentProcessId()));
+}
+//---------------------------------------------------------------------------
+HANDLE TCallstackThread::DoCreateEvent()
+{
+  UnicodeString Name = DoGetName();
+  return CreateEvent(NULL, false, false, Name.c_str());
+}
+//---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 std::unique_ptr<TCallstackThread> CallstackThread;
 std::unique_ptr<TCallstackThread> CallstackThread;
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------