From 7fc11c53c4dde6ef491f69b9a7b6e68cc8eae593 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Tue, 13 Sep 2011 14:58:27 -0400 Subject: [PATCH] Removed an attempt to present entries in resource hierarchy for BOP providers. It should be OK to keep it on per-file bases as there is no duplication/memory bloating which has been addressed in LanguageSettingsSerializable. --- .../GCCBuildCommandParserTest.java | 33 ------------------- .../AbstractBuildCommandParser.java | 7 ---- .../providers/LanguageSettingsManager.java | 5 +++ 3 files changed, 5 insertions(+), 40 deletions(-) diff --git a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/GCCBuildCommandParserTest.java b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/GCCBuildCommandParserTest.java index 0804f98b93b..8d288d9923b 100644 --- a/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/GCCBuildCommandParserTest.java +++ b/build/org.eclipse.cdt.make.core.tests/src/org/eclipse/cdt/make/scannerdiscovery/GCCBuildCommandParserTest.java @@ -1891,37 +1891,4 @@ public class GCCBuildCommandParserTest extends TestCase { } } - /** - */ - public void testBuildResourceTree() throws Exception { - // create resources - IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName()); - ICConfigurationDescription[] cfgDescriptions = getConfigurationDescriptions(project); - ICConfigurationDescription cfgDescription = cfgDescriptions[0]; - IFolder folder = ResourceHelper.createFolder(project, "Folder"); - IFile file = ResourceHelper.createFile(project, "Folder/file.cpp"); - - // create GCCBuildCommandParser - GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT); - ErrorParserManager epm = new ErrorParserManager(project, null); - - // parse line - parser.startup(cfgDescription); - parser.processLine("gcc " - + " -DMACRO" - + " Folder/file.cpp", - epm); - parser.shutdown(); - - // check that entries go to highest possible level - CMacroEntry entry = new CMacroEntry("MACRO", null, 0); - List entries = new ArrayList(); - entries.add(entry); - - assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(parser, cfgDescription, file, LANG_CPP)); - assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(parser, cfgDescription, folder, LANG_CPP)); - assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(parser, cfgDescription, project, LANG_CPP)); - } - - } diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuildCommandParser.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuildCommandParser.java index 1f0fb9ad089..28fa853138d 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuildCommandParser.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuildCommandParser.java @@ -101,13 +101,6 @@ public abstract class AbstractBuildCommandParser extends AbstractLanguageSetting return super.processLine(line, epm); } - // TODO - test cases - @Override - public void shutdown() { - LanguageSettingsManager.buildResourceTree(this, currentCfgDescription, currentLanguageId, currentProject); - super.shutdown(); - } - /** * Trivial Error Parser which allows highlighting of output lines matching the patterns * of this parser. Intended for better troubleshooting experience. diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsManager.java index 6463f01a146..b7e8b2ea666 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsManager.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsManager.java @@ -61,6 +61,11 @@ public class LanguageSettingsManager { /** * Builds for the provider a nice looking resource tree to present hierarchical view to the user. * + * TODO - Note that after using this method for a while for BOP parsers it appears that disadvantages + * outweight benefits. In particular, it doesn't result in saving memory as the language settings + * (and the lists itself) are not duplicated in memory anyway but optimized with using WeakHashSet + * and SafeStringInterner. + * * @param provider - language settings provider to build the tree for. * @param cfgDescription - configuration description. * @param languageId - language ID.