diff --git a/SharpDevelop.Tests.sln b/SharpDevelop.Tests.sln index f803c2ef0e..c170b995de 100644 --- a/SharpDevelop.Tests.sln +++ b/SharpDevelop.Tests.sln @@ -1,10 +1,8 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -# SharpDevelop 4.3 +# SharpDevelop 5.0 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker35", "src\Main\ICSharpCode.SharpDevelop.BuildWorker35\ICSharpCode.SharpDevelop.BuildWorker35.csproj", "{B5F54272-49F0-40DB-845A-8D837875D3BA}" EndProject @@ -27,8 +25,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDevelop", "src\Main\SharpDevelop\SharpDevelop.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{2A232EF1-EB95-41C6-B63A-C106E0C95D3C}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Cecil", "src\Libraries\cecil\Mono.Cecil.csproj", "{D68133BD-1E63-496E-9EDE-4FBDBF77B486}" EndProject @@ -58,20 +54,14 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Decompiler", "src\Libraries\ICSharpCode.Decompiler\ICSharpCode.Decompiler.csproj", "{984CC812-9470-4A13-AFF9-CC44068D666C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{39327899-ED91-4F7F-988C-4FE4E17C014D}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Version Control", "Version Control", "{F208FF4F-E5D8-41D5-A7C7-B463976F156E}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitAddIn", "src\AddIns\VersionControl\GitAddIn\GitAddIn.csproj", "{83F15BA7-8478-4664-81BB-A82F146D88B3}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "src\AddIns\VersionControl\SubversionAddIn\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Language Bindings", "Language Bindings", "{E0646C25-36F2-4524-969F-FA621353AB94}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "src\AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}" EndProject @@ -100,8 +90,6 @@ EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VBBinding", "src\AddIns\BackendBindings\VBBinding\Project\VBBinding.vbproj", "{6D209CBB-D8C1-478A-BC30-D3FC87B7858F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelpViewer", "src\AddIns\Misc\HelpViewer\HelpViewer.csproj", "{80F76D10-0B44-4D55-B4BD-DAEB5464090C}" EndProject @@ -116,8 +104,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "src\AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UsageDataCollector", "UsageDataCollector", "{DEFC8584-BEC3-4921-BD0F-40482E450B7B}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsageDataCollector", "src\AddIns\Misc\UsageDataCollector\UsageDataCollector\UsageDataCollector.csproj", "{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}" EndProject @@ -130,8 +116,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextTemplating", "src\AddIns\Misc\TextTemplating\Project\TextTemplating.csproj", "{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PackageManagement", "PackageManagement", "{485A4CCF-55CF-49F4-BD6D-A22B788C67DA}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement", "src\AddIns\Misc\PackageManagement\Project\PackageManagement.csproj", "{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}" EndProject @@ -146,16 +130,12 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement.Cmdlets.Tests", "src\AddIns\Misc\PackageManagement\Cmdlets\Test\PackageManagement.Cmdlets.Tests.csproj", "{11115C83-3DB1-431F-8B98-59040359238D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddInManager2", "AddInManager2", "{1F88F080-AD7C-4B03-9895-20C26282429D}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager2", "src\AddIns\Misc\AddInManager2\Project\AddInManager2.csproj", "{60480C2F-F228-4D86-B98F-AF75A7DCEC34}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager2.Tests", "src\AddIns\Misc\AddInManager2\AddInManager2.Tests\AddInManager2.Tests.csproj", "{0D0CB6E5-1EAD-471F-96B9-BFF84057BCF5}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Reports", "Reports", "{FEDD3FD9-0480-43CC-913C-4E0876DDA852}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\ICSharpCode.Reports.Addin.csproj", "{62033CC6-01CD-47A2-ADFD-188E9C524C0A}" EndProject @@ -168,8 +148,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Irony", "src\AddIns\Misc\Reports\Irony\Irony.csproj", "{47B2D204-C993-4489-8B83-6DA7321CFAE0}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.AddIn", "src\AddIns\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}" EndProject @@ -184,8 +162,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpyAddIn", "src\AddIns\DisplayBindings\ILSpyAddIn\ILSpyAddIn.csproj", "{8AA421C8-D7AF-4957-9F43-5135328ACB24}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{0F5192F2-0744-4BA9-A074-6BE82D111B8D}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Addin", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Addin\ICSharpCode.Data.Addin.csproj", "{A9F12710-24E4-46D4-832C-6ECB395B9EAD}" EndProject @@ -200,8 +176,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.SQLServer", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.SQLServer\ICSharpCode.Data.SQLServer.csproj", "{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}" EndProject @@ -218,8 +192,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsDesigner", "src\AddIns\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj", "{9E951B9F-6AC2-4537-9D0B-0AE7C026D5A1}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{AF5E0DC1-1FA0-4346-A436-0C817C68F7C1}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "src\AddIns\Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}" EndProject @@ -228,8 +200,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Tests", "src\AddIns\Debugger\Debugger.Tests\Debugger.Tests.csproj", "{A4C858C8-51B6-4265-A695-A20FCEBA1D19}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analysis", "Analysis", "{B3352C08-3CB4-4DD9-996F-B9DCE4356BB9}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "src\AddIns\Analysis\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}" EndProject @@ -249,6 +219,18 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MachineSpecifications", "sr EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeQuality", "src\AddIns\Analysis\CodeQuality\CodeQuality.csproj", "{0A029008-4973-4256-9150-9AF12845C547}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Profiler", "Profiler", "{7D16E1F9-0F9F-4A05-A162-A59C05E88B68}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Tests", "src\AddIns\Analysis\Profiler\Tests\Profiler.Tests\Profiler.Tests.csproj", "{DAEA4E6C-02CD-47DA-806B-1FCE1E9675EC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.X64Converter", "src\AddIns\Analysis\Profiler\X64Converter\Profiler.X64Converter.csproj", "{0D08CEB7-B051-43CF-BBE2-8FD3C43DB0B7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Controller", "src\AddIns\Analysis\Profiler\Controller\Profiler.Controller.csproj", "{CEFF8221-95D8-4F60-9D14-687019D0B2E8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Controls", "src\AddIns\Analysis\Profiler\Frontend\Controls\Profiler.Controls.csproj", "{BD38E43B-947F-474B-8F6C-8BDAA9EE99A6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.AddIn", "src\AddIns\Analysis\Profiler\Frontend\AddIn\Profiler.AddIn.csproj", "{D7DB55CF-58F8-4164-A6C9-AE7456E5BEF3}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortSD4AddInToSD5", "samples\PortSD4AddInToSD5\PortSD4AddInToSD5.csproj", "{E2FD63DA-8478-4066-934C-DA82A852C83A}" EndProject Project("{00000000-0000-0000-0000-000000000000}") = "Tools", "src\Tools\Tools.build", "{3DF4060F-5EE0-41CF-8096-F27355FD5511}" @@ -399,6 +381,10 @@ Global {CAD4D128-5A67-444B-88AE-37E0AF79C57E}.Debug|Any CPU.Build.0 = Debug|Any CPU {CAD4D128-5A67-444B-88AE-37E0AF79C57E}.Release|Any CPU.ActiveCfg = Release|Any CPU {CAD4D128-5A67-444B-88AE-37E0AF79C57E}.Release|Any CPU.Build.0 = Release|Any CPU + {6D209CBB-D8C1-478A-BC30-D3FC87B7858F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D209CBB-D8C1-478A-BC30-D3FC87B7858F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D209CBB-D8C1-478A-BC30-D3FC87B7858F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D209CBB-D8C1-478A-BC30-D3FC87B7858F}.Release|Any CPU.Build.0 = Release|Any CPU {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Debug|Any CPU.Build.0 = Debug|Any CPU {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -627,10 +613,26 @@ Global {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|Any CPU.Build.0 = Debug|Any CPU {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Any CPU.ActiveCfg = Release|Any CPU {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Any CPU.Build.0 = Release|Any CPU - {6D209CBB-D8C1-478A-BC30-D3FC87B7858F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6D209CBB-D8C1-478A-BC30-D3FC87B7858F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6D209CBB-D8C1-478A-BC30-D3FC87B7858F}.Release|Any CPU.Build.0 = Release|Any CPU - {6D209CBB-D8C1-478A-BC30-D3FC87B7858F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAEA4E6C-02CD-47DA-806B-1FCE1E9675EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAEA4E6C-02CD-47DA-806B-1FCE1E9675EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAEA4E6C-02CD-47DA-806B-1FCE1E9675EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAEA4E6C-02CD-47DA-806B-1FCE1E9675EC}.Release|Any CPU.Build.0 = Release|Any CPU + {0D08CEB7-B051-43CF-BBE2-8FD3C43DB0B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D08CEB7-B051-43CF-BBE2-8FD3C43DB0B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D08CEB7-B051-43CF-BBE2-8FD3C43DB0B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D08CEB7-B051-43CF-BBE2-8FD3C43DB0B7}.Release|Any CPU.Build.0 = Release|Any CPU + {CEFF8221-95D8-4F60-9D14-687019D0B2E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CEFF8221-95D8-4F60-9D14-687019D0B2E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEFF8221-95D8-4F60-9D14-687019D0B2E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CEFF8221-95D8-4F60-9D14-687019D0B2E8}.Release|Any CPU.Build.0 = Release|Any CPU + {BD38E43B-947F-474B-8F6C-8BDAA9EE99A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD38E43B-947F-474B-8F6C-8BDAA9EE99A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD38E43B-947F-474B-8F6C-8BDAA9EE99A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD38E43B-947F-474B-8F6C-8BDAA9EE99A6}.Release|Any CPU.Build.0 = Release|Any CPU + {D7DB55CF-58F8-4164-A6C9-AE7456E5BEF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D7DB55CF-58F8-4164-A6C9-AE7456E5BEF3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D7DB55CF-58F8-4164-A6C9-AE7456E5BEF3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D7DB55CF-58F8-4164-A6C9-AE7456E5BEF3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -649,24 +651,19 @@ Global {D68133BD-1E63-496E-9EDE-4FBDBF77B486} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C} {6222A3A1-83CE-47A3-A4E4-A018F82D44D8} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C} {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C} + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} + {53DCA265-3C3C-42F9-B647-F72BA678122B} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} + {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} + {63D3B27A-D966-4902-90B3-30290E1692F1} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} {2FF700C2-A38A-48BD-A637-8CAFD4FE6237} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C} {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C} {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C} {DDE2A481-8271-4EAC-A330-8FA6A38D13D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C} {984CC812-9470-4A13-AFF9-CC44068D666C} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C} - {3B2A5653-EC97-4001-BB9B-D90F1AF2C371} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} - {53DCA265-3C3C-42F9-B647-F72BA678122B} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} - {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} - {63D3B27A-D966-4902-90B3-30290E1692F1} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} {F208FF4F-E5D8-41D5-A7C7-B463976F156E} = {39327899-ED91-4F7F-988C-4FE4E17C014D} - {E0646C25-36F2-4524-969F-FA621353AB94} = {39327899-ED91-4F7F-988C-4FE4E17C014D} - {F3662720-9EA2-4591-BBC6-97361DCE50A9} = {39327899-ED91-4F7F-988C-4FE4E17C014D} - {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} = {39327899-ED91-4F7F-988C-4FE4E17C014D} - {AF5E0DC1-1FA0-4346-A436-0C817C68F7C1} = {39327899-ED91-4F7F-988C-4FE4E17C014D} - {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} = {39327899-ED91-4F7F-988C-4FE4E17C014D} - {E2FD63DA-8478-4066-934C-DA82A852C83A} = {39327899-ED91-4F7F-988C-4FE4E17C014D} {83F15BA7-8478-4664-81BB-A82F146D88B3} = {F208FF4F-E5D8-41D5-A7C7-B463976F156E} {17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {F208FF4F-E5D8-41D5-A7C7-B463976F156E} + {E0646C25-36F2-4524-969F-FA621353AB94} = {39327899-ED91-4F7F-988C-4FE4E17C014D} {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {E0646C25-36F2-4524-969F-FA621353AB94} {E954F3CB-A446-492F-A664-2B376EBC86E8} = {E0646C25-36F2-4524-969F-FA621353AB94} {70966F84-74C9-4067-A379-0C674A929233} = {E0646C25-36F2-4524-969F-FA621353AB94} @@ -680,6 +677,7 @@ Global {85C09AD8-183B-403A-869A-7226646218A9} = {E0646C25-36F2-4524-969F-FA621353AB94} {CAD4D128-5A67-444B-88AE-37E0AF79C57E} = {E0646C25-36F2-4524-969F-FA621353AB94} {6D209CBB-D8C1-478A-BC30-D3FC87B7858F} = {E0646C25-36F2-4524-969F-FA621353AB94} + {F3662720-9EA2-4591-BBC6-97361DCE50A9} = {39327899-ED91-4F7F-988C-4FE4E17C014D} {80F76D10-0B44-4D55-B4BD-DAEB5464090C} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {9196DD8A-B4D4-4780-8742-C5762E547FC2} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} @@ -687,27 +685,28 @@ Global {D022A6CE-7438-41E8-AC64-F2DE18EC54C6} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {64A3E5E6-90BF-47F6-94DF-68C94B62C817} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {DEFC8584-BEC3-4921-BD0F-40482E450B7B} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} + {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B} + {0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B} {A569DCC1-C608-45FD-B770-4F79335EF154} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {5186325C-DD7F-4246-9BE7-3F384EFBF5A6} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} - {1F88F080-AD7C-4B03-9895-20C26282429D} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} - {FEDD3FD9-0480-43CC-913C-4E0876DDA852} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} - {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B} - {0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B} {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} {A406803B-C584-43A3-BCEE-A0BB3132CB5F} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} {C3F15E22-5793-4129-AF8C-6229112B86D2} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} {56E98A01-8398-4A08-9578-C7337711A52B} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} {E0A5E80A-003B-4335-A9DC-A76E2E46D38D} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} {11115C83-3DB1-431F-8B98-59040359238D} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} + {1F88F080-AD7C-4B03-9895-20C26282429D} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {60480C2F-F228-4D86-B98F-AF75A7DCEC34} = {1F88F080-AD7C-4B03-9895-20C26282429D} {0D0CB6E5-1EAD-471F-96B9-BFF84057BCF5} = {1F88F080-AD7C-4B03-9895-20C26282429D} + {FEDD3FD9-0480-43CC-913C-4E0876DDA852} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {62033CC6-01CD-47A2-ADFD-188E9C524C0A} = {FEDD3FD9-0480-43CC-913C-4E0876DDA852} {2EE63FDD-7F49-40BD-8A2E-240848B9FA83} = {FEDD3FD9-0480-43CC-913C-4E0876DDA852} {0884566C-E013-4185-B223-47547AA75167} = {FEDD3FD9-0480-43CC-913C-4E0876DDA852} {1491E558-9C19-4EAC-9406-868AB8181F38} = {FEDD3FD9-0480-43CC-913C-4E0876DDA852} {47B2D204-C993-4489-8B83-6DA7321CFAE0} = {FEDD3FD9-0480-43CC-913C-4E0876DDA852} + {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} = {39327899-ED91-4F7F-988C-4FE4E17C014D} {0162E499-42D0-409B-AA25-EED21F75336B} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} {E618A9CD-A39F-4925-A538-E8A3FEF24E54} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} {DCA2703D-250A-463E-A68A-07ED105AE6BD} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} @@ -715,23 +714,25 @@ Global {DFB936AD-90EE-4B4F-941E-4F4A636F0D92} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} {8AA421C8-D7AF-4957-9F43-5135328ACB24} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} {0F5192F2-0744-4BA9-A074-6BE82D111B8D} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} - {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} - {85226AFB-CE71-4851-9A75-7EEC663A8E8A} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} - {9E951B9F-6AC2-4537-9D0B-0AE7C026D5A1} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} {A9F12710-24E4-46D4-832C-6ECB395B9EAD} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D} {B7823AE9-4B43-4859-8796-2EBDC116FBB8} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D} {BAD94D6E-4159-4CB6-B991-486F412D9BB6} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D} {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D} {EEF5E054-4192-4A57-8FBF-E860D808A51D} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D} {AFE34868-AFA1-4E1C-9450-47AB4BE329D5} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D} + {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} {66A378A1-E9F4-4AD5-8946-D0EC06C2902F} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} {943DBBB3-E84E-4CF4-917C-C05AFA8743C1} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} {78CC29AC-CC79-4355-B1F2-97936DF198AC} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} {88DA149F-21B2-48AB-82C4-28FB6BDFD783} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} + {85226AFB-CE71-4851-9A75-7EEC663A8E8A} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} + {9E951B9F-6AC2-4537-9D0B-0AE7C026D5A1} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} + {AF5E0DC1-1FA0-4346-A436-0C817C68F7C1} = {39327899-ED91-4F7F-988C-4FE4E17C014D} {1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {AF5E0DC1-1FA0-4346-A436-0C817C68F7C1} {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {AF5E0DC1-1FA0-4346-A436-0C817C68F7C1} {A4C858C8-51B6-4265-A695-A20FCEBA1D19} = {AF5E0DC1-1FA0-4346-A436-0C817C68F7C1} + {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} = {39327899-ED91-4F7F-988C-4FE4E17C014D} {1F261725-6318-4434-A1B1-6C70CE4CD324} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} {3EAA45A9-735C-4AC7-A799-947B93EA449D} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} @@ -741,5 +742,12 @@ Global {172AE35D-2051-4977-AC13-0BF1B76374D5} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} {D1DA3B8F-7313-4BDA-8880-461C5F007751} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} {0A029008-4973-4256-9150-9AF12845C547} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} + {7D16E1F9-0F9F-4A05-A162-A59C05E88B68} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} + {DAEA4E6C-02CD-47DA-806B-1FCE1E9675EC} = {7D16E1F9-0F9F-4A05-A162-A59C05E88B68} + {0D08CEB7-B051-43CF-BBE2-8FD3C43DB0B7} = {7D16E1F9-0F9F-4A05-A162-A59C05E88B68} + {CEFF8221-95D8-4F60-9D14-687019D0B2E8} = {7D16E1F9-0F9F-4A05-A162-A59C05E88B68} + {BD38E43B-947F-474B-8F6C-8BDAA9EE99A6} = {7D16E1F9-0F9F-4A05-A162-A59C05E88B68} + {D7DB55CF-58F8-4164-A6C9-AE7456E5BEF3} = {7D16E1F9-0F9F-4A05-A162-A59C05E88B68} + {E2FD63DA-8478-4066-934C-DA82A852C83A} = {39327899-ED91-4F7F-988C-4FE4E17C014D} EndGlobalSection EndGlobal diff --git a/SharpDevelop.sln b/SharpDevelop.sln index d9a9fa8200..2f2309491b 100644 --- a/SharpDevelop.sln +++ b/SharpDevelop.sln @@ -171,6 +171,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MachineSpecifications", "sr EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeQuality", "src\AddIns\Analysis\CodeQuality\CodeQuality.csproj", "{D1DF9C2D-3A5E-4985-ACA4-648C604DB562}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Profiler", "Profiler", "{E9BF2761-031F-4CDC-A7E6-F66F3B347311}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Controller", "src\AddIns\Analysis\Profiler\Controller\Profiler.Controller.csproj", "{D788789A-4D43-42B9-B0F7-CB2CA761372B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.AddIn", "src\AddIns\Analysis\Profiler\Frontend\AddIn\Profiler.AddIn.csproj", "{2F5FBF6E-E9DD-48C0-A209-7241FE488FDF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.X64Converter", "src\AddIns\Analysis\Profiler\X64Converter\Profiler.X64Converter.csproj", "{600D7F63-DACE-4933-BE8C-B51A948A86D4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Controls", "src\AddIns\Analysis\Profiler\Frontend\Controls\Profiler.Controls.csproj", "{B063078F-17D2-4B0C-A01C-DBF440F1C24D}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{49CE38B8-0460-46BF-9DFF-5B33A0F9EB5E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "src\AddIns\Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}" @@ -461,6 +471,22 @@ Global {D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Debug|Any CPU.Build.0 = Debug|Any CPU {D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Release|Any CPU.ActiveCfg = Release|Any CPU {D1DF9C2D-3A5E-4985-ACA4-648C604DB562}.Release|Any CPU.Build.0 = Release|Any CPU + {D788789A-4D43-42B9-B0F7-CB2CA761372B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D788789A-4D43-42B9-B0F7-CB2CA761372B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D788789A-4D43-42B9-B0F7-CB2CA761372B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D788789A-4D43-42B9-B0F7-CB2CA761372B}.Release|Any CPU.Build.0 = Release|Any CPU + {2F5FBF6E-E9DD-48C0-A209-7241FE488FDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F5FBF6E-E9DD-48C0-A209-7241FE488FDF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F5FBF6E-E9DD-48C0-A209-7241FE488FDF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F5FBF6E-E9DD-48C0-A209-7241FE488FDF}.Release|Any CPU.Build.0 = Release|Any CPU + {600D7F63-DACE-4933-BE8C-B51A948A86D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {600D7F63-DACE-4933-BE8C-B51A948A86D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {600D7F63-DACE-4933-BE8C-B51A948A86D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {600D7F63-DACE-4933-BE8C-B51A948A86D4}.Release|Any CPU.Build.0 = Release|Any CPU + {B063078F-17D2-4B0C-A01C-DBF440F1C24D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B063078F-17D2-4B0C-A01C-DBF440F1C24D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B063078F-17D2-4B0C-A01C-DBF440F1C24D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B063078F-17D2-4B0C-A01C-DBF440F1C24D}.Release|Any CPU.Build.0 = Release|Any CPU {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|Any CPU.Build.0 = Debug|Any CPU {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -558,6 +584,11 @@ Global {08CE9972-283B-44F4-82FA-966F7DFA6B7A} = {7019F43E-DFD7-4D1C-8C96-E75D55646DE7} {D1DA3B8F-7313-4BDA-8880-461C5F007751} = {7019F43E-DFD7-4D1C-8C96-E75D55646DE7} {D1DF9C2D-3A5E-4985-ACA4-648C604DB562} = {7019F43E-DFD7-4D1C-8C96-E75D55646DE7} + {E9BF2761-031F-4CDC-A7E6-F66F3B347311} = {7019F43E-DFD7-4D1C-8C96-E75D55646DE7} + {D788789A-4D43-42B9-B0F7-CB2CA761372B} = {E9BF2761-031F-4CDC-A7E6-F66F3B347311} + {2F5FBF6E-E9DD-48C0-A209-7241FE488FDF} = {E9BF2761-031F-4CDC-A7E6-F66F3B347311} + {600D7F63-DACE-4933-BE8C-B51A948A86D4} = {E9BF2761-031F-4CDC-A7E6-F66F3B347311} + {B063078F-17D2-4B0C-A01C-DBF440F1C24D} = {E9BF2761-031F-4CDC-A7E6-F66F3B347311} {49CE38B8-0460-46BF-9DFF-5B33A0F9EB5E} = {39327899-ED91-4F7F-988C-4FE4E17C014D} {1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {49CE38B8-0460-46BF-9DFF-5B33A0F9EB5E} {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {49CE38B8-0460-46BF-9DFF-5B33A0F9EB5E} diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/CallTreeNode.cs b/src/AddIns/Analysis/Profiler/Controller/Data/CallTreeNode.cs index 4a984995f1..0bb070c9c6 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/CallTreeNode.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/CallTreeNode.cs @@ -52,7 +52,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public virtual int CallCount { get { - return this.RawCallCount + (this.IsActiveAtStart ? 1 : 0); + return RawCallCount + (IsActiveAtStart ? 1 : 0); } } @@ -61,7 +61,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public virtual bool IsUserCode { get { - return this.NameMapping.Id > 0; + return NameMapping.Id > 0; } } @@ -89,7 +89,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public string Name { get { - NameMapping name = this.NameMapping; + NameMapping name = NameMapping; return name != null ? name.Name : null; } } @@ -99,7 +99,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public string ReturnType { get { - NameMapping name = this.NameMapping; + NameMapping name = NameMapping; return name != null ? name.ReturnType : null; } } @@ -108,7 +108,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// Determines whether this node is a thread node. /// public virtual bool IsThread { - get { return this.Name.StartsWith("Thread#", StringComparison.Ordinal); } + get { return Name.StartsWith("Thread#", StringComparison.Ordinal); } } /// @@ -116,7 +116,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public virtual bool HasChildren { get { - return this.Children.Any(); + return Children.Any(); } } @@ -125,7 +125,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public IList Parameters { get { - NameMapping name = this.NameMapping; + NameMapping name = NameMapping; return name != null ? name.Parameters : NameMapping.EmptyParameterList; } } @@ -183,7 +183,7 @@ namespace ICSharpCode.Profiler.Controller.Data try { if (includeSelf) yield return this; // Descendants is reflexive - stack.Push(this.Children.GetEnumerator()); + stack.Push(Children.GetEnumerator()); while (stack.Count > 0) { IEnumerator e = stack.Peek(); if (e.MoveNext()) { @@ -220,7 +220,7 @@ namespace ICSharpCode.Profiler.Controller.Data IEnumerable GetAncestors(bool includeSelf) { - CallTreeNode n = includeSelf ? this : this.Parent; + CallTreeNode n = includeSelf ? this : Parent; while (n != null) { yield return n; n = n.Parent; @@ -256,11 +256,11 @@ namespace ICSharpCode.Profiler.Controller.Data public virtual IEnumerable GetPath() { bool hasItems = false; - foreach (CallTreeNode caller in this.Callers) { + foreach (CallTreeNode caller in Callers) { Debug.Print("caller: " + caller); foreach (NodePath p in caller.GetPath()) { hasItems = true; - yield return p.Append(this.NameMapping.Id); + yield return p.Append(NameMapping.Id); } } @@ -277,9 +277,9 @@ namespace ICSharpCode.Profiler.Controller.Data if (relativeTo.Equals(this)) yield return NodePath.Empty; else { - foreach (CallTreeNode caller in this.Callers) { + foreach (CallTreeNode caller in Callers) { foreach (NodePath p in caller.GetPathRelativeTo(relativeTo)) - yield return p.Append(this.NameMapping.Id); + yield return p.Append(NameMapping.Id); } } } @@ -301,7 +301,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public override string ToString() { - return "[" + GetType().Name + " " + this.NameMapping.Id + " " + this.NameMapping.Name + "]"; + return "[" + GetType().Name + " " + NameMapping.Id + " " + NameMapping.Name + "]"; } } } diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/IProfilingDataSet.cs b/src/AddIns/Analysis/Profiler/Controller/Data/IProfilingDataSet.cs index 16df7b35a5..f6e311c9cf 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/IProfilingDataSet.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/IProfilingDataSet.cs @@ -2,8 +2,6 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; namespace ICSharpCode.Profiler.Controller.Data { diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/IProfilingDataWriter.cs b/src/AddIns/Analysis/Profiler/Controller/Data/IProfilingDataWriter.cs index 68db3a0433..932faa9301 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/IProfilingDataWriter.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/IProfilingDataWriter.cs @@ -3,8 +3,6 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Diagnostics; namespace ICSharpCode.Profiler.Controller.Data { diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/IncompatibleDatabaseException.cs b/src/AddIns/Analysis/Profiler/Controller/Data/IncompatibleDatabaseException.cs index 98c45ead08..ffcec9cca5 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/IncompatibleDatabaseException.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/IncompatibleDatabaseException.cs @@ -54,8 +54,8 @@ namespace ICSharpCode.Profiler.Controller.Data { base.GetObjectData(info, context); if (info != null) { - info.AddValue("ExpectedVersion", this.ExpectedVersion, typeof(Version)); - info.AddValue("ActualVersion", this.ActualVersion, typeof(Version)); + info.AddValue("ExpectedVersion", ExpectedVersion, typeof(Version)); + info.AddValue("ActualVersion", ActualVersion, typeof(Version)); } } } diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/AllCalls.cs b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/AllCalls.cs index ae3f7e32e7..7e3fc9ffc7 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/AllCalls.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/AllCalls.cs @@ -2,14 +2,8 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Diagnostics; -using System.Globalization; -using System.IO; using System.Linq; using System.Linq.Expressions; -using System.Reflection; using System.Text; namespace ICSharpCode.Profiler.Controller.Data.Linq @@ -23,7 +17,7 @@ namespace ICSharpCode.Profiler.Controller.Data.Linq { public static readonly AllCalls Instance = new AllCalls(); - private AllCalls() : base(null) + AllCalls() : base(null) { } diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Filter.cs b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Filter.cs index f73ed092d1..a810bb7226 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Filter.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Filter.cs @@ -2,14 +2,12 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Linq.Expressions; -using System.Reflection; using System.Text; namespace ICSharpCode.Profiler.Controller.Data.Linq diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Limit.cs b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Limit.cs index 0ff7f59b7e..000ff4b074 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Limit.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Limit.cs @@ -2,14 +2,8 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Diagnostics; -using System.Globalization; -using System.IO; using System.Linq; using System.Linq.Expressions; -using System.Reflection; using System.Text; namespace ICSharpCode.Profiler.Controller.Data.Linq diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/MergeByName.cs b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/MergeByName.cs index 192245dad9..d50ce49516 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/MergeByName.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/MergeByName.cs @@ -2,14 +2,9 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Diagnostics; -using System.Globalization; -using System.IO; using System.Linq; using System.Linq.Expressions; -using System.Reflection; using System.Text; namespace ICSharpCode.Profiler.Controller.Data.Linq diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/OptimizeQueryExpressionVisitor.cs b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/OptimizeQueryExpressionVisitor.cs index c312a44e1c..d192f8d9fa 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/OptimizeQueryExpressionVisitor.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/OptimizeQueryExpressionVisitor.cs @@ -16,7 +16,7 @@ namespace ICSharpCode.Profiler.Controller.Data.Linq /// Nodes returned from 'Visit' can be assumed to be fully optimized (they won't contain any of the patterns /// described in the SQLiteQueryProvider optimization documentation). /// - sealed class OptimizeQueryExpressionVisitor : System.Linq.Expressions.ExpressionVisitor + sealed class OptimizeQueryExpressionVisitor : ExpressionVisitor { QueryNode Visit(QueryNode queryNode) { @@ -181,7 +181,7 @@ namespace ICSharpCode.Profiler.Controller.Data.Linq } - sealed class IsConditionSafeVisitor : System.Linq.Expressions.ExpressionVisitor + sealed class IsConditionSafeVisitor : ExpressionVisitor { public static bool Test(Expression ex, params MemberInfo[] safeMembers) { diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/QueryNode.cs b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/QueryNode.cs index 77229973cb..3251b9f86f 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/QueryNode.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/QueryNode.cs @@ -3,10 +3,7 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Diagnostics; -using System.Globalization; -using System.IO; using System.Linq; using System.Linq.Expressions; using System.Reflection; diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/SQLiteQueryProvider.cs b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/SQLiteQueryProvider.cs index fa436204c7..c5574d4ea9 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/SQLiteQueryProvider.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/SQLiteQueryProvider.cs @@ -252,7 +252,7 @@ namespace ICSharpCode.Profiler.Controller.Data.Linq } #region Convert Expression Tree To Query AST - sealed class ConvertToQueryAstVisitor : System.Linq.Expressions.ExpressionVisitor + sealed class ConvertToQueryAstVisitor : ExpressionVisitor { readonly QueryExecutionOptions options; @@ -573,7 +573,7 @@ namespace ICSharpCode.Profiler.Controller.Data.Linq #endregion #region ExecuteAllQueriesVisitor - sealed class ExecuteAllQueriesVisitor : System.Linq.Expressions.ExpressionVisitor + sealed class ExecuteAllQueriesVisitor : ExpressionVisitor { readonly SQLiteQueryProvider sqliteProvider; readonly QueryExecutionOptions options; diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Sort.cs b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Sort.cs index 699ad65b08..6d4c039119 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Sort.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/Sort.cs @@ -4,12 +4,9 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; -using System.Diagnostics; -using System.Globalization; using System.IO; using System.Linq; using System.Linq.Expressions; -using System.Reflection; using System.Text; namespace ICSharpCode.Profiler.Controller.Data.Linq diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/SqlQueryContext.cs b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/SqlQueryContext.cs index e4f9ea4ee0..54501693fb 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/Linq/SqlQueryContext.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/Linq/SqlQueryContext.cs @@ -31,9 +31,9 @@ namespace ICSharpCode.Profiler.Controller.Data.Linq public void SetCurrent(CallTreeNodeSqlNameSet nameSet, SqlTableType table, bool hasIDList) { - this.CurrentNameSet = nameSet; - this.CurrentTable = table; - this.HasIDList = hasIDList; + CurrentNameSet = nameSet; + CurrentTable = table; + HasIDList = hasIDList; } SQLiteQueryProvider provider; diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/PerformanceCounterDescriptor.cs b/src/AddIns/Analysis/Profiler/Controller/Data/PerformanceCounterDescriptor.cs index a4589b464d..ea136b8da8 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/PerformanceCounterDescriptor.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/PerformanceCounterDescriptor.cs @@ -130,7 +130,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public void Reset() { - this.Values.Clear(); + Values.Clear(); } /// @@ -155,14 +155,14 @@ namespace ICSharpCode.Profiler.Controller.Data return; } try { - this.Values.Add(counter.NextValue()); + Values.Add(counter.NextValue()); #if DEBUG } catch (Exception e) { Console.WriteLine(e.ToString()); #else } catch (Exception) { #endif - this.Values.Add(defaultValue); + Values.Add(defaultValue); } } diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataProvider.cs b/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataProvider.cs index dbc93a6af9..e236eb53de 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataProvider.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataProvider.cs @@ -2,7 +2,6 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataSQLiteProvider.cs b/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataSQLiteProvider.cs index be9d32c330..330b974faa 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataSQLiteProvider.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataSQLiteProvider.cs @@ -1,18 +1,15 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using ICSharpCode.Profiler.Controller.Data.Linq; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data.SQLite; -using System.Diagnostics; using System.Globalization; -using System.IO; using System.Linq; using System.Linq.Expressions; using System.Threading; -using ICSharpCode.Profiler.Interprocess; +using ICSharpCode.Profiler.Controller.Data.Linq; namespace ICSharpCode.Profiler.Controller.Data { @@ -142,7 +139,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public override void Close() { - this.Dispose(); + Dispose(); } /// @@ -182,7 +179,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public override ReadOnlyCollection DataSets { get { - if (this.dataSets == null) { + if (dataSets == null) { List list = new List(); SQLiteCommand cmd; @@ -202,10 +199,10 @@ namespace ICSharpCode.Profiler.Controller.Data } } - this.dataSets = new ReadOnlyCollection(list); + dataSets = new ReadOnlyCollection(list); } - return this.dataSets; + return dataSets; } } @@ -227,7 +224,7 @@ namespace ICSharpCode.Profiler.Controller.Data public CallTreeNode RootNode { get { - return this.provider.GetRoot(ID, ID); + return provider.GetRoot(ID, ID); } } @@ -246,7 +243,7 @@ namespace ICSharpCode.Profiler.Controller.Data rwLock.EnterWriteLock(); try { if (!isDisposed) - this.connection.Close(); + connection.Close(); isDisposed = true; } finally { @@ -330,17 +327,17 @@ namespace ICSharpCode.Profiler.Controller.Data throw new ProfilerException("processorfrequency was not found!"); } - return this.processorFrequency; + return processorFrequency; } } /// public override IQueryable GetFunctions(int startIndex, int endIndex) { - if (startIndex < 0 || startIndex >= this.DataSets.Count) + if (startIndex < 0 || startIndex >= DataSets.Count) throw new ArgumentOutOfRangeException("startIndex", startIndex, "Value must be between 0 and " + endIndex); - if (endIndex < startIndex || endIndex >= this.DataSets.Count) - throw new ArgumentOutOfRangeException("endIndex", endIndex, "Value must be between " + startIndex + " and " + (this.DataSets.Count - 1)); + if (endIndex < startIndex || endIndex >= DataSets.Count) + throw new ArgumentOutOfRangeException("endIndex", endIndex, "Value must be between " + startIndex + " and " + (DataSets.Count - 1)); SQLiteQueryProvider queryProvider = new SQLiteQueryProvider(this, startIndex, endIndex); @@ -478,15 +475,15 @@ namespace ICSharpCode.Profiler.Controller.Data LockObject LockAndCreateCommand(out SQLiteCommand cmd) { - this.rwLock.EnterReadLock(); + rwLock.EnterReadLock(); if (isDisposed) { - this.rwLock.ExitReadLock(); + rwLock.ExitReadLock(); throw new ObjectDisposedException("ProfilingDataSQLiteProvider", "The provider was already closed!"); } - cmd = this.connection.CreateCommand(); - return new LockObject(cmd, this.rwLock); + cmd = connection.CreateCommand(); + return new LockObject(cmd, rwLock); } struct LockObject : IDisposable diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataSQLiteWriter.cs b/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataSQLiteWriter.cs index 0a62869430..c76248f5aa 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataSQLiteWriter.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/ProfilingDataSQLiteWriter.cs @@ -3,15 +3,11 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Data.SQLite; -using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; -using ICSharpCode.Profiler.Interprocess; -using System.Threading; namespace ICSharpCode.Profiler.Controller.Data { @@ -60,13 +56,13 @@ namespace ICSharpCode.Profiler.Controller.Data if (isDisposed) return; - using (SQLiteCommand cmd = this.connection.CreateCommand()) { + using (SQLiteCommand cmd = connection.CreateCommand()) { // create index at the end (after inserting data), this is faster cmd.CommandText = CallsAndFunctionsIndexDefs; cmd.ExecuteNonQuery(); } - this.Dispose(); + Dispose(); } /// @@ -75,11 +71,11 @@ namespace ICSharpCode.Profiler.Controller.Data /// public int ProcessorFrequency { get { - return this.processorFrequency; + return processorFrequency; } set { processorFrequency = value; - ProfilingDataSQLiteProvider.SetProperty(this.connection.CreateCommand(), "processorfrequency", value.ToString(CultureInfo.InvariantCulture)); + ProfilingDataSQLiteProvider.SetProperty(connection.CreateCommand(), "processorfrequency", value.ToString(CultureInfo.InvariantCulture)); } } @@ -91,8 +87,8 @@ namespace ICSharpCode.Profiler.Controller.Data if (dataSet == null) throw new ArgumentNullException("dataSet"); - using (SQLiteTransaction transaction = this.connection.BeginTransaction()) { - SQLiteCommand cmd = this.connection.CreateCommand(); + using (SQLiteTransaction transaction = connection.BeginTransaction()) { + SQLiteCommand cmd = connection.CreateCommand(); if (dataSetCount == -1) dataSetCount = 0; @@ -106,7 +102,7 @@ namespace ICSharpCode.Profiler.Controller.Data int dataSetStartId = functionInfoCount; - using (SQLiteCommand loopCommand = this.connection.CreateCommand()) { + using (SQLiteCommand loopCommand = connection.CreateCommand()) { CallTreeNode node = dataSet.RootNode; loopCommand.CommandText = "INSERT INTO Calls(id, endid, parentid, nameid, cpucyclesspent, cpucyclesspentself, isactiveatstart, callcount)" + @@ -125,7 +121,7 @@ namespace ICSharpCode.Profiler.Controller.Data InsertCalls(loopCommand, node, -1, dataParams); } - using (SQLiteCommand functionsCommand = this.connection.CreateCommand()) { + using (SQLiteCommand functionsCommand = connection.CreateCommand()) { functionsCommand.CommandText = string.Format(@" INSERT INTO Functions SELECT {0}, nameid, SUM(cpucyclesspent), SUM(cpucyclesspentself), SUM(isactiveatstart), SUM(callcount), MAX(id != endid) @@ -201,7 +197,7 @@ namespace ICSharpCode.Profiler.Controller.Data // NameMapping.Id <-> FunctionData.NameId 1:N // FunctionData.ParentId <-> FunctionData.Id 1:N - SQLiteCommand cmd = this.connection.CreateCommand(); + SQLiteCommand cmd = connection.CreateCommand(); cmd.CommandText = CallsAndFunctionsTableDefs + @" @@ -276,8 +272,8 @@ namespace ICSharpCode.Profiler.Controller.Data /// public void WriteMappings(IEnumerable mappings) { - using (SQLiteTransaction trans = this.connection.BeginTransaction()) { - using (SQLiteCommand cmd = this.connection.CreateCommand()) { + using (SQLiteTransaction trans = connection.BeginTransaction()) { + using (SQLiteCommand cmd = connection.CreateCommand()) { SQLiteParameter idParam = new SQLiteParameter("id"); SQLiteParameter retTParam = new SQLiteParameter("returntype"); SQLiteParameter nameParam = new SQLiteParameter("name"); @@ -307,7 +303,7 @@ namespace ICSharpCode.Profiler.Controller.Data public void Dispose() { if (!isDisposed) - this.connection.Close(); + connection.Close(); isDisposed = true; } @@ -315,9 +311,9 @@ namespace ICSharpCode.Profiler.Controller.Data /// public void WritePerformanceCounterData(IEnumerable counters) { - using (SQLiteTransaction trans = this.connection.BeginTransaction()) { - using (SQLiteCommand cmd = this.connection.CreateCommand()) { - using (SQLiteCommand cmd2 = this.connection.CreateCommand()) { + using (SQLiteTransaction trans = connection.BeginTransaction()) { + using (SQLiteCommand cmd = connection.CreateCommand()) { + using (SQLiteCommand cmd2 = connection.CreateCommand()) { SQLiteParameter idParam = new SQLiteParameter("id"); SQLiteParameter nameParam = new SQLiteParameter("name"); @@ -368,8 +364,8 @@ namespace ICSharpCode.Profiler.Controller.Data /// public void WriteEventData(IEnumerable events) { - using (SQLiteTransaction trans = this.connection.BeginTransaction()) { - using (SQLiteCommand cmd = this.connection.CreateCommand()) { + using (SQLiteTransaction trans = connection.BeginTransaction()) { + using (SQLiteCommand cmd = connection.CreateCommand()) { SQLiteParameter dataSetParam = new SQLiteParameter("datasetid"); SQLiteParameter eventTypeParam = new SQLiteParameter("eventtype"); SQLiteParameter nameIdParam = new SQLiteParameter("nameid"); @@ -395,7 +391,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public int DataSetCount { - get { return this.dataSetCount; } + get { return dataSetCount; } } } } diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/SQLiteCallTreeNode.cs b/src/AddIns/Analysis/Profiler/Controller/Data/SQLiteCallTreeNode.cs index 9ded14edd7..2cf6868540 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/SQLiteCallTreeNode.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/SQLiteCallTreeNode.cs @@ -1,14 +1,11 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using ICSharpCode.Profiler.Controller.Data.Linq; using System; using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Data.SQLite; -using System.Globalization; using System.Linq; using System.Linq.Expressions; +using ICSharpCode.Profiler.Controller.Data.Linq; namespace ICSharpCode.Profiler.Controller.Data { @@ -44,15 +41,15 @@ namespace ICSharpCode.Profiler.Controller.Data /// internal int[] IdList { get { - int[] tmp = this.ids; + int[] tmp = ids; if (tmp == null) { tmp = provider.LoadIDListForFunction(nameId); - this.ids = tmp; + ids = tmp; } return tmp; } set { - this.ids = value; + ids = value; } } @@ -64,14 +61,14 @@ namespace ICSharpCode.Profiler.Controller.Data if (nameId == 0) return new NameMapping(0, null, "Merged node", null); - return this.provider.GetMapping(nameId); + return provider.GetMapping(nameId); } } /// public override int RawCallCount { get { - return this.callCount; + return callCount; } } @@ -80,12 +77,12 @@ namespace ICSharpCode.Profiler.Controller.Data /// public override long CpuCyclesSpent { get{ - return this.cpuCyclesSpent; + return cpuCyclesSpent; } } public override long CpuCyclesSpentSelf { - get { return this.cpuCyclesSpentSelf; } + get { return cpuCyclesSpentSelf; } } /// @@ -93,7 +90,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public override CallTreeNode Parent { get { - return this.parent; + return parent; } } @@ -110,7 +107,7 @@ namespace ICSharpCode.Profiler.Controller.Data if (!hasChildren) return EmptyQueryable; - List ids = this.IdList.ToList(); + List ids = IdList.ToList(); Expression> filterLambda = c => ids.Contains(c.ParentID); return provider.CreateQuery(new MergeByName(new Filter(AllCalls.Instance, filterLambda))); } @@ -121,13 +118,13 @@ namespace ICSharpCode.Profiler.Controller.Data /// public override double TimeSpent { get { - return CpuCyclesSpent / (1000.0 * this.provider.ProcessorFrequency); + return CpuCyclesSpent / (1000.0 * provider.ProcessorFrequency); } } public override double TimeSpentSelf { get { - return CpuCyclesSpentSelf / (1000.0 * this.provider.ProcessorFrequency); + return CpuCyclesSpentSelf / (1000.0 * provider.ProcessorFrequency); } } @@ -151,7 +148,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// A new CallTreeNode. public override CallTreeNode Merge(IEnumerable nodes) { - SQLiteCallTreeNode mergedNode = new SQLiteCallTreeNode(0, null, this.provider); + SQLiteCallTreeNode mergedNode = new SQLiteCallTreeNode(0, null, provider); List mergedIds = new List(); bool initialised = false; @@ -179,12 +176,12 @@ namespace ICSharpCode.Profiler.Controller.Data get { // parent is not null => this node was created by a // 'Children' call => all our IDs come from that parent - if (this.parent != null) - return (new CallTreeNode[] { this.parent }).AsQueryable(); + if (parent != null) + return (new CallTreeNode[] { parent }).AsQueryable(); List parentIDList = provider.RunSQLIDList( "SELECT parentid FROM Calls " - + "WHERE id IN(" + string.Join(",", this.IdList.Select(s => s.ToString()).ToArray()) + @")"); + + "WHERE id IN(" + string.Join(",", IdList.Select(s => s.ToString()).ToArray()) + @")"); Expression> filterLambda = c => parentIDList.Contains(c.ID); return provider.CreateQuery(new MergeByName(new Filter(AllCalls.Instance, filterLambda))); @@ -196,7 +193,7 @@ namespace ICSharpCode.Profiler.Controller.Data SQLiteCallTreeNode node = other as SQLiteCallTreeNode; if (node != null) { - int[] a = this.IdList; + int[] a = IdList; int[] b = node.IdList; if (a.Length != b.Length) return false; @@ -219,7 +216,7 @@ namespace ICSharpCode.Profiler.Controller.Data int hash = 0; unchecked { - foreach (int i in this.IdList) { + foreach (int i in IdList) { hash = hash * hashPrime + i; } } @@ -228,7 +225,7 @@ namespace ICSharpCode.Profiler.Controller.Data } public override bool HasChildren { - get { return this.hasChildren; } + get { return hasChildren; } } } } diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/TempFileDatabase.cs b/src/AddIns/Analysis/Profiler/Controller/Data/TempFileDatabase.cs index 0c824d3def..d62567ec3c 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/TempFileDatabase.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/TempFileDatabase.cs @@ -7,7 +7,6 @@ using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Runtime.InteropServices; -using System.Threading; using ICSharpCode.Profiler.Interprocess; @@ -77,7 +76,7 @@ namespace ICSharpCode.Profiler.Controller.Data public override int ProcessorFrequency { get { - return this.database.processorFrequency; + return database.processorFrequency; } } @@ -95,13 +94,13 @@ namespace ICSharpCode.Profiler.Controller.Data { if (nameId == 0) return new NameMapping(0); - return this.database.nameMappings[nameId]; + return database.nameMappings[nameId]; } public override void Dispose() { base.Dispose(); - this.view.Dispose(); + view.Dispose(); } } @@ -117,10 +116,10 @@ namespace ICSharpCode.Profiler.Controller.Data public int ProcessorFrequency { get { - return this.database.processorFrequency; + return database.processorFrequency; } set { - this.database.processorFrequency = value; + database.processorFrequency = value; } } @@ -131,7 +130,7 @@ namespace ICSharpCode.Profiler.Controller.Data throw new InvalidOperationException("TempFileDatabase cannot write DataSets other than UnmanagedProfilingDataSet!"); database.AddDataset((byte *)uDataSet.StartPtr.ToPointer(), uDataSet.Length, uDataSet.NativeStartPosition, uDataSet.NativeRootFuncInfoPosition, uDataSet.IsFirst); - this.database.is64Bit = uDataSet.Is64Bit; + database.is64Bit = uDataSet.Is64Bit; } public void Close() @@ -144,21 +143,21 @@ namespace ICSharpCode.Profiler.Controller.Data public void WriteMappings(IEnumerable mappings) { foreach (NameMapping nm in mappings) - this.database.nameMappings.Add(nm.Id, nm); + database.nameMappings.Add(nm.Id, nm); } public void WritePerformanceCounterData(IEnumerable counters) { - this.database.counters.AddRange(counters); + database.counters.AddRange(counters); } public void WriteEventData(IEnumerable events) { - this.database.events.AddRange(events); + database.events.AddRange(events); } public int DataSetCount { - get { return this.database.DataSetCount; } + get { return database.DataSetCount; } } } #endregion @@ -181,23 +180,23 @@ namespace ICSharpCode.Profiler.Controller.Data { byte[] data = new byte[length]; Marshal.Copy(new IntPtr(ptr), data, 0, (int)length); - if (this.currentWrite != null) - this.file.EndWrite(this.currentWrite); - this.streamInfos.Add(new StreamInfo { NativeStartPosition = nativeStartPosition, NativeRootFuncInfoStartPosition = nativeRootFuncInfoStartPosition, - StreamStartPosition = this.file.Length, StreamLength = length, IsFirst = isFirst }); - this.currentWrite = this.file.BeginWrite(data, 0, (int)length, null, null); + if (currentWrite != null) + file.EndWrite(currentWrite); + streamInfos.Add(new StreamInfo { NativeStartPosition = nativeStartPosition, NativeRootFuncInfoStartPosition = nativeRootFuncInfoStartPosition, + StreamStartPosition = file.Length, StreamLength = length, IsFirst = isFirst }); + currentWrite = file.BeginWrite(data, 0, (int)length, null, null); } void NotifyFinish() { - if (this.currentWrite != null) { - this.file.EndWrite(this.currentWrite); - this.currentWrite = null; + if (currentWrite != null) { + file.EndWrite(currentWrite); + currentWrite = null; } - this.file.Flush(); + file.Flush(); - if (this.streamInfos.Count > 0) - this.mmf = MemoryMappedFile.Open(file);//Name, FileAccess.Read, FileShare.ReadWrite); + if (streamInfos.Count > 0) + mmf = MemoryMappedFile.Open(file);//Name, FileAccess.Read, FileShare.ReadWrite); } /// @@ -205,9 +204,9 @@ namespace ICSharpCode.Profiler.Controller.Data /// public void Close() { - if (this.mmf != null) - this.mmf.Close(); - this.file.Close(); + if (mmf != null) + mmf.Close(); + file.Close(); } /// @@ -229,7 +228,7 @@ namespace ICSharpCode.Profiler.Controller.Data throw new IndexOutOfRangeException("index needs to be between 0 and " + (streamInfos.Count - 1) + "\nActual value: " + index); - if (this.mmf == null) + if (mmf == null) throw new InvalidOperationException("All writers have to be closed before reading the data from the database!"); return new DataSet(this, mmf.MapView(streamInfos[index].StreamStartPosition, streamInfos[index].StreamLength), streamInfos[index].NativeStartPosition, @@ -243,16 +242,16 @@ namespace ICSharpCode.Profiler.Controller.Data /// Used to report the progress of writing all DataSets, returning false tells WriteTo to cancel the process. public void WriteTo(IProfilingDataWriter writer, Predicate progressReport) { - writer.ProcessorFrequency = this.processorFrequency; - writer.WriteMappings(this.nameMappings.Values); - writer.WritePerformanceCounterData(this.counters); - writer.WriteEventData(this.events); + writer.ProcessorFrequency = processorFrequency; + writer.WriteMappings(nameMappings.Values); + writer.WritePerformanceCounterData(counters); + writer.WriteEventData(events); - for (int i = 0; i < this.DataSetCount; i++) { - using (UnmanagedProfilingDataSet dataSet = this.LoadDataSet(i)) + for (int i = 0; i < DataSetCount; i++) { + using (UnmanagedProfilingDataSet dataSet = LoadDataSet(i)) writer.WriteDataSet(dataSet); - if (!progressReport.Invoke((i + 1) / (double)this.DataSetCount)) + if (!progressReport.Invoke((i + 1) / (double)DataSetCount)) break; } } @@ -321,7 +320,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// Returns the number of DataSets stored in the database. /// public int DataSetCount { - get { return this.streamInfos.Count; } + get { return streamInfos.Count; } } /// diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/UnitTestRootCallTreeNode.cs b/src/AddIns/Analysis/Profiler/Controller/Data/UnitTestRootCallTreeNode.cs index c431530281..6af9e1bfe2 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/UnitTestRootCallTreeNode.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/UnitTestRootCallTreeNode.cs @@ -12,7 +12,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public class UnitTestRootCallTreeNode : CallTreeNode { - List unitTests = null; + List unitTests; /// /// Creates a new UnitTestRootCallTreeNode. @@ -40,7 +40,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public override bool IsActiveAtStart { get { - return (this.unitTests == null) ? false : this.unitTests.Any(test => test.IsActiveAtStart); + return (unitTests == null) ? false : unitTests.Any(test => test.IsActiveAtStart); } } @@ -66,7 +66,7 @@ namespace ICSharpCode.Profiler.Controller.Data } /// - public override CallTreeNode Merge(System.Collections.Generic.IEnumerable nodes) + public override CallTreeNode Merge(IEnumerable nodes) { // throw new ShouldNeverHappenException(); throw new NotSupportedException("Cannot merge a UnitTestRootCallTreeNode (should never be possible)"); @@ -75,7 +75,7 @@ namespace ICSharpCode.Profiler.Controller.Data /// public override int GetHashCode() { - return (this.unitTests == null) ? 0 : this.unitTests.Aggregate(0, (sum, item) => sum ^= item.GetHashCode()); + return (unitTests == null) ? 0 : unitTests.Aggregate(0, (sum, item) => sum ^= item.GetHashCode()); } /// diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/UnitTestWriter.cs b/src/AddIns/Analysis/Profiler/Controller/Data/UnitTestWriter.cs index 87c0fd197c..ad866cdfb7 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/UnitTestWriter.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/UnitTestWriter.cs @@ -47,8 +47,8 @@ namespace ICSharpCode.Profiler.Controller.Data /// public int ProcessorFrequency { - get { return this.targetWriter.ProcessorFrequency; } - set { this.targetWriter.ProcessorFrequency = value; } + get { return targetWriter.ProcessorFrequency; } + set { targetWriter.ProcessorFrequency = value; } } /// @@ -62,13 +62,13 @@ namespace ICSharpCode.Profiler.Controller.Data FindUnitTests(dataSet.RootNode, list); if (list.Count > 0) { - this.targetWriter.WriteDataSet( + targetWriter.WriteDataSet( new UnitTestDataSet(new UnitTestRootCallTreeNode(list), dataSet.IsFirst) ); } else { // proposed fix for http://community.sharpdevelop.net/forums/t/10533.aspx // discuss with Daniel - this.targetWriter.WriteDataSet(dataSet); + targetWriter.WriteDataSet(dataSet); } } @@ -90,32 +90,32 @@ namespace ICSharpCode.Profiler.Controller.Data } /// - public void WriteMappings(System.Collections.Generic.IEnumerable mappings) + public void WriteMappings(IEnumerable mappings) { - this.targetWriter.WriteMappings(mappings); + targetWriter.WriteMappings(mappings); } /// public void Close() { - this.targetWriter.Close(); + targetWriter.Close(); } /// public void WritePerformanceCounterData(IEnumerable counters) { - this.targetWriter.WritePerformanceCounterData(counters); + targetWriter.WritePerformanceCounterData(counters); } /// public void WriteEventData(IEnumerable events) { - this.targetWriter.WriteEventData(events); + targetWriter.WriteEventData(events); } /// public int DataSetCount { - get { return this.targetWriter.DataSetCount; } + get { return targetWriter.DataSetCount; } } } } diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/UnmanagedCallTreeNode.cs b/src/AddIns/Analysis/Profiler/Controller/Data/UnmanagedCallTreeNode.cs index 3ca9d0f6f1..d0a23f015f 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/UnmanagedCallTreeNode.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/UnmanagedCallTreeNode.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Linq; namespace ICSharpCode.Profiler.Controller.Data @@ -25,7 +24,7 @@ namespace ICSharpCode.Profiler.Controller.Data this.parent = parent; } - public override System.Linq.IQueryable Children { + public override IQueryable Children { get { dataSet.VerifyAccess(); @@ -47,35 +46,35 @@ namespace ICSharpCode.Profiler.Controller.Data public override NameMapping NameMapping { get { - return this.dataSet.GetMapping(this.data->Id); + return dataSet.GetMapping(data->Id); } } public override int RawCallCount { get { dataSet.VerifyAccess(); // need to verify before deferencing data - return this.data->CallCount; + return data->CallCount; } } public int Index { get { dataSet.VerifyAccess(); // need to verify before deferencing data - return (int)(this.data->TimeSpent >> 56); + return (int)(data->TimeSpent >> 56); } } public override bool IsActiveAtStart { get { dataSet.VerifyAccess(); // need to verify before deferencing data - return (this.data->TimeSpent & ((ulong)1 << 55)) != 0; + return (data->TimeSpent & ((ulong)1 << 55)) != 0; } } public override long CpuCyclesSpent { get { dataSet.VerifyAccess(); // need to verify before deferencing data - return (long)(this.data->TimeSpent & CpuCycleMask); + return (long)(data->TimeSpent & CpuCycleMask); } } @@ -83,7 +82,7 @@ namespace ICSharpCode.Profiler.Controller.Data get { dataSet.VerifyAccess(); - long result = (long)(this.data->TimeSpent & CpuCycleMask); + long result = (long)(data->TimeSpent & CpuCycleMask); TargetProcessPointer32* childrenPtr = FunctionInfo.GetChildren32(data); for (int i = 0; i <= data->LastChildIndex; i++) @@ -99,19 +98,19 @@ namespace ICSharpCode.Profiler.Controller.Data public override CallTreeNode Parent { get { - return this.parent; + return parent; } } public override double TimeSpent { get { - return this.CpuCyclesSpent / (1000.0 * this.dataSet.ProcessorFrequency); + return CpuCyclesSpent / (1000.0 * dataSet.ProcessorFrequency); } } public override double TimeSpentSelf { get { - return this.CpuCyclesSpentSelf / (1000.0 * this.dataSet.ProcessorFrequency); + return CpuCyclesSpentSelf / (1000.0 * dataSet.ProcessorFrequency); } } @@ -135,7 +134,7 @@ namespace ICSharpCode.Profiler.Controller.Data { UnmanagedCallTreeNode32 node = other as UnmanagedCallTreeNode32; if (node != null) { - return node.data == this.data; + return node.data == data; } return false; diff --git a/src/AddIns/Analysis/Profiler/Controller/Data/UnmanagedProfilingDataSet.cs b/src/AddIns/Analysis/Profiler/Controller/Data/UnmanagedProfilingDataSet.cs index 41707716b5..7ad98589c5 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Data/UnmanagedProfilingDataSet.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Data/UnmanagedProfilingDataSet.cs @@ -82,12 +82,12 @@ namespace ICSharpCode.Profiler.Controller.Data internal unsafe FunctionInfo* GetFunctionInfo(TargetProcessPointer ptr) { - return (FunctionInfo*)this.TranslatePointer(ptr); + return (FunctionInfo*)TranslatePointer(ptr); } internal unsafe FunctionInfo* GetRootFunctionInfo() { - return GetFunctionInfo(this.nativeRootFuncInfoPosition); + return GetFunctionInfo(nativeRootFuncInfoPosition); } /// @@ -96,7 +96,7 @@ namespace ICSharpCode.Profiler.Controller.Data public unsafe CallTreeNode RootNode { get { VerifyAccess(); - if (this.is64Bit) + if (is64Bit) return new UnmanagedCallTreeNode64( this, GetRootFunctionInfo(), diff --git a/src/AddIns/Analysis/Profiler/Controller/ExtensionMethods.cs b/src/AddIns/Analysis/Profiler/Controller/ExtensionMethods.cs index deb6a0cd52..c00e89a229 100644 --- a/src/AddIns/Analysis/Profiler/Controller/ExtensionMethods.cs +++ b/src/AddIns/Analysis/Profiler/Controller/ExtensionMethods.cs @@ -8,9 +8,7 @@ using System.Diagnostics; using System.IO; using System.Linq; using System.Linq.Expressions; -using System.Reflection; using System.Text; -using System.Text.RegularExpressions; using ICSharpCode.Profiler.Controller.Data; diff --git a/src/AddIns/Analysis/Profiler/Controller/Interprocess/AtomicBoolean.cs b/src/AddIns/Analysis/Profiler/Controller/Interprocess/AtomicBoolean.cs index 3856c30593..364c549b5e 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Interprocess/AtomicBoolean.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Interprocess/AtomicBoolean.cs @@ -48,7 +48,7 @@ namespace ICSharpCode.Profiler.Interprocess /// public override int GetHashCode() { - return this.Value.GetHashCode(); + return Value.GetHashCode(); } /// @@ -62,7 +62,7 @@ namespace ICSharpCode.Profiler.Interprocess /// public bool Equals(AtomicBoolean other) { - return this.Value == other.Value; + return Value == other.Value; } /// diff --git a/src/AddIns/Analysis/Profiler/Controller/Interprocess/MemoryMappedFile.cs b/src/AddIns/Analysis/Profiler/Controller/Interprocess/MemoryMappedFile.cs index 04073e8417..1e81f0d8fa 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Interprocess/MemoryMappedFile.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Interprocess/MemoryMappedFile.cs @@ -9,12 +9,12 @@ using System.Threading; namespace ICSharpCode.Profiler.Interprocess { // aliases for WIN32 types - using WORD = System.Int16; - using DWORD = System.Int32; - using ULONG = System.UInt32; - using LPVOID = System.IntPtr; - using DWORD_PTR = System.IntPtr; - using HANDLE = System.IntPtr; + using WORD = Int16; + using DWORD = Int32; + using ULONG = UInt32; + using LPVOID = IntPtr; + using DWORD_PTR = IntPtr; + using HANDLE = IntPtr; /// /// Represents a memory mapped file. diff --git a/src/AddIns/Analysis/Profiler/Controller/Interprocess/UnmanagedCircularBuffer.cs b/src/AddIns/Analysis/Profiler/Controller/Interprocess/UnmanagedCircularBuffer.cs index 7bca42f38f..26c5cff14d 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Interprocess/UnmanagedCircularBuffer.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Interprocess/UnmanagedCircularBuffer.cs @@ -59,7 +59,7 @@ namespace ICSharpCode.Profiler.Interprocess public static readonly int SynchronizationOverheadSize = sizeof(UnmanagedCircularBufferHeader); #region Construction - private UnmanagedCircularBuffer(IntPtr bufferPointer, int bufferLength) + UnmanagedCircularBuffer(IntPtr bufferPointer, int bufferLength) { // we need space for the header and at least 2 bytes of data (because the buffer can never be completely filled) if (bufferLength < sizeof(UnmanagedCircularBufferHeader) + 2) @@ -281,7 +281,7 @@ namespace ICSharpCode.Profiler.Interprocess // wait until there's data while (startOffset == endOffset) { lock (circularBuffer.closeLock) { - if (this.circularBuffer.isClosed) { + if (circularBuffer.isClosed) { Monitor.Pulse(circularBuffer.closeLock); return 0; } diff --git a/src/AddIns/Analysis/Profiler/Controller/Profiler.Controller.csproj b/src/AddIns/Analysis/Profiler/Controller/Profiler.Controller.csproj index cc1c4e1afa..4bd298cc17 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Profiler.Controller.csproj +++ b/src/AddIns/Analysis/Profiler/Controller/Profiler.Controller.csproj @@ -10,7 +10,7 @@ Properties ICSharpCode.Profiler.Controller ICSharpCode.Profiler.Controller - v4.0 + v4.5 512 True False @@ -46,7 +46,8 @@ false false true - Client + + true diff --git a/src/AddIns/Analysis/Profiler/Controller/Profiler.cs b/src/AddIns/Analysis/Profiler/Controller/Profiler.cs index 253764d6b1..ddabbc1fac 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Profiler.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Profiler.cs @@ -69,10 +69,10 @@ namespace ICSharpCode.Profiler.Controller public int ProcessorFrequency { get { - if (this.is64Bit) - return this.memHeader64->ProcessorFrequency; + if (is64Bit) + return memHeader64->ProcessorFrequency; else - return this.memHeader32->ProcessorFrequency; + return memHeader32->ProcessorFrequency; } } @@ -202,7 +202,7 @@ namespace ICSharpCode.Profiler.Controller /// public void EnableDataCollection() { - this.enableDC = true; + enableDC = true; } /// @@ -210,8 +210,8 @@ namespace ICSharpCode.Profiler.Controller /// public void DisableDataCollection() { - this.enableDC = false; - this.isFirstDC = true; + enableDC = false; + isFirstDC = true; } /// @@ -321,16 +321,16 @@ namespace ICSharpCode.Profiler.Controller void DataCollection() { while (!stopDC) { - this.Pause(); - this.threadListMutex.WaitOne(); + Pause(); + threadListMutex.WaitOne(); - if (this.is64Bit) + if (is64Bit) CollectData64(); else CollectData32(); - this.threadListMutex.ReleaseMutex(); - this.Continue(); + threadListMutex.ReleaseMutex(); + Continue(); Thread.Sleep(500); } } @@ -342,7 +342,7 @@ namespace ICSharpCode.Profiler.Controller ulong now = GetRdtsc(); - ThreadLocalData32* item = (ThreadLocalData32*)TranslatePointer(this.memHeader32->LastThreadListItem); + ThreadLocalData32* item = (ThreadLocalData32*)TranslatePointer(memHeader32->LastThreadListItem); List> stackList = new List>(); @@ -363,8 +363,8 @@ namespace ICSharpCode.Profiler.Controller item = (ThreadLocalData32*)TranslatePointer(item->Predecessor); } - if (this.enableDC) { - this.AddDataset(fullView.Pointer, + if (enableDC) { + AddDataset(fullView.Pointer, memHeader32->NativeAddress + memHeader32->HeapOffset, memHeader32->Allocator.startPos - memHeader32->NativeAddress, memHeader32->Allocator.pos - memHeader32->Allocator.startPos, @@ -381,7 +381,7 @@ namespace ICSharpCode.Profiler.Controller memHeader32->RootFuncInfoAddress = TranslatePointerBack32(root); - item = (ThreadLocalData32*)TranslatePointer(this.memHeader32->LastThreadListItem); + item = (ThreadLocalData32*)TranslatePointer(memHeader32->LastThreadListItem); now = GetRdtsc(); @@ -415,8 +415,8 @@ namespace ICSharpCode.Profiler.Controller unsafe void AddDataset(byte *ptr, TargetProcessPointer nativeStartPosition, long offset, long length, bool isFirst, TargetProcessPointer nativeRootFuncInfoPosition) { using (DataSet dataSet = new DataSet(this, ptr + offset, length, nativeStartPosition, nativeRootFuncInfoPosition, isFirst, is64Bit)) { - lock (this.dataWriter) { - this.dataWriter.WriteDataSet(dataSet); + lock (dataWriter) { + dataWriter.WriteDataSet(dataSet); if (usePerformanceCounters) { if (performanceCounterInstanceName == null) @@ -487,7 +487,7 @@ namespace ICSharpCode.Profiler.Controller while (readString != null) { readString = ReadString(stream); if (readString != null && !ProcessCommand(readString)) - this.LogString(readString); + LogString(readString); } } @@ -526,23 +526,23 @@ namespace ICSharpCode.Profiler.Controller LogString("Using 64-bit hook."); LogString("Starting process, waiting for profiler hook..."); - this.profilee = new Process(); + profilee = new Process(); - this.profilee.EnableRaisingEvents = true; - this.profilee.StartInfo = this.psi; - this.profilee.Exited += new EventHandler(ProfileeExited); + profilee.EnableRaisingEvents = true; + profilee.StartInfo = psi; + profilee.Exited += new EventHandler(ProfileeExited); - this.enableDC = this.profilerOptions.EnableDCAtStart; - this.isFirstDC = true; + enableDC = profilerOptions.EnableDCAtStart; + isFirstDC = true; - Debug.WriteLine("Launching profiler for " + this.psi.FileName + "..."); - this.profilee.Start(); + Debug.WriteLine("Launching profiler for " + psi.FileName + "..."); + profilee.Start(); - this.logger.Start(nativeToManagedBuffer.CreateReadingStream()); + logger.Start(nativeToManagedBuffer.CreateReadingStream()); // GC references currentSession - if (this.profilerOptions.EnableDC) { - this.dataCollector.Start(); + if (profilerOptions.EnableDC) { + dataCollector.Start(); } OnSessionStarted(EventArgs.Empty); @@ -554,11 +554,11 @@ namespace ICSharpCode.Profiler.Controller /// void Pause() { - this.accessEventHandle.Reset(); + accessEventHandle.Reset(); if (is64Bit) - this.memHeader64->ExclusiveAccess = 1; + memHeader64->ExclusiveAccess = 1; else - this.memHeader32->ExclusiveAccess = 1; + memHeader32->ExclusiveAccess = 1; Thread.MemoryBarrier(); if (is64Bit) while (!AllThreadsWait64()) ; @@ -569,7 +569,7 @@ namespace ICSharpCode.Profiler.Controller bool AllThreadsWait32() { try { - this.threadListMutex.WaitOne(); + threadListMutex.WaitOne(); } catch (AbandonedMutexException) { // profilee crashed while holding the thread list mutex return true; @@ -577,7 +577,7 @@ namespace ICSharpCode.Profiler.Controller bool isWaiting = true; - ThreadLocalData32* item = (ThreadLocalData32*)TranslatePointer(this.memHeader32->LastThreadListItem); + ThreadLocalData32* item = (ThreadLocalData32*)TranslatePointer(memHeader32->LastThreadListItem); while (item != null) { if (item->InLock == 1) @@ -586,7 +586,7 @@ namespace ICSharpCode.Profiler.Controller item = (ThreadLocalData32*)TranslatePointer(item->Predecessor); } - this.threadListMutex.ReleaseMutex(); + threadListMutex.ReleaseMutex(); return isWaiting; } @@ -597,10 +597,10 @@ namespace ICSharpCode.Profiler.Controller void Continue() { if (is64Bit) - this.memHeader64->ExclusiveAccess = 0; + memHeader64->ExclusiveAccess = 0; else - this.memHeader32->ExclusiveAccess = 0; - this.accessEventHandle.Set(); + memHeader32->ExclusiveAccess = 0; + accessEventHandle.Set(); } unsafe void ProfileeExited(object sender, EventArgs e) @@ -610,34 +610,34 @@ namespace ICSharpCode.Profiler.Controller DeregisterProfiler(); - this.stopDC = true; + stopDC = true; Debug.WriteLine("Closing native to managed buffer"); nativeToManagedBuffer.Close(true); Debug.WriteLine("Joining logger thread..."); - this.logger.Join(); + logger.Join(); Debug.WriteLine("Logger thread joined!"); - if (this.profilerOptions.EnableDC) - this.dataCollector.Join(); + if (profilerOptions.EnableDC) + dataCollector.Join(); // Do last data collection - if (this.is64Bit) + if (is64Bit) CollectData64(); else CollectData32(); isRunning = false; - this.dataWriter.WritePerformanceCounterData(performanceCounters); - this.dataWriter.Close(); + dataWriter.WritePerformanceCounterData(performanceCounters); + dataWriter.Close(); OnSessionEnded(EventArgs.Empty); } internal void LogString(string text) { - this.profilerOutput.AppendLine(text); + profilerOutput.AppendLine(text); OnOutputUpdated(EventArgs.Empty); } @@ -654,7 +654,7 @@ namespace ICSharpCode.Profiler.Controller internal unsafe void* TranslatePointer(TargetProcessPointer ptr) { - if (this.is64Bit) + if (is64Bit) return TranslatePointer64(ptr.To64()); else return TranslatePointer32(ptr.To32()); @@ -698,8 +698,8 @@ namespace ICSharpCode.Profiler.Controller string returnType = parts[3]; IList parameters = parts.Skip(5).ToList(); - lock (this.dataWriter) { - this.dataWriter.WriteMappings(new NameMapping[] {new NameMapping(id, returnType, name, parameters)}); + lock (dataWriter) { + dataWriter.WriteMappings(new NameMapping[] {new NameMapping(id, returnType, name, parameters)}); } return true; @@ -712,8 +712,8 @@ namespace ICSharpCode.Profiler.Controller int id = int.Parse(parts[1], CultureInfo.InvariantCulture); string name = parts[3] + ((string.IsNullOrEmpty(parts[4])) ? "" : " - " + parts[4]); - lock (this.dataWriter) { - this.dataWriter.WriteMappings(new[] {new NameMapping(id, null, name, null)}); + lock (dataWriter) { + dataWriter.WriteMappings(new[] {new NameMapping(id, null, name, null)}); } return true; @@ -726,8 +726,8 @@ namespace ICSharpCode.Profiler.Controller int name = int.Parse(parts[2], CultureInfo.InvariantCulture); string data = parts[3]; - lock (this.dataWriter) { - this.dataWriter.WriteEventData(new[] { new EventDataEntry() { DataSetId = this.dataWriter.DataSetCount, NameId = name, Type = (EventType)type, Data = data } }); + lock (dataWriter) { + dataWriter.WriteEventData(new[] { new EventDataEntry() { DataSetId = dataWriter.DataSetCount, NameId = name, Type = (EventType)type, Data = data } }); } return true; } else { @@ -820,27 +820,27 @@ namespace ICSharpCode.Profiler.Controller stopDC = true; nativeToManagedBuffer.Close(true); try { - this.profilee.Kill(); + profilee.Kill(); } catch (InvalidOperationException) { // can happen if profilee has already exited } if (logger != null && logger.IsAlive) { - this.logger.Join(); + logger.Join(); } if (dataCollector != null && dataCollector.IsAlive) { - this.dataCollector.Join(); + dataCollector.Join(); } - this.fullView.Dispose(); - this.file.Close(); + fullView.Dispose(); + file.Close(); - this.threadListMutex.Close(); - this.accessEventHandle.Close(); + threadListMutex.Close(); + accessEventHandle.Close(); - this.dataWriter.Close(); + dataWriter.Close(); - this.profilee.Dispose(); + profilee.Dispose(); } } @@ -865,13 +865,13 @@ namespace ICSharpCode.Profiler.Controller public override int ProcessorFrequency { get { - return this.profiler.ProcessorFrequency; + return profiler.ProcessorFrequency; } } internal unsafe override void* TranslatePointer(TargetProcessPointer ptr) { - return this.profiler.TranslatePointer(ptr); + return profiler.TranslatePointer(ptr); } } #endregion diff --git a/src/AddIns/Analysis/Profiler/Controller/ProfilerOptions.cs b/src/AddIns/Analysis/Profiler/Controller/ProfilerOptions.cs index 1c443b608c..638b2d8908 100644 --- a/src/AddIns/Analysis/Profiler/Controller/ProfilerOptions.cs +++ b/src/AddIns/Analysis/Profiler/Controller/ProfilerOptions.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; using ICSharpCode.Profiler.Controller.Data; @@ -41,7 +40,7 @@ namespace ICSharpCode.Profiler.Controller /// Gets the performance counters selected for monitoring. /// public PerformanceCounterDescriptor[] Counters { - get { return this.counters; } + get { return counters; } } /// diff --git a/src/AddIns/Analysis/Profiler/Controller/Properties/AssemblyInfo.cs b/src/AddIns/Analysis/Profiler/Controller/Properties/AssemblyInfo.cs index 602c11c3a8..9c67ac314f 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Properties/AssemblyInfo.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Properties/AssemblyInfo.cs @@ -5,7 +5,6 @@ using System; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Security.Permissions; // Allgemeine Informationen über eine Assembly werden über die folgenden // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, diff --git a/src/AddIns/Analysis/Profiler/Controller/Queries/NodePath.cs b/src/AddIns/Analysis/Profiler/Controller/Queries/NodePath.cs index dce6fe2af6..6ca098f4c1 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Queries/NodePath.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Queries/NodePath.cs @@ -58,7 +58,7 @@ namespace ICSharpCode.Profiler.Controller.Queries if (other == null) return false; - return other.lastId == this.lastId && object.Equals(other.previous, this.previous); + return other.lastId == lastId && object.Equals(other.previous, previous); } /// diff --git a/src/AddIns/Analysis/Profiler/Controller/Queries/QueryBase.cs b/src/AddIns/Analysis/Profiler/Controller/Queries/QueryBase.cs index cfb70a6a81..45d04eb71f 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Queries/QueryBase.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Queries/QueryBase.cs @@ -1,10 +1,9 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using ICSharpCode.Profiler.Controller.Data; using System; -using System.Collections.Generic; using System.Linq; +using ICSharpCode.Profiler.Controller.Data; namespace ICSharpCode.Profiler.Controller.Queries { @@ -53,7 +52,7 @@ namespace ICSharpCode.Profiler.Controller.Queries /// public CallTreeNode GetNodeByPath(params int[] nameIds) { - CallTreeNode node = this.Root; + CallTreeNode node = Root; for (int i = 1; i < nameIds.Length; i++) { node = node.Children.FirstOrDefault(n => n.NameMapping.Id == nameIds[i]); diff --git a/src/AddIns/Analysis/Profiler/Controller/Queries/QueryCompiler.cs b/src/AddIns/Analysis/Profiler/Controller/Queries/QueryCompiler.cs index 5769cf865e..9caa0b43ab 100644 --- a/src/AddIns/Analysis/Profiler/Controller/Queries/QueryCompiler.cs +++ b/src/AddIns/Analysis/Profiler/Controller/Queries/QueryCompiler.cs @@ -1,15 +1,14 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using ICSharpCode.Profiler.Controller.Data; using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; -using System.Text; using Microsoft.CSharp; +using ICSharpCode.Profiler.Controller.Data; namespace ICSharpCode.Profiler.Controller.Queries { @@ -69,11 +68,11 @@ namespace ICSharpCode.Profiler.Controller.Queries /// true, if successful, otherwise false. public bool Compile() { - if (string.IsNullOrEmpty(this.currentQuery)) + if (string.IsNullOrEmpty(currentQuery)) return false; lock (queryCache) { - if (!queryCache.ContainsKey(this.currentQuery)) { + if (!queryCache.ContainsKey(currentQuery)) { string code = text + PreprocessString(currentQuery) + textEnd; CompilerResults results = csc.CompileAssemblyFromSource(GetParameters(), code); report(results.Errors.Cast()); @@ -81,7 +80,7 @@ namespace ICSharpCode.Profiler.Controller.Queries if (results.Errors.Count > 0) return false; - queryCache.Add(this.currentQuery, results.CompiledAssembly); + queryCache.Add(currentQuery, results.CompiledAssembly); } else { report(new List().AsEnumerable()); // clear errors list } @@ -101,7 +100,7 @@ namespace ICSharpCode.Profiler.Controller.Queries Assembly assembly; lock (queryCache) - assembly = queryCache[this.currentQuery]; + assembly = queryCache[currentQuery]; QueryBase queryContainer = assembly.CreateInstance("Query") as QueryBase; queryContainer.Provider = provider; @@ -130,7 +129,7 @@ namespace ICSharpCode.Profiler.Controller.Queries cp.OutputAssembly = Path.GetTempFileName(); cp.ReferencedAssemblies.Add("System.dll"); cp.ReferencedAssemblies.Add("System.Core.dll"); - cp.ReferencedAssemblies.Add(this.GetType().Assembly.Location); + cp.ReferencedAssemblies.Add(GetType().Assembly.Location); cp.WarningLevel = 4; cp.TreatWarningsAsErrors = true; diff --git a/src/AddIns/Analysis/Profiler/Controller/structs.cs b/src/AddIns/Analysis/Profiler/Controller/structs.cs index 42ccdfe5d7..1a92af36af 100644 --- a/src/AddIns/Analysis/Profiler/Controller/structs.cs +++ b/src/AddIns/Analysis/Profiler/Controller/structs.cs @@ -2,7 +2,6 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; using System.Globalization; using System.Runtime.InteropServices; @@ -126,7 +125,7 @@ namespace ICSharpCode.Profiler.Controller public override bool Equals(object obj) { if (obj is TargetProcessPointer) { - return ((TargetProcessPointer)obj).pointer.Pointer == this.pointer.Pointer; + return ((TargetProcessPointer)obj).pointer.Pointer == pointer.Pointer; } return false; diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/ICSharpCode.Profiler.AddIn.addin b/src/AddIns/Analysis/Profiler/Frontend/AddIn/ICSharpCode.Profiler.AddIn.addin index 7f0261bd91..03c9fd4cc2 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/ICSharpCode.Profiler.AddIn.addin +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/ICSharpCode.Profiler.AddIn.addin @@ -99,7 +99,7 @@ + class = "ICSharpCode.Profiler.AddIn.Commands.RunSelectedTestsWithProfilerCommand"/> diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Profiler.AddIn.csproj b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Profiler.AddIn.csproj index 9223b8b91e..9725d27709 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Profiler.AddIn.csproj +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Profiler.AddIn.csproj @@ -7,7 +7,7 @@ Library ICSharpCode.Profiler.AddIn ICSharpCode.Profiler.AddIn - v4.0 + v4.5 False False 4 @@ -90,8 +90,8 @@ General.xaml + - ComparisonView.xaml @@ -140,6 +140,14 @@ + + {53DCA265-3C3C-42F9-B647-F72BA678122B} + ICSharpCode.NRefactory.CSharp + + + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371} + ICSharpCode.NRefactory + {2748AD25-9C63-4E12-877B-4DCE96FBED54} ICSharpCode.SharpDevelop diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/CopySelectedData.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/CopySelectedData.cs index a96201f2b4..cc9a671965 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/CopySelectedData.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/CopySelectedData.cs @@ -6,10 +6,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; -using System.Windows.Controls; -using ICSharpCode.Core; -using ICSharpCode.Profiler.AddIn.Views; using ICSharpCode.Profiler.Controls; namespace ICSharpCode.Profiler.AddIn.Commands diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/DomMenuCommand.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/DomMenuCommand.cs index d37fdd0fed..537600046e 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/DomMenuCommand.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/DomMenuCommand.cs @@ -5,9 +5,9 @@ using System; using System.Collections.ObjectModel; using System.Linq; +using ICSharpCode.NRefactory.CSharp; +using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.SharpDevelop; -using ICSharpCode.SharpDevelop.Dom; -using ICSharpCode.SharpDevelop.Dom.CSharp; using ICSharpCode.SharpDevelop.Project; namespace ICSharpCode.Profiler.AddIn.Commands @@ -21,7 +21,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands public abstract override void Run(); - protected IMember GetMemberFromName(IClass c, string name, ReadOnlyCollection parameters) + protected IMember GetMemberFromName(ITypeDefinition c, string name, ReadOnlyCollection parameters) { if (name == null || c == null) return null; @@ -54,7 +54,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands matchWithSameParameterCount = method; bool isCorrect = true; for (int i = 0; i < method.Parameters.Count; i++) { - if (parameters[i] != ambience.Convert(method.Parameters[i])) { + if (parameters[i] != ambience.ConvertVariable(method.Parameters[i])) { isCorrect = false; break; } @@ -67,20 +67,19 @@ namespace ICSharpCode.Profiler.AddIn.Commands return matchWithSameParameterCount ?? matchWithSameName; } - protected IClass GetClassFromName(string name) + protected ITypeDefinition GetClassFromName(string name) { if (name == null) return null; if (ProjectService.OpenSolution == null) return null; - foreach (IProject project in ProjectService.OpenSolution.Projects) { - IProjectContent content = ParserService.GetProjectContent(project); - if (content != null) { - IClass c = content.GetClassByReflectionName(name, true); - if (c != null) - return c; - } + foreach (IProject project in SD.ProjectService.CurrentSolution.Projects) { + ICompilation compilation = SD.ParserService.GetCompilation(project); + IType type = compilation.FindType(new FullTypeName(name)); + ITypeDefinition definition = type.GetDefinition(); + if (definition != null) + return definition; } return null; diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/FindCallsOfSelected.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/FindCallsOfSelected.cs index d5bc8abf48..d9bb150eee 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/FindCallsOfSelected.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/FindCallsOfSelected.cs @@ -3,16 +3,11 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Text; -using System.Windows.Controls; using ICSharpCode.Core; -using ICSharpCode.Profiler.AddIn.Views; using ICSharpCode.Profiler.Controller.Data; using ICSharpCode.Profiler.Controller.Queries; -using ICSharpCode.Profiler.Controls; namespace ICSharpCode.Profiler.AddIn.Commands { diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/FindReferences.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/FindReferences.cs index 84e570fd70..259804f11f 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/FindReferences.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/FindReferences.cs @@ -3,8 +3,7 @@ using System; using System.Linq; -using ICSharpCode.Core; -using ICSharpCode.SharpDevelop.Dom; +using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Refactoring; @@ -22,7 +21,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands if (selectedItem == null) return; - IClass c = GetClassFromName(selectedItem.FullyQualifiedClassName); + ITypeDefinition c = GetClassFromName(selectedItem.FullyQualifiedClassName); if (c == null) return; @@ -35,9 +34,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands string memberName = member.DeclaringType.Name + "." + member.Name; using (AsynchronousWaitDialog monitor = AsynchronousWaitDialog.ShowWaitDialog("${res:SharpDevelop.Refactoring.FindReferences}")) { - FindReferencesAndRenameHelper.ShowAsSearchResults( - StringParser.Parse("${res:SharpDevelop.Refactoring.ReferencesTo}", new StringTagPair("Name", memberName)), - RefactoringService.FindReferences(member, monitor)); + FindReferencesAndRenameHelper.RunFindReferences(member); } } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/GoToDefinition.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/GoToDefinition.cs index e4d23f92f8..77a30e63e7 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/GoToDefinition.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/GoToDefinition.cs @@ -3,8 +3,9 @@ using System; using System.Linq; +using ICSharpCode.Core; +using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.SharpDevelop; -using ICSharpCode.SharpDevelop.Dom; namespace ICSharpCode.Profiler.AddIn.Commands { @@ -19,14 +20,13 @@ namespace ICSharpCode.Profiler.AddIn.Commands public override void Run() { var selectedItem = GetSelectedItems().FirstOrDefault(); - if (selectedItem != null) { - IClass c = GetClassFromName(selectedItem.FullyQualifiedClassName); + ITypeDefinition c = GetClassFromName(selectedItem.FullyQualifiedClassName); if (c != null) { - IEntity member = GetMemberFromName(c, selectedItem.MethodName, selectedItem.Parameters); - FilePosition position = c.ProjectContent.GetPosition(member ?? c); - if (!position.IsEmpty && !string.IsNullOrEmpty(position.FileName)) { - FileService.JumpToFilePosition(position.FileName, position.Line, position.Column); + IMember member = GetMemberFromName(c, selectedItem.MethodName, selectedItem.Parameters); + if (!member.Region.IsEmpty && !string.IsNullOrEmpty(member.Region.FileName)) { + FileName fn = new FileName(member.Region.FileName); + SD.FileService.JumpToFilePosition(fn, member.Region.BeginLine, member.Region.BeginColumn); } } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfileExecutable.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfileExecutable.cs index b18c3c27f2..a4d5affd8d 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfileExecutable.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfileExecutable.cs @@ -3,8 +3,8 @@ using System; using ICSharpCode.Core; +using ICSharpCode.SharpDevelop; using ICSharpCode.Profiler.AddIn.Dialogs; -using ICSharpCode.SharpDevelop.Gui; namespace ICSharpCode.Profiler.AddIn.Commands { @@ -19,7 +19,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands public override void Run() { ProfileExecutableForm form = new ProfileExecutableForm(); - form.Owner = WorkbenchSingleton.MainWindow; + form.Owner = SD.Workbench.MainWindow; form.ShowDialog(); } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfileProject.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfileProject.cs index c6f72a9512..a2585b1ca1 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfileProject.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfileProject.cs @@ -8,7 +8,6 @@ using ICSharpCode.SharpDevelop.Project; namespace ICSharpCode.Profiler.AddIn.Commands { - using ICSharpCode.Profiler.Controller; /// /// Description of RunProject diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfilerMenuCommand.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfilerMenuCommand.cs index 155c0cc5dc..127e484d09 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfilerMenuCommand.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ProfilerMenuCommand.cs @@ -5,12 +5,11 @@ using System; using System.Collections.Generic; using System.Linq; using System.Windows; -using System.Windows.Controls; using System.Windows.Shapes; using ICSharpCode.Core; -using ICSharpCode.Profiler.AddIn.Views; using ICSharpCode.Profiler.Controls; +using ICSharpCode.Profiler.AddIn.Views; namespace ICSharpCode.Profiler.AddIn.Commands { diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/RunTestWithProfilerCommand.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/RunTestWithProfilerCommand.cs index 3c6f44892a..e77a275381 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/RunTestWithProfilerCommand.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/RunTestWithProfilerCommand.cs @@ -1,16 +1,24 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using ICSharpCode.SharpDevelop.Project; +using System.Collections.Generic; +using System.Linq; +using ICSharpCode.Core; +using ICSharpCode.Profiler.Controller; +using ICSharpCode.Profiler.Controller.Data; +using ICSharpCode.SharpDevelop; using ICSharpCode.UnitTesting; namespace ICSharpCode.Profiler.AddIn.Commands { - public class RunTestWithProfilerCommand : AbstractRunTestCommand + public class RunSelectedTestsWithProfilerCommand : AbstractMenuCommand { - protected override ITestRunner CreateTestRunner(IProject project) + public override void Run() { - return new ProfilerTestRunner(); + ITestService testService = SD.GetRequiredService(); + IEnumerable tests = TestableCondition.GetTests(testService.OpenSolution, Owner); + string path = tests.FirstOrDefault().ParentProject.Project.GetSessionFileName(); + testService.RunTestsAsync(tests, new TestExecutionOptions { ProcessRunner = new ProfilerProcessRunner(new ProfilingDataSQLiteWriter(path), new ProfilerOptions()) }).FireAndForget(); } } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/SetAsRoot.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/SetAsRoot.cs index ea21364714..873b77e7fd 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/SetAsRoot.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/SetAsRoot.cs @@ -3,16 +3,11 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Text; -using System.Windows.Controls; using ICSharpCode.Core; -using ICSharpCode.Profiler.AddIn.Views; using ICSharpCode.Profiler.Controller.Data; using ICSharpCode.Profiler.Controller.Queries; -using ICSharpCode.Profiler.Controls; namespace ICSharpCode.Profiler.AddIn.Commands { diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ShowFunctions.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ShowFunctions.cs index 6fb43bdd93..26744647fb 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ShowFunctions.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/ShowFunctions.cs @@ -2,15 +2,10 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; using System.Linq; -using System.Windows.Controls; using ICSharpCode.Core; -using ICSharpCode.Profiler.AddIn.Views; -using ICSharpCode.Profiler.Controller; using ICSharpCode.Profiler.Controls; -using ICSharpCode.SharpDevelop; namespace ICSharpCode.Profiler.AddIn.Commands { diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Dialogs/ProfileExecutableForm.xaml.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Dialogs/ProfileExecutableForm.xaml.cs index c0e62ee062..8eca6a0cc1 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Dialogs/ProfileExecutableForm.xaml.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Dialogs/ProfileExecutableForm.xaml.cs @@ -11,7 +11,6 @@ using ICSharpCode.Core; using ICSharpCode.Profiler.Controller; using ICSharpCode.Profiler.Controller.Data; using ICSharpCode.SharpDevelop; -using ICSharpCode.SharpDevelop.Gui; using Microsoft.Win32; namespace ICSharpCode.Profiler.AddIn.Dialogs @@ -28,7 +27,7 @@ namespace ICSharpCode.Profiler.AddIn.Dialogs void btnCancelClick(object sender, RoutedEventArgs e) { - this.Close(); + Close(); } void btnStartClick(object sender, RoutedEventArgs e) @@ -58,13 +57,13 @@ namespace ICSharpCode.Profiler.AddIn.Dialogs if (runner != null) { runner.RunFinished += delegate { - WorkbenchSingleton.SafeThreadCall(() => FileService.OpenFile(outputPath)); + SD.MainThread.InvokeIfRequired(() => FileService.OpenFile(outputPath)); }; runner.Run(); } - this.Close(); + Close(); } catch (ProfilerException ex) { MessageService.ShowError(ex.Message); } diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Dialogs/ProfilerControlWindow.xaml.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Dialogs/ProfilerControlWindow.xaml.cs index d6c7f58032..4bf2f2e32c 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Dialogs/ProfilerControlWindow.xaml.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Dialogs/ProfilerControlWindow.xaml.cs @@ -1,17 +1,9 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using ICSharpCode.Core; using System; -using System.Collections.Generic; -using System.Text; using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using ICSharpCode.Profiler.Controller; +using ICSharpCode.Core; namespace ICSharpCode.Profiler.AddIn.Dialogs { @@ -34,7 +26,7 @@ namespace ICSharpCode.Profiler.AddIn.Dialogs void CollectDataChecked(object sender, RoutedEventArgs e) { try { - this.runner.Profiler.EnableDataCollection(); + runner.Profiler.EnableDataCollection(); } catch (Exception ex) { MessageService.ShowException(ex); } @@ -43,7 +35,7 @@ namespace ICSharpCode.Profiler.AddIn.Dialogs void CollectDataUnchecked(object sender, RoutedEventArgs e) { try { - this.runner.Profiler.DisableDataCollection(); + runner.Profiler.DisableDataCollection(); } catch (Exception ex) { MessageService.ShowException(ex); } @@ -51,8 +43,8 @@ namespace ICSharpCode.Profiler.AddIn.Dialogs void ShutdownClick(object sender, RoutedEventArgs e) { - this.AllowClose = true; - this.runner.Stop(); + AllowClose = true; + runner.Stop(); } void WindowClosing(object sender, System.ComponentModel.CancelEventArgs e) diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Extensions.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Extensions.cs index f064201fd3..118eaaff00 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Extensions.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Extensions.cs @@ -1,7 +1,6 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using ICSharpCode.SharpDevelop.Gui; using System; using System.Globalization; using System.IO; @@ -34,15 +33,14 @@ namespace ICSharpCode.Profiler.AddIn if (!File.Exists(path)) return; FileService.OpenFile(path); - if (!project.ReadOnly) { + if (!project.IsReadOnly) { FileProjectItem file = new FileProjectItem(project, ItemType.Content, "ProfilingSessions\\" + Path.GetFileName(path)); ProjectService.AddProjectItem(project, file); ProjectBrowserPad.RefreshViewAsync(); project.Save(); } }; - - WorkbenchSingleton.SafeThreadCall(updater); + SD.MainThread.InvokeIfRequired(updater); } } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/OptionPanels/General.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/OptionPanels/General.cs index 457f9a1c79..e7013af155 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/OptionPanels/General.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/OptionPanels/General.cs @@ -2,15 +2,8 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; -using System.Windows.Forms; -using System.Windows.Forms.Integration; -using ICSharpCode.Core; -using ICSharpCode.Profiler.Controller; -using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; -using System.Windows.Threading; namespace ICSharpCode.Profiler.AddIn.OptionPanels { diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/OptionPanels/OptionWrapper.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/OptionPanels/OptionWrapper.cs index fa8feb2fbe..faa351e1be 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/OptionPanels/OptionWrapper.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/OptionPanels/OptionWrapper.cs @@ -4,13 +4,13 @@ using System; using ICSharpCode.Core; using ICSharpCode.Profiler.Controller; -using ICSharpCode.Profiler.Controller.Data; +using ICSharpCode.SharpDevelop; namespace ICSharpCode.Profiler.AddIn.OptionPanels { public static class OptionWrapper { - static Properties properties = PropertyService.Get("ProfilerOptions", new Properties()); + static Properties properties = SD.PropertyService.Get("ProfilerOptions", new Properties()); public static int SharedMemorySize { get { return properties.Get("SharedMemorySize", ProfilerOptions.DefaultSharedMemorySize) / 1024 / 1024; } diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerProcessRunner.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerProcessRunner.cs new file mode 100644 index 0000000000..9a7d98568b --- /dev/null +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerProcessRunner.cs @@ -0,0 +1,139 @@ +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using ICSharpCode.Profiler.Controller; +using ICSharpCode.Profiler.Controller.Data; +using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Gui; + +namespace ICSharpCode.Profiler.AddIn +{ + /// + /// Description of ProfilerProcessRunner. + /// + public class ProfilerProcessRunner : IProcessRunner + { + ProcessStartInfo psi; + ProfilerRunner profilerRunner; + Process runningProcess; + IProfilingDataWriter writer; + ProfilerOptions options; + readonly object lockObj = new object(); + bool wasStarted; + + public ProfilerProcessRunner(IProfilingDataWriter writer, ProfilerOptions options) + { + if (writer == null) + throw new ArgumentNullException("writer"); + if (options == null) + throw new ArgumentNullException("options"); + this.writer = writer; + this.options = options; + this.psi = new ProcessStartInfo(); + wasStarted = false; + } + + public Task RunInOutputPadAsync(MessageViewCategory outputCategory, string program, params string[] arguments) + { + throw new NotImplementedException(); + } + + public void Start(string program, params string[] arguments) + { + lock (lockObj) { + if (wasStarted) + throw new InvalidOperationException(); + + profilerRunner = new ProfilerRunner(psi, true, writer); + profilerRunner.RunFinished += delegate { hasExited = true; }; + runningProcess = profilerRunner.Run(); + wasStarted = true; + } + } + + public void StartCommandLine(string commandLine) + { + string[] args = ProcessRunner.CommandLineToArgumentArray(commandLine); + Start(args.FirstOrDefault() ?? "", args.Skip(1).ToArray()); + } + + public void Kill() + { + profilerRunner.Stop(); + } + + TaskCompletionSource waitForExitTCS; + bool hasExited; + + public Task WaitForExitAsync() + { + if (hasExited) + return Task.FromResult(true); + if (!wasStarted) + throw new InvalidOperationException("Process was not yet started"); + lock (lockObj) { + if (waitForExitTCS != null) { + waitForExitTCS = new TaskCompletionSource(); + profilerRunner.RunFinished += delegate { waitForExitTCS.SetResult(null); }; + } + } + return waitForExitTCS.Task; + } + + public StreamReader OpenStandardOutputReader() + { + return runningProcess.StandardOutput; + } + + public StreamReader OpenStandardErrorReader() + { + return runningProcess.StandardError; + } + + public string WorkingDirectory { + get { return psi.WorkingDirectory; } + set { psi.WorkingDirectory = value; } + } + + public ProcessCreationFlags CreationFlags { get; set; } + + public IDictionary EnvironmentVariables { get; set; } + + public bool RedirectStandardOutput { get; set; } + + public bool RedirectStandardError { get; set; } + + public bool RedirectStandardOutputAndErrorToSingleStream { get; set; } + + public Stream StandardOutput { + get { + if (runningProcess == null) + throw new InvalidOperationException("Cannot access StdOut of process, because it is not yet started!"); + return null;//runningProcess.StandardOutput; + } + } + public Stream StandardError { + get { + if (runningProcess == null) + throw new InvalidOperationException("Cannot access StdErr of process, because it is not yet started!"); + return null;//runningProcess.StandardError; + } + } + + bool disposed = false; + + public void Dispose() + { + if (!disposed) { + profilerRunner.Dispose(); + disposed = true; + } + } + } +} diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerRunner.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerRunner.cs index 42e2f77049..ad2182311f 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerRunner.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerRunner.cs @@ -9,6 +9,7 @@ using ICSharpCode.Core; using ICSharpCode.Profiler.AddIn.Dialogs; using ICSharpCode.Profiler.AddIn.OptionPanels; using ICSharpCode.Profiler.Controller.Data; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Project; @@ -17,7 +18,7 @@ namespace ICSharpCode.Profiler.AddIn /// /// Description of ProfilerRunner. /// - public class ProfilerRunner + public class ProfilerRunner : IDisposable { public event EventHandler RunFinished; ProfilerControlWindow controlWindow; @@ -80,8 +81,7 @@ namespace ICSharpCode.Profiler.AddIn try { using (AsynchronousWaitDialog dlg = AsynchronousWaitDialog.ShowWaitDialog(StringParser.Parse("${res:AddIns.Profiler.Messages.PreparingForAnalysis}"), true)) { profiler.Dispose(); - - WorkbenchSingleton.SafeThreadAsyncCall(() => { controlWindow.AllowClose = true; this.controlWindow.Close(); }); + SD.MainThread.InvokeAsyncAndForget(() => { controlWindow.AllowClose = true; controlWindow.Close(); }); if (database != null) { database.WriteTo(writer, progress => { dlg.Progress = progress; @@ -101,12 +101,13 @@ namespace ICSharpCode.Profiler.AddIn } } - public void Run() + public Process Run() { - WorkbenchSingleton.Workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront(); - this.controlWindow = new ProfilerControlWindow(this); - profiler.Start(); - this.controlWindow.Show(); + SD.Workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront(); + controlWindow = new ProfilerControlWindow(this); + Process p = profiler.Start(); + controlWindow.Show(); + return p; } public void Stop() @@ -148,7 +149,7 @@ namespace ICSharpCode.Profiler.AddIn } #region MessageView Management - static MessageViewCategory profileCategory = null; + static MessageViewCategory profileCategory; static void EnsureProfileCategory() { @@ -175,5 +176,17 @@ namespace ICSharpCode.Profiler.AddIn profileCategory.AppendLine(StringParser.Parse(text)); } #endregion + + bool isDisposed = false; + + public void Dispose() + { + if (!isDisposed) { + profiler.Dispose(); + controlWindow.Close(); + + isDisposed = true; + } + } } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerTestRunner.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerTestRunner.cs deleted file mode 100644 index f189bb7f90..0000000000 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerTestRunner.cs +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) -// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using ICSharpCode.Core; -using ICSharpCode.Profiler.AddIn; -using ICSharpCode.Profiler.Controller.Data; -using ICSharpCode.SharpDevelop; -using ICSharpCode.SharpDevelop.Dom; -using ICSharpCode.SharpDevelop.Gui; -using ICSharpCode.UnitTesting; - -namespace ICSharpCode.Profiler.AddIn -{ - public class ProfilerTestRunner : TestRunnerBase - { - ProfilerRunner runner; - UnitTestingOptions options = new UnitTestingOptions(); - TestResultsMonitor testResultsMonitor; - - public ProfilerTestRunner() - { - } - - public override void Start(SelectedTests selectedTests) - { - ProcessStartInfo startInfo = GetProcessStartInfo(selectedTests); - Start(startInfo, selectedTests); - } - - protected override ProcessStartInfo GetProcessStartInfo(SelectedTests selectedTests) - { - NUnitConsoleApplication app = new NUnitConsoleApplication(selectedTests, options); - testResultsMonitor = new TestResultsMonitor(); - app.Results = testResultsMonitor.FileName; - return app.GetProcessStartInfo(); - } - - void Start(ProcessStartInfo startInfo, SelectedTests selectedTests) - { - LogCommandLine(startInfo); - - string path = selectedTests.Project.GetSessionFileName(); - - LoggingService.Info("starting profiler..."); - - runner = new ProfilerRunner(startInfo, true, new UnitTestWriter(new ProfilingDataSQLiteWriter(path), GetUnitTestNames(selectedTests).ToArray())); - - runner.RunFinished += delegate { - WorkbenchSingleton.SafeThreadCall(() => FileService.OpenFile(path)); - AfterFinish(selectedTests, path); - }; - - testResultsMonitor.TestFinished += OnTestFinished; - testResultsMonitor.Start(); - runner.Run(); - } - - IEnumerable GetUnitTestNames(SelectedTests selectedTests) - { - IProjectContent content = ParserService.GetProjectContent(selectedTests.Project); - - if (selectedTests.Class == null) { - var testClasses = content.Classes - .Where(c => c.Attributes.Any(a => a.AttributeType.FullyQualifiedName == "NUnit.Framework.TestFixtureAttribute")); - return testClasses - .SelectMany(c2 => c2.Methods) - .Where(m => m.Attributes.Any(a2 => a2.AttributeType.FullyQualifiedName == "NUnit.Framework.TestAttribute")) - .Select(m2 => m2.FullyQualifiedName); - } - - if (selectedTests.Member == null) { - return content.Classes.First(c => c.FullyQualifiedName == selectedTests.Class.DotNetName).Methods - .Where(m => m.Attributes.Any(a2 => a2.AttributeType.FullyQualifiedName == "NUnit.Framework.TestAttribute")) - .Select(m2 => m2.FullyQualifiedName); - } - - return new[] { selectedTests.Class.DotNetName + "." + selectedTests.Member.Name }; - } - - void AfterFinish(SelectedTests selectedTests, string path) - { - selectedTests.Project.AddSessionToProject(path); - OnAllTestsFinished(this, new EventArgs()); - LoggingService.Info("shutting profiler down..."); - } - - public override void Stop() - { - if (this.runner != null && this.runner.Profiler.IsRunning) { - LoggingService.Info("stopping profiler..."); - runner.Stop(); - } - - if (testResultsMonitor != null) { - testResultsMonitor.Stop(); - testResultsMonitor.Read(); - testResultsMonitor = null; - } - } - - public override void Dispose() - { - Stop(); - } - } -} diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ComparisonView.xaml.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ComparisonView.xaml.cs index 2a9fe8213d..48feeab351 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ComparisonView.xaml.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ComparisonView.xaml.cs @@ -2,14 +2,7 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; -using System.Text; -using System.Windows; using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; namespace ICSharpCode.Profiler.AddIn.Views { diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ProfilerDisplayBinding.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ProfilerDisplayBinding.cs index e7230c3ea1..b44bf76f29 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ProfilerDisplayBinding.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ProfilerDisplayBinding.cs @@ -7,6 +7,7 @@ using ICSharpCode.Core; using ICSharpCode.Profiler.Controller.Data; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Profiler.AddIn.Views { @@ -24,7 +25,7 @@ namespace ICSharpCode.Profiler.AddIn.Views return true; // definition in .addin does extension-based filtering } - public ICSharpCode.SharpDevelop.Gui.IViewContent CreateContentForFile(OpenedFile file) + public IViewContent CreateContentForFile(OpenedFile file) { ProfilingDataSQLiteProvider provider; try { @@ -46,12 +47,17 @@ namespace ICSharpCode.Profiler.AddIn.Views return new WpfViewer(file, provider); } - public bool IsPreferredBindingForFile(string fileName) + public bool IsPreferredBindingForFile(FileName fileName) { return true; } - public double AutoDetectFileContent(string fileName, Stream fileContent, string detectedMimeType) + public bool CanCreateContentForFile(FileName fileName) + { + return fileName.GetExtension().Equals(".sdps", StringComparison.OrdinalIgnoreCase); + } + + public double AutoDetectFileContent(FileName fileName, Stream fileContent, string detectedMimeType) { return 1; } diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ProfilerView.xaml.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ProfilerView.xaml.cs index ee232948b8..bc30e95ad5 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ProfilerView.xaml.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/ProfilerView.xaml.cs @@ -52,7 +52,7 @@ namespace ICSharpCode.Profiler.AddIn.Views } } - this.dummyTab.Header = new Image { Source = PresentationResourceService.GetImage("Icons.16x16.NewDocumentIcon").Source, Height = 16, Width = 16 }; + this.dummyTab.Header = new Image { Source = SD.ResourceService.GetImage("Icons.16x16.NewDocumentIcon").ImageSource, Height = 16, Width = 16 }; this.CommandBindings.Add(new CommandBinding(ApplicationCommands.SelectAll, ExecuteSelectAll, CanExecuteSelectAll)); @@ -62,7 +62,7 @@ namespace ICSharpCode.Profiler.AddIn.Views void TimeLineRangeChanged(object sender, RangeEventArgs e) { - foreach (TabItem item in this.tabView.Items) { + foreach (TabItem item in tabView.Items) { if (item != null && item.Content != null) ((QueryView)item.Content).SetRange(e.StartIndex, e.EndIndex); } @@ -76,9 +76,9 @@ namespace ICSharpCode.Profiler.AddIn.Views void DoSelectAll() { - if (this.timeLine.IsEnabled) { - this.timeLine.SelectedStartIndex = 0; - this.timeLine.SelectedEndIndex = this.timeLine.Provider.DataSets.Count - 1; + if (timeLine.IsEnabled) { + timeLine.SelectedStartIndex = 0; + timeLine.SelectedEndIndex = timeLine.Provider.DataSets.Count - 1; } } @@ -90,7 +90,7 @@ namespace ICSharpCode.Profiler.AddIn.Views void CanDoSelectAll(CanExecuteRoutedEventArgs e) { - e.CanExecute = this.timeLine.IsEnabled && this.timeLine.Provider.DataSets.Count > 0; + e.CanExecute = timeLine.IsEnabled && timeLine.Provider.DataSets.Count > 0; } void CloseButtonClick(object sender, RoutedEventArgs e) @@ -104,16 +104,14 @@ namespace ICSharpCode.Profiler.AddIn.Views void UpdateErrorList(IEnumerable errors) { Dispatcher.Invoke( - (Action)( - () => { - var tasks = errors.Select(error => new Task(null, error.ErrorText, error.Column, error.Line, (error.IsWarning) ? TaskType.Warning : TaskType.Error)).ToList(); - if (tasks.Count > 0) { - WorkbenchSingleton.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront(); - TaskService.ClearExceptCommentTasks(); - TaskService.AddRange(tasks); - } + (Action)delegate { + List tasks = errors.Select(error => new SDTask(null, error.ErrorText, error.Column, error.Line, (error.IsWarning) ? TaskType.Warning : TaskType.Error)).ToList(); + if (tasks.Count > 0) { + SD.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront(); + TaskService.ClearExceptCommentTasks(); + TaskService.AddRange(tasks); } - ) + } ); } @@ -159,8 +157,8 @@ namespace ICSharpCode.Profiler.AddIn.Views provider.SetProperty("tabs", tabs.CreateSeparatedString()); List queryHistory = new List(); - for (int i = 2; i < this.mnuQueryHistory.Items.Count; i++) - queryHistory.Add((this.mnuQueryHistory.Items[i] as MenuItem).Header.ToString() ?? string.Empty); + for (int i = 2; i < mnuQueryHistory.Items.Count; i++) + queryHistory.Add((mnuQueryHistory.Items[i] as MenuItem).Header.ToString() ?? string.Empty); provider.SetProperty("queryHistory", queryHistory.CreateSeparatedString()); } @@ -172,7 +170,7 @@ namespace ICSharpCode.Profiler.AddIn.Views TabItem CreateTab(string title, string query, bool switchToNewTab) { TabItem newTab = new TabItem(); - Button closeButton = new Button { Style = this.Resources["CloseButton"] as Style }; + Button closeButton = new Button { Style = Resources["CloseButton"] as Style }; TextBlock header = new TextBlock { Margin = new Thickness(0, 0, 4, 0), MaxWidth = 120, MinWidth = 40 }; newTab.Header = new StackPanel { Orientation = Orientation.Horizontal, Children = { header, closeButton } }; @@ -184,9 +182,9 @@ namespace ICSharpCode.Profiler.AddIn.Views newTab.Content = view = new QueryView(); - view.Provider = this.provider; + view.Provider = provider; view.Reporter = new ErrorReporter(UpdateErrorList); - view.SetRange(this.timeLine.SelectedStartIndex, this.timeLine.SelectedEndIndex); + view.SetRange(timeLine.SelectedStartIndex, timeLine.SelectedEndIndex); view.CurrentQuery = query; view.ShowQueryItems = true; diff --git a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/WpfViewer.cs b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/WpfViewer.cs index 1a2ff64711..99d008188f 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/WpfViewer.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Views/WpfViewer.cs @@ -1,19 +1,15 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using ICSharpCode.Core; using System; using System.IO; -using System.Windows.Forms; -using System.Windows.Forms.Integration; -using ICSharpCode.Core.Presentation; +using ICSharpCode.Core; using ICSharpCode.Profiler.Controller.Data; using ICSharpCode.SharpDevelop; -using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Profiler.AddIn.Views { - using ICSharpCode.Profiler.Controller; /// /// Description of the view content @@ -66,7 +62,7 @@ namespace ICSharpCode.Profiler.AddIn.Views { if (FileUtility.IsEqualFileName(e.FileName, file.FileName) || FileUtility.IsBaseDirectory(e.FileName, file.FileName)) - this.WorkbenchWindow.CloseWindow(true); + WorkbenchWindow.CloseWindow(true); } /// @@ -74,8 +70,8 @@ namespace ICSharpCode.Profiler.AddIn.Views /// public override void Dispose() { - this.dataView.SaveUserState(); - this.provider.Close(); + dataView.SaveUserState(); + provider.Close(); FileService.FileRemoving -= FileServiceFileRemoving; base.Dispose(); diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/CallTreeNodeViewModel.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/CallTreeNodeViewModel.cs index e372fad47c..c5a7bc123d 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/CallTreeNodeViewModel.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/CallTreeNodeViewModel.cs @@ -22,7 +22,7 @@ namespace ICSharpCode.Profiler.Controls protected void OnPropertyChanged(string name) { - if (this.PropertyChanged != null) + if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(name)); } @@ -61,7 +61,7 @@ namespace ICSharpCode.Profiler.Controls void BringIntoView(CallTreeNodeViewModel item) { - if (this.parent != null) { + if (parent != null) { parent.BringIntoView(item); return; } @@ -89,10 +89,10 @@ namespace ICSharpCode.Profiler.Controls public virtual double TimePercentageOfParent { get { - if (this.parent == null) + if (parent == null) return 1; else - return (double)this.node.CpuCyclesSpent / (double)this.parent.node.CpuCyclesSpent; + return (double)node.CpuCyclesSpent / (double)parent.node.CpuCyclesSpent; } } @@ -168,7 +168,7 @@ namespace ICSharpCode.Profiler.Controls public ReadOnlyCollection Parameters { get { - return new ReadOnlyCollection(this.node.Parameters); + return new ReadOnlyCollection(node.Parameters); } } @@ -196,15 +196,15 @@ namespace ICSharpCode.Profiler.Controls public virtual ReadOnlyCollection Children { get { lock (this) { - if (this.children == null) { + if (children == null) { - this.children = this.node.Children + children = node.Children .Select(c => new CallTreeNodeViewModel(c, this)) .ToList() .AsReadOnly(); } - return this.children; + return children; } } } @@ -212,14 +212,14 @@ namespace ICSharpCode.Profiler.Controls public virtual string Name { get { - return this.node.Name ?? string.Empty; + return node.Name ?? string.Empty; } } public virtual string FullyQualifiedClassName { get { - string nodeName = this.node.Name; + string nodeName = node.Name; if (string.IsNullOrEmpty(nodeName)) return null; if (!nodeName.Contains(".")) @@ -234,7 +234,7 @@ namespace ICSharpCode.Profiler.Controls public virtual string MethodName { get { - string nodeName = this.node.Name; + string nodeName = node.Name; if (string.IsNullOrEmpty(nodeName)) return null; if (!nodeName.Contains(".")) @@ -249,9 +249,9 @@ namespace ICSharpCode.Profiler.Controls public virtual string ShortName { get { - string className = this.FullyQualifiedClassName; + string className = FullyQualifiedClassName; if (className == null) - return this.Name; + return Name; int index = className.LastIndexOf('.'); return className.Substring(index + 1) + "." + MethodName; } @@ -265,7 +265,7 @@ namespace ICSharpCode.Profiler.Controls if (isExpanded != value) { isExpanded = value; OnPropertyChanged("IsExpanded"); - this.IsExpandedChanged(new NodeEventArgs(this)); + IsExpandedChanged(new NodeEventArgs(this)); if (isExpanded) { DeselectChildren(children); @@ -285,7 +285,7 @@ namespace ICSharpCode.Profiler.Controls void IsExpandedChanged(NodeEventArgs e) { - this.visibleElementCount = 1 + (IsExpanded ? Children.Sum(c => c.VisibleElementCount) : 0); + visibleElementCount = 1 + (IsExpanded ? Children.Sum(c => c.VisibleElementCount) : 0); OnVisibleChildExpandedChanged(e); if (Parent != null && Parent.IsExpanded) { @@ -318,7 +318,7 @@ namespace ICSharpCode.Profiler.Controls //this.IsSelectedChanged(this); if (isSelected) { - CallTreeNodeViewModel node = this.Parent; + CallTreeNodeViewModel node = Parent; while (node != null) { node.IsExpanded = true; node = node.Parent; @@ -394,7 +394,7 @@ namespace ICSharpCode.Profiler.Controls public virtual int VisibleElementCount { get { - return this.visibleElementCount; + return visibleElementCount; } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/CompareView.xaml.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/CompareView.xaml.cs index 4e9bcd486c..c5346719b5 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/CompareView.xaml.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/CompareView.xaml.cs @@ -2,14 +2,7 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; -using System.Text; -using System.Windows; using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; namespace ICSharpCode.Profiler.Controls { diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/CustomGridView.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/CustomGridView.cs index 2ab0dcd771..c0ba2250b8 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/CustomGridView.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/CustomGridView.cs @@ -3,7 +3,6 @@ using System; using System.ComponentModel; -using System.Diagnostics; using System.Windows; using System.Windows.Controls; using System.Windows.Markup; @@ -41,7 +40,7 @@ namespace ICSharpCode.Profiler.Controls GridViewColumn primaryColumn; - private GridViewColumn PrimaryColumn { + GridViewColumn PrimaryColumn { get { return primaryColumn; } set { if (primaryColumn != value) { @@ -153,7 +152,7 @@ namespace ICSharpCode.Profiler.Controls } } - protected override System.Windows.Media.Visual GetVisualChild(int index) + protected override Visual GetVisualChild(int index) { return uiElements[index]; } diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/ExtendedTimeLineControl.xaml.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/ExtendedTimeLineControl.xaml.cs index 7e51674c80..972dd1a6c6 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/ExtendedTimeLineControl.xaml.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/ExtendedTimeLineControl.xaml.cs @@ -3,18 +3,8 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Text; using System.Linq; -using System.Windows; using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; using ICSharpCode.Profiler.Controller.Data; @@ -36,26 +26,26 @@ namespace ICSharpCode.Profiler.Controls public ProfilingDataProvider Provider { - get { return this.provider; } + get { return provider; } set { - this.provider = value; + provider = value; - this.perfCounterList.ItemsSource = this.provider.GetPerformanceCounters(); - this.perfCounterList.SelectedIndex = 0; - this.timeLine.Provider = provider; + perfCounterList.ItemsSource = provider.GetPerformanceCounters(); + perfCounterList.SelectedIndex = 0; + timeLine.Provider = provider; Update(); } } public int SelectedStartIndex { - get { return this.timeLine.SelectedStartIndex; } - set { this.timeLine.SelectedStartIndex = value; } + get { return timeLine.SelectedStartIndex; } + set { timeLine.SelectedStartIndex = value; } } public int SelectedEndIndex { - get { return this.timeLine.SelectedEndIndex; } - set { this.timeLine.SelectedEndIndex = value; } + get { return timeLine.SelectedEndIndex; } + set { timeLine.SelectedEndIndex = value; } } public event EventHandler RangeChanged; @@ -68,29 +58,29 @@ namespace ICSharpCode.Profiler.Controls void Update() { - this.timeLine.ValuesList.Clear(); + timeLine.ValuesList.Clear(); - var selectedPerformanceCounter = this.perfCounterList.SelectedItem as PerformanceCounterDescriptor; + var selectedPerformanceCounter = perfCounterList.SelectedItem as PerformanceCounterDescriptor; if (selectedPerformanceCounter == null) return; List segments = new List(); - var values = this.provider.GetPerformanceCounterValues(this.perfCounterList.SelectedIndex); - var markers = this.provider.DataSets.Select(item => item.IsFirst).ToArray(); + var values = provider.GetPerformanceCounterValues(perfCounterList.SelectedIndex); + var markers = provider.DataSets.Select(item => item.IsFirst).ToArray(); - this.timeLine.MaxValue = selectedPerformanceCounter.MaxValue ?? (values.Any() ? values.Max() : 0); + timeLine.MaxValue = selectedPerformanceCounter.MaxValue ?? (values.Any() ? values.Max() : 0); - this.maxLabel.Text = (selectedPerformanceCounter.MaxValue ?? (values.Any() ? values.Max() : 0)).ToString("0"); - this.minLabel.Text = (selectedPerformanceCounter.MinValue ?? (values.Any() ? values.Min() : 0)).ToString("0"); + maxLabel.Text = (selectedPerformanceCounter.MaxValue ?? (values.Any() ? values.Max() : 0)).ToString("0"); + minLabel.Text = (selectedPerformanceCounter.MinValue ?? (values.Any() ? values.Min() : 0)).ToString("0"); - this.unitLabel.Text = this.timeLine.Unit = selectedPerformanceCounter.Unit; - this.timeLine.Format = selectedPerformanceCounter.Format; + unitLabel.Text = timeLine.Unit = selectedPerformanceCounter.Unit; + timeLine.Format = selectedPerformanceCounter.Format; for (int i = 0; i < values.Length; i++) segments.Add(new TimeLineSegment() { Value = values[i], DisplayMarker = markers[i], Events = provider.GetEventDataEntries(i) }); - this.timeLine.ValuesList.AddRange(segments); + timeLine.ValuesList.AddRange(segments); } void PerfCounterListSelectionChanged(object sender, SelectionChangedEventArgs e) diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/HSVColor.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/HSVColor.cs index 0fb3029a54..2205ed4af4 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/HSVColor.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/HSVColor.cs @@ -13,14 +13,14 @@ namespace ICSharpCode.Profiler.Controls public float Hue { get { return hue; } - set { this.hue = value; } + set { hue = value; } } float saturation; public float Saturation { get { return saturation; } - set { this.saturation = value; } + set { saturation = value; } } float value; @@ -74,34 +74,34 @@ namespace ICSharpCode.Profiler.Controls public Color ToColor() { - if (!InInterval(this.hue, 0, 360)) + if (!InInterval(hue, 0, 360)) throw new ArgumentException("Hue is not between 0 and 360 degrees!"); - if (!InInterval(this.saturation, 0, 1)) + if (!InInterval(saturation, 0, 1)) throw new ArgumentException("Saturation is not between 0 and 1!"); - if (!InInterval(this.value, 0, 1)) + if (!InInterval(value, 0, 1)) throw new ArgumentException("Value is not between 0 and 1!"); - int hi = (int)Math.Floor(this.hue / 60.0f); - float f = this.hue / 60.0f - hi; + int hi = (int)Math.Floor(hue / 60.0f); + float f = hue / 60.0f - hi; - float p = this.value * (1 - this.saturation); - float q = this.value * (1 - this.saturation * f); - float t = this.value * (1 - this.saturation * (1 - f)); + float p = value * (1 - saturation); + float q = value * (1 - saturation * f); + float t = value * (1 - saturation * (1 - f)); switch (hi) { case 0: - return Color.FromRgb((byte)(this.value * 255.0f), (byte)(t * 255.0f), (byte)(p * 255.0f)); + return Color.FromRgb((byte)(value * 255.0f), (byte)(t * 255.0f), (byte)(p * 255.0f)); case 1: - return Color.FromRgb((byte)(q * 255.0f), (byte)(this.value * 255.0f), (byte)(p * 255.0f)); + return Color.FromRgb((byte)(q * 255.0f), (byte)(value * 255.0f), (byte)(p * 255.0f)); case 2: - return Color.FromRgb((byte)(p * 255.0f), (byte)(this.value * 255.0f), (byte)(t * 255.0f)); + return Color.FromRgb((byte)(p * 255.0f), (byte)(value * 255.0f), (byte)(t * 255.0f)); case 3: - return Color.FromRgb((byte)(p * 255.0f), (byte)(q * 255.0f), (byte)(this.value * 255.0f)); + return Color.FromRgb((byte)(p * 255.0f), (byte)(q * 255.0f), (byte)(value * 255.0f)); case 4: - return Color.FromRgb((byte)(t * 255.0f), (byte)(p * 255.0f), (byte)(this.value * 255.0f)); + return Color.FromRgb((byte)(t * 255.0f), (byte)(p * 255.0f), (byte)(value * 255.0f)); case 5: - return Color.FromRgb((byte)(this.value * 255.0f), (byte)(p * 255.0f), (byte)(q * 255.0f)); + return Color.FromRgb((byte)(value * 255.0f), (byte)(p * 255.0f), (byte)(q * 255.0f)); } return Colors.Black; diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/HierarchyList.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/HierarchyList.cs index 9650f2f9b8..d87d0a3585 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/HierarchyList.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/HierarchyList.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; -using System.Collections.Specialized; using System.Diagnostics; using System.Linq; diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/PercentBar.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/PercentBar.cs index b674bf39d7..034c0c3301 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/PercentBar.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/PercentBar.cs @@ -2,12 +2,7 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Diagnostics; using System.Windows; -using System.Windows.Controls; -using System.Windows.Documents; using System.Windows.Media; namespace ICSharpCode.Profiler.Controls @@ -18,8 +13,8 @@ namespace ICSharpCode.Profiler.Controls { base.OnRender(drawingContext); - if (this.RenderSize.Height > 0 && this.RenderSize.Width > 0) { - drawingContext.DrawRectangle(new LinearGradientBrush(Colors.Red, Colors.Orange, 0), new Pen(Brushes.Black, 1), new Rect(new Point(0, 2), new Size(this.RenderSize.Width * this.Value, this.RenderSize.Height - 4))); + if (RenderSize.Height > 0 && RenderSize.Width > 0) { + drawingContext.DrawRectangle(new LinearGradientBrush(Colors.Red, Colors.Orange, 0), new Pen(Brushes.Black, 1), new Rect(new Point(0, 2), new Size(RenderSize.Width * Value, RenderSize.Height - 4))); } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/PiePiece.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/PiePiece.cs index 9519585866..75907f28c3 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/PiePiece.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/PiePiece.cs @@ -2,11 +2,9 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Shapes; -using System.Windows.Media; using System.Windows; +using System.Windows.Media; +using System.Windows.Shapes; namespace ICSharpCode.Profiler.Controls { @@ -99,7 +97,7 @@ namespace ICSharpCode.Profiler.Controls /// /// Draws the pie piece /// - private void DrawGeometry(StreamGeometryContext context) + void DrawGeometry(StreamGeometryContext context) { double centreX = Radius; double centreY = Radius; diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/Profiler.Controls.csproj b/src/AddIns/Analysis/Profiler/Frontend/Controls/Profiler.Controls.csproj index 589f3ad450..7fc301caf7 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/Profiler.Controls.csproj +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/Profiler.Controls.csproj @@ -7,7 +7,7 @@ Library ICSharpCode.Profiler.Controls ICSharpCode.Profiler.Controls - v4.0 + v4.5 Properties C:\Dokumente und Einstellungen\HP\Anwendungsdaten\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis False @@ -34,7 +34,8 @@ false false true - Client + + true diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/QueryView.xaml.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/QueryView.xaml.cs index d20d4b744c..f3ce6cc2e4 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/QueryView.xaml.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/QueryView.xaml.cs @@ -1,7 +1,6 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using ICSharpCode.Profiler.Controller.Data; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -12,6 +11,7 @@ using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using ICSharpCode.Profiler.Controller; +using ICSharpCode.Profiler.Controller.Data; using ICSharpCode.Profiler.Controller.Queries; namespace ICSharpCode.Profiler.Controls @@ -40,7 +40,7 @@ namespace ICSharpCode.Profiler.Controls get { return isQueryModifiable; } set { isQueryModifiable = value; - this.txtQuery.IsReadOnly = !isQueryModifiable; + txtQuery.IsReadOnly = !isQueryModifiable; } } @@ -59,9 +59,9 @@ namespace ICSharpCode.Profiler.Controls public IEnumerable SelectedItems { get { - if (this.list == null) + if (list == null) return new List().AsEnumerable(); - return from i in this.list where i.IsSelected select i; + return from i in list where i.IsSelected select i; } } @@ -87,9 +87,9 @@ namespace ICSharpCode.Profiler.Controls if (!string.IsNullOrEmpty(txtSearch.Text) && list.Count > 0) { searchTask.Cancel(); string text = txtSearch.Text; - int start = this.RangeStart; - int end = this.RangeEnd; - var provider = this.Provider; + int start = RangeStart; + int end = RangeEnd; + var provider = Provider; AdornerLayer layer = AdornerLayer.GetAdornerLayer(this); OverlayAdorner ad = new OverlayAdorner(this); @@ -199,10 +199,10 @@ namespace ICSharpCode.Profiler.Controls { if (e.NewSize.Width > 0 && e.PreviousSize.Width > 0) { double adjustedNameColumnWidth = nameColumn.Width + e.NewSize.Width - e.PreviousSize.Width; - double matchingNameColumnWidth = e.NewSize.Width - this.callCountColumn.Width - - this.percentColumn.Width - this.timeSpentColumn.Width - - this.timeSpentSelfColumn.Width - this.timeSpentPerCallColumn.Width - - this.timeSpentSelfPerCallColumn.Width - 25; + double matchingNameColumnWidth = e.NewSize.Width - callCountColumn.Width + - percentColumn.Width - timeSpentColumn.Width + - timeSpentSelfColumn.Width - timeSpentPerCallColumn.Width + - timeSpentSelfPerCallColumn.Width - 25; // always keep name column at least 75 pixels wide if (matchingNameColumnWidth < 75) @@ -222,25 +222,25 @@ namespace ICSharpCode.Profiler.Controls public void SetRange(int start, int end) { - if (this.Provider == null) + if (Provider == null) return; - this.RangeStart = start; - this.RangeEnd = end; - this.Invalidate(); - this.InvalidateArrange(); + RangeStart = start; + RangeEnd = end; + Invalidate(); + InvalidateArrange(); } public void Invalidate() { - this.isDirty = true; - if (this.IsVisible) + isDirty = true; + if (IsVisible) ExecuteQuery(); } void ExecuteQuery() { - if (!this.isDirty || this.Provider == null) + if (!isDirty || Provider == null) return; if (Provider.DataSets.Count == 0) @@ -254,7 +254,7 @@ namespace ICSharpCode.Profiler.Controls LoadData(); watch.Stop(); Debug.Print("update finished in {0}ms", watch.ElapsedMilliseconds); - this.isDirty = false; + isDirty = false; } void LoadData() @@ -266,7 +266,7 @@ namespace ICSharpCode.Profiler.Controls layer.Add(ad); int rangeStart = RangeStart; int rangeEnd = RangeEnd; - string query = this.CurrentQuery; + string query = CurrentQuery; ProfilingDataProvider provider = Provider; QueryCompiler compiler = new QueryCompiler(Reporter, query); @@ -308,22 +308,22 @@ namespace ICSharpCode.Profiler.Controls foreach (var item in list) { var currentItem = item; - currentItem.RequestBringIntoView += (sender, e) => this.treeView.ScrollIntoView(e.Node); + currentItem.RequestBringIntoView += (sender, e) => treeView.ScrollIntoView(e.Node); } } } public string CurrentQuery { - get { return this.txtQuery.Text; } + get { return txtQuery.Text; } set { if (IsQueryModifiable) - this.txtQuery.Text = value; + txtQuery.Text = value; } } void txtQueryTextChanged(object sender, TextChangedEventArgs e) { - this.CurrentQuery = this.txtQuery.Text; + CurrentQuery = txtQuery.Text; } void txtQueryKeyDown(object sender, KeyEventArgs e) @@ -335,12 +335,12 @@ namespace ICSharpCode.Profiler.Controls void btnExecuteQueryClick(object sender, RoutedEventArgs e) { OnCurrentQueryChanged(EventArgs.Empty); - this.Invalidate(); + Invalidate(); } void BtnExpandHotPathSubtreeClick(object sender, RoutedEventArgs e) { - foreach (CallTreeNodeViewModel node in this.SelectedItems.ToArray()) { + foreach (CallTreeNodeViewModel node in SelectedItems.ToArray()) { ExpandHotPathItems(node, node); } } @@ -356,8 +356,8 @@ namespace ICSharpCode.Profiler.Controls } public ContextMenu TreeViewContextMenu { - get { return this.treeView.ContextMenu; } - set { this.treeView.ContextMenu = this.ringDiagram.ContextMenu = value; } + get { return treeView.ContextMenu; } + set { treeView.ContextMenu = ringDiagram.ContextMenu = value; } } } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/RangeEventArgs.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/RangeEventArgs.cs index c51a968d91..0513d6081b 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/RangeEventArgs.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/RangeEventArgs.cs @@ -2,7 +2,6 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Windows; namespace ICSharpCode.Profiler.Controls { @@ -28,7 +27,7 @@ namespace ICSharpCode.Profiler.Controls public int RangeLength { - get { return Math.Abs(this.endIndex - this.startIndex); } + get { return Math.Abs(endIndex - startIndex); } } } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/RingDiagramControl.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/RingDiagramControl.cs index bf11c3cf6a..e8b8b2ef1e 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/RingDiagramControl.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/RingDiagramControl.cs @@ -10,7 +10,6 @@ using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; -using System.Windows.Threading; namespace ICSharpCode.Profiler.Controls { @@ -40,7 +39,7 @@ namespace ICSharpCode.Profiler.Controls { base.OnPropertyChanged(e); if (e.Property == SelectedRootProperty) - Update(this.SelectedRoot); + Update(SelectedRoot); } public RingDiagramControl() @@ -54,17 +53,17 @@ namespace ICSharpCode.Profiler.Controls { Debug.WriteLine("RingDiagram.Update: new root = " + item); - this.task.Cancel(); + task.Cancel(); - Debug.WriteLine("hierarchyStack count: " + this.hierarchyStack.Count); + Debug.WriteLine("hierarchyStack count: " + hierarchyStack.Count); - while (this.hierarchyStack.Count > 0 && !hierarchyStack.Peek().IsAncestorOf(item)) { - this.hierarchyStack.Pop(); + while (hierarchyStack.Count > 0 && !hierarchyStack.Peek().IsAncestorOf(item)) { + hierarchyStack.Pop(); } Debug.Assert(hierarchyStack.Count == 0 || hierarchyStack.Peek().IsAncestorOf(item)); - this.Children.Clear(); + Children.Clear(); if (item == null) return; @@ -83,28 +82,28 @@ namespace ICSharpCode.Profiler.Controls ell.MouseLeftButtonDown += (sender, e) => { - if (this.hierarchyStack.Count > 1 && this.hierarchyStack.Peek().Level > 1) { - var oldItem = this.hierarchyStack.Pop(); - this.SelectedRoot = this.hierarchyStack.Peek(); - this.SelectedRoot.IsSelected = true; - this.SelectedRoot.IsExpanded = true; + if (hierarchyStack.Count > 1 && hierarchyStack.Peek().Level > 1) { + var oldItem = hierarchyStack.Pop(); + SelectedRoot = hierarchyStack.Peek(); + SelectedRoot.IsSelected = true; + SelectedRoot.IsExpanded = true; oldItem.IsSelected = false; } }; if (hierarchyStack.Count == 0 || hierarchyStack.Peek() != item) - this.hierarchyStack.Push(item); + hierarchyStack.Push(item); List pieces = new List(); - this.task.Execute( + task.Execute( () => { if (item.CpuCyclesSpent > 0) CreateTree(pieces, item, 0, item.CpuCyclesSpent, 0); }, () => { - this.Children.Add(ell); - this.Children.AddRange(pieces.Select(p => CreatePiePiece(p.Radius, p.WedgeAngle, p.RotationAngle, p.Level, p.Node))); + Children.Add(ell); + Children.AddRange(pieces.Select(p => CreatePiePiece(p.Radius, p.WedgeAngle, p.RotationAngle, p.Level, p.Node))); item.BringIntoView(); }, delegate { } @@ -165,8 +164,8 @@ namespace ICSharpCode.Profiler.Controls delegate(object sender, MouseButtonEventArgs e) { node.IsExpanded = true; node.IsSelected = true; // expand the path to the node so that the treeview can select it - var oldNode = this.SelectedRoot; - this.SelectedRoot = node; + var oldNode = SelectedRoot; + SelectedRoot = node; oldNode.IsSelected = false; } ); diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/SingleTask.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/SingleTask.cs index 996c29c4f2..01c3de28ac 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/SingleTask.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/SingleTask.cs @@ -48,9 +48,9 @@ namespace ICSharpCode.Profiler.Controls { dispatcher.VerifyAccess(); - if (this.currentTask != null) { - this.currentTask.Cancel(); - this.currentTask = null; + if (currentTask != null) { + currentTask.Cancel(); + currentTask = null; } } @@ -59,10 +59,10 @@ namespace ICSharpCode.Profiler.Controls if (backgroundAction == null) throw new ArgumentNullException("backgroundAction"); - this.Cancel(); + Cancel(); Task task = Task.Start(backgroundAction); - this.currentTask = task; + currentTask = task; currentTask.RunWhenComplete( dispatcher, () => { @@ -70,8 +70,8 @@ namespace ICSharpCode.Profiler.Controls // want to raise completionAction if the task // was successfully completed but another task // was started before we received the completion callback. - if (this.currentTask == task) { - this.currentTask = null; + if (currentTask == task) { + currentTask = null; if (completionAction != null) completionAction(); } else { diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/Task.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/Task.cs index cb006ccd02..9dd78b285d 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/Task.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/Task.cs @@ -30,7 +30,7 @@ namespace ICSharpCode.Profiler.Controls bool isComplete; Action onCompleteActions; - private Task(Action action) + Task(Action action) { this.action = action; } diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/TimeLineControl.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/TimeLineControl.cs index 0459a5feb6..d2b8ce8f41 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/TimeLineControl.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/TimeLineControl.cs @@ -2,11 +2,10 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Linq; using System.Collections.Generic; using System.Collections.ObjectModel; -using System.Diagnostics; using System.Globalization; +using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; @@ -55,8 +54,8 @@ namespace ICSharpCode.Profiler.Controls get { return selectedEndIndex; } set { selectedEndIndex = value; - this.InvalidateMeasure(); - this.InvalidateVisual(); + InvalidateMeasure(); + InvalidateVisual(); OnRangeChanged(new RangeEventArgs(selectedStartIndex, selectedEndIndex)); } } @@ -66,8 +65,8 @@ namespace ICSharpCode.Profiler.Controls get { return selectedStartIndex; } set { selectedStartIndex = value; - this.InvalidateMeasure(); - this.InvalidateVisual(); + InvalidateMeasure(); + InvalidateVisual(); OnRangeChanged(new RangeEventArgs(selectedStartIndex, selectedEndIndex)); } } @@ -85,9 +84,9 @@ namespace ICSharpCode.Profiler.Controls protected override Size MeasureOverride(Size availableSize) { - this.pieceWidth = 25; + pieceWidth = 25; Size calculatedSize = base.MeasureOverride(availableSize); - return new Size(Math.Max(this.pieceWidth * this.valuesList.Count + 1, calculatedSize.Width), calculatedSize.Height + 10); + return new Size(Math.Max(pieceWidth * valuesList.Count + 1, calculatedSize.Width), calculatedSize.Height + 10); } const int offset = 0; @@ -97,26 +96,26 @@ namespace ICSharpCode.Profiler.Controls { base.OnRender(drawingContext); - if (this.valuesList.Count == 0) + if (valuesList.Count == 0) return; - double oldX = offsetFromTop, oldY = this.RenderSize.Height; + double oldX = offsetFromTop, oldY = RenderSize.Height; StreamGeometry geometry = new StreamGeometry(); using (StreamGeometryContext ctx = geometry.Open()) { - ctx.BeginFigure(new Point(0, this.RenderSize.Height), true, true); + ctx.BeginFigure(new Point(0, RenderSize.Height), true, true); List points = new List(); - double maxHeight = this.RenderSize.Height - offsetFromTop; + double maxHeight = RenderSize.Height - offsetFromTop; - for (int i = 0; i < this.valuesList.Count; i++) + for (int i = 0; i < valuesList.Count; i++) { - double x = this.pieceWidth / 2.0 + this.pieceWidth * i; + double x = pieceWidth / 2.0 + pieceWidth * i; // TODO : support MinValues other than 0 - double y = offsetFromTop + (maxHeight - maxHeight * (this.valuesList[i].Value / this.MaxValue)); + double y = offsetFromTop + (maxHeight - maxHeight * (valuesList[i].Value / MaxValue)); points.Add(new Point(x, y)); @@ -124,7 +123,7 @@ namespace ICSharpCode.Profiler.Controls oldY = y; } - points.Add(new Point(oldX, offsetFromTop + this.RenderSize.Height)); + points.Add(new Point(oldX, offsetFromTop + RenderSize.Height)); ctx.PolyLineTo(points, true, true); } @@ -133,7 +132,7 @@ namespace ICSharpCode.Profiler.Controls Brush b = new LinearGradientBrush(Colors.Red, Colors.Orange, 90); - drawingContext.DrawRectangle(Brushes.White, new Pen(Brushes.White, 1), new Rect(new Point(0, 0), this.RenderSize)); + drawingContext.DrawRectangle(Brushes.White, new Pen(Brushes.White, 1), new Rect(new Point(0, 0), RenderSize)); var p = new Pen(Brushes.DarkRed, 2); @@ -141,10 +140,10 @@ namespace ICSharpCode.Profiler.Controls DateTime time = new DateTime(1,1,1,0,0,0,0); - for (int i = 0; i < this.valuesList.Count; i++) { - if (this.valuesList[i].DisplayMarker) + for (int i = 0; i < valuesList.Count; i++) { + if (valuesList[i].DisplayMarker) drawingContext.DrawLine(p, new Point(pieceWidth * i, offsetFromTop), - new Point(pieceWidth * i, this.RenderSize.Height)); + new Point(pieceWidth * i, RenderSize.Height)); if (i % 3 == 0) { FormattedText textFormat = new FormattedText( @@ -156,7 +155,7 @@ namespace ICSharpCode.Profiler.Controls drawingContext.DrawText(textFormat, new Point(pieceWidth * i, 0)); } - var events = this.valuesList[i].Events; + var events = valuesList[i].Events; if (events != null && events.Length > 0) { foreach (EventDataEntry @event in events) { @@ -178,43 +177,43 @@ namespace ICSharpCode.Profiler.Controls new SolidColorBrush(Color.FromArgb(64, Colors.Blue.R, Colors.Blue.G, Colors.Blue.B)), new Pen(Brushes.Blue, 1), new Rect( - new Point(Math.Min(this.selectedStartIndex, this.selectedEndIndex) * pieceWidth + offset, offsetFromTop), - new Point(Math.Max(this.selectedStartIndex, this.selectedEndIndex) * pieceWidth + offset + pieceWidth, this.RenderSize.Height) + new Point(Math.Min(selectedStartIndex, selectedEndIndex) * pieceWidth + offset, offsetFromTop), + new Point(Math.Max(selectedStartIndex, selectedEndIndex) * pieceWidth + offset + pieceWidth, RenderSize.Height) ) ); } - protected override void OnMouseUp(System.Windows.Input.MouseButtonEventArgs e) + protected override void OnMouseUp(MouseButtonEventArgs e) { bool valid; Point pos = e.GetPosition(this); int index = TransformToIndex(pos, out valid); if (pos.Y >= 40) { - if (index < this.selectedStartIndex) { - this.selectedEndIndex = this.selectedStartIndex; - this.selectedStartIndex = index; + if (index < selectedStartIndex) { + selectedEndIndex = selectedStartIndex; + selectedStartIndex = index; } else - this.selectedEndIndex = index; + selectedEndIndex = index; } - this.InvalidateMeasure(); - this.InvalidateVisual(); - this.ReleaseMouseCapture(); + InvalidateMeasure(); + InvalidateVisual(); + ReleaseMouseCapture(); } - protected override void OnMouseDown(System.Windows.Input.MouseButtonEventArgs e) + protected override void OnMouseDown(MouseButtonEventArgs e) { - this.CaptureMouse(); + CaptureMouse(); Point pos = e.GetPosition(this); bool valid; int index = TransformToIndex(pos, out valid); if (pos.Y >= 40) - this.selectedStartIndex = this.selectedEndIndex = index; + selectedStartIndex = selectedEndIndex = index; - this.InvalidateMeasure(); - this.InvalidateVisual(); + InvalidateMeasure(); + InvalidateVisual(); } ToolTip tooltip; @@ -226,9 +225,9 @@ namespace ICSharpCode.Profiler.Controls int index = TransformToIndex(pos, out valid); if (e.LeftButton == MouseButtonState.Pressed) { - this.selectedEndIndex = index; - this.InvalidateMeasure(); - this.InvalidateVisual(); + selectedEndIndex = index; + InvalidateMeasure(); + InvalidateVisual(); } else if (tooltip == null && valid) { tooltip = new ToolTip(); if (pos.Y < 20) @@ -236,14 +235,14 @@ namespace ICSharpCode.Profiler.Controls else if (pos.Y < 40) tooltip.Content = CreateTooltipForEvents(index); else - tooltip.Content = "Value: " + this.valuesList[index].Value.ToString(this.Format) + " " + this.Unit; + tooltip.Content = "Value: " + valuesList[index].Value.ToString(Format) + " " + Unit; tooltip .IsOpen = tooltip.Content != null; } } object CreateTooltipForEvents(int index) { - EventDataEntry[] events = this.ValuesList[index].Events; + EventDataEntry[] events = ValuesList[index].Events; TextBlock block = events.Any() ? new TextBlock() : null; @@ -281,14 +280,14 @@ namespace ICSharpCode.Profiler.Controls protected override void OnLostMouseCapture(MouseEventArgs e) { base.OnLostMouseCapture(e); - OnRangeChanged(new RangeEventArgs(this.selectedStartIndex, this.selectedEndIndex)); + OnRangeChanged(new RangeEventArgs(selectedStartIndex, selectedEndIndex)); } int TransformToIndex(Point point, out bool valid) { - int value = (int)Math.Floor(point.X / this.pieceWidth); - valid = (0 >= value && value <= this.valuesList.Count - 1); - return Math.Min(Math.Max(0, value), this.valuesList.Count - 1); + int value = (int)Math.Floor(point.X / pieceWidth); + valid = (0 >= value && value <= valuesList.Count - 1); + return Math.Min(Math.Max(0, value), valuesList.Count - 1); } #region MouseHover @@ -339,7 +338,7 @@ namespace ICSharpCode.Profiler.Controls mouseHoverStartPoint = newPosition; mouseHoverLastEventArgs = e; mouseHoverTimer = new DispatcherTimer(SystemParameters.MouseHoverTime, DispatcherPriority.Background, - OnMouseHoverTimerElapsed, this.Dispatcher); + OnMouseHoverTimerElapsed, Dispatcher); mouseHoverTimer.Start(); } @@ -362,9 +361,9 @@ namespace ICSharpCode.Profiler.Controls mouseHoverTimer = null; } - if (this.tooltip != null) { - this.tooltip.IsOpen = false; - this.tooltip = null; + if (tooltip != null) { + tooltip.IsOpen = false; + tooltip = null; } } diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/TreeListView.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/TreeListView.cs index c6bbaf5f30..707cb426e9 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/TreeListView.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/TreeListView.cs @@ -2,19 +2,9 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; -using System.Windows; +using System.Linq; using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; -using System.Linq; namespace ICSharpCode.Profiler.Controls { @@ -22,12 +12,12 @@ namespace ICSharpCode.Profiler.Controls { protected override void OnKeyDown(KeyEventArgs e) { - if (this.SelectedItem is CallTreeNodeViewModel) { - CallTreeNodeViewModel item = this.SelectedItem as CallTreeNodeViewModel; + if (SelectedItem is CallTreeNodeViewModel) { + CallTreeNodeViewModel item = SelectedItem as CallTreeNodeViewModel; if (e.Key == Key.Right) { if (item.IsExpanded) { if (item.Children.Count > 0) - this.SelectedItem = item.Children.First(); + SelectedItem = item.Children.First(); } else { item.IsExpanded = true; } @@ -36,7 +26,7 @@ namespace ICSharpCode.Profiler.Controls if (item.IsExpanded) { item.IsExpanded = false; } else { - this.SelectedItem = item.Parent; + SelectedItem = item.Parent; } e.Handled = true; } diff --git a/src/AddIns/Analysis/Profiler/Frontend/Controls/WaitBar.cs b/src/AddIns/Analysis/Profiler/Frontend/Controls/WaitBar.cs index 74b20453cb..92d66ac89b 100644 --- a/src/AddIns/Analysis/Profiler/Frontend/Controls/WaitBar.cs +++ b/src/AddIns/Analysis/Profiler/Frontend/Controls/WaitBar.cs @@ -4,7 +4,6 @@ using System; using System.Windows; using System.Windows.Controls; -using System.Windows.Documents; using System.Windows.Media; namespace ICSharpCode.Profiler.Controls diff --git a/src/AddIns/Analysis/Profiler/Tests/Profiler.Tests/Profiler.Tests.csproj b/src/AddIns/Analysis/Profiler/Tests/Profiler.Tests/Profiler.Tests.csproj index 98b454e14e..0326f95944 100644 --- a/src/AddIns/Analysis/Profiler/Tests/Profiler.Tests/Profiler.Tests.csproj +++ b/src/AddIns/Analysis/Profiler/Tests/Profiler.Tests/Profiler.Tests.csproj @@ -7,7 +7,7 @@ Library Profiler.Tests Profiler.Tests - v4.0 + v4.5 Properties C:\Users\Siegfried\AppData\Roaming\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis False @@ -38,6 +38,7 @@ ..\..\Controller\ICSharpCode.Profiler.snk False File + true diff --git a/src/AddIns/Analysis/Profiler/X64Converter/Profiler.X64Converter.csproj b/src/AddIns/Analysis/Profiler/X64Converter/Profiler.X64Converter.csproj index d74c1f8a69..8f9e4a7b00 100644 --- a/src/AddIns/Analysis/Profiler/X64Converter/Profiler.X64Converter.csproj +++ b/src/AddIns/Analysis/Profiler/X64Converter/Profiler.X64Converter.csproj @@ -10,7 +10,7 @@ Properties X64Converter Profiler.X64Converter - v4.0 + v4.5 512 C:\Users\Siegfried\AppData\Roaming\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis False @@ -33,7 +33,8 @@ false false true - Client + + true @@ -88,11 +89,18 @@ + + {53DCA265-3C3C-42F9-B647-F72BA678122B} + ICSharpCode.NRefactory.CSharp + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371} ICSharpCode.NRefactory + + +