OSDN Git Service

タブ切り替えのたびにアイテムごとにメモリを確保していたのを、最初にまとめて確保するように変更して高速化。
authorsirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Fri, 1 Oct 2010 12:06:04 +0000 (12:06 +0000)
committersirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Fri, 1 Oct 2010 12:06:04 +0000 (12:06 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@364 9df91469-1e22-0410-86e7-ea8537beb833

src/lychee/dlg_make.cpp

index 02574c7..04bd78f 100644 (file)
@@ -242,7 +242,10 @@ void MakeDialog::OnInit(wxInitDialogEvent&)
        }\r
 \r
        // 展開/格納先を予測。ただしDTVスキャンに時間がかかる場合はスキップ可能。\r
-       if (this->lcFiles->asInput->GetCount() < 3000 ||\r
+       size_t n = this->lcFiles->asInput->GetCount();\r
+       this->lcFiles->asOutput.Alloc(n);\r
+       this->lcFiles->apItem.Alloc(n);\r
+       if (n < 3000 ||\r
                ::AskDlg(\r
                        this->uCommand == TPI_COMMAND_EXTRACT ?\r
                                _("This archive contains so many files that it takes long to check Directory Traversal Vulnerability(DTV) problem. If you are sure this archive is safe, you can skip this scanning process. Do you want to scan for DTV problem?") :\r
@@ -375,8 +378,8 @@ void MakeDialog::OnTabChanged(wxNotebookEvent& e)
                return;\r
        }\r
        this->lcFiles->DeleteAllItems();\r
-       this->lcFiles->asOutput.Clear();\r
-       this->lcFiles->apItem.Clear();\r
+       this->lcFiles->asOutput.Empty();\r
+       this->lcFiles->apItem.Empty();\r
 \r
        bool fDTVWarning = false;\r
        switch (this->uCommand)\r