diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java index 63953098db2..8de96d8bffc 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java @@ -1842,25 +1842,25 @@ public class InputType extends BuildObject implements IInputType { } /** - * Check if legacy scanner discovery method should be used. + * Check if legacy scanner discovery profiles should be used. */ - private boolean isLegacyScannerDiscovery() { - boolean isLanguageSettingsProvidersEnabled = false; + private boolean useLegacyScannerDiscoveryProfiles() { + boolean useLegacy = true; ITool tool = getParent(); - if (tool!=null) { - IBuildObject bo = tool.getParent(); - if (bo instanceof IToolChain) { - IConfiguration cfg = ((IToolChain) bo).getParent(); - if (cfg!=null) { + if (tool != null) { + IBuildObject toolchain = tool.getParent(); + if (toolchain instanceof IToolChain && ((IToolChain) toolchain).getDefaultLanguageSettingsProviderIds() != null) { + IConfiguration cfg = ((IToolChain) toolchain).getParent(); + if (cfg != null && cfg.getDefaultLanguageSettingsProviderIds() != null) { IResource rc = cfg.getOwner(); - if (rc!=null) { + if (rc != null) { IProject project = rc.getProject(); - isLanguageSettingsProvidersEnabled = ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project); + useLegacy = !ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project); } } } } - return !isLanguageSettingsProvidersEnabled; + return useLegacy; } /** @@ -1879,11 +1879,12 @@ public class InputType extends BuildObject implements IInputType { } public String getDiscoveryProfileIdAttribute() { - if (isLegacyScannerDiscovery()) { - return getLegacyDiscoveryProfileIdAttribute(); + String discoveryProfileAttribute = getDiscoveryProfileIdAttributeInternal(); + if (discoveryProfileAttribute == null && useLegacyScannerDiscoveryProfiles()) { + discoveryProfileAttribute = getLegacyDiscoveryProfileIdAttribute(); } - return getDiscoveryProfileIdAttributeInternal(); + return discoveryProfileAttribute; } /** diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java index 30f027a94c5..f19fed3634b 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java @@ -89,7 +89,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IMatchKeyProv private String secondaryOutputIds; private Boolean isAbstract; private String defaultLanguageSettingsProviderIds; - private String scannerConfigDiscoveryProfileId; + private String scannerConfigDiscoveryProfileId; private String versionsSupported; private String convertToId; private IConfigurationElement managedIsToolChainSupportedElement = null; @@ -1545,19 +1545,21 @@ public class ToolChain extends HoldsOptions implements IToolChain, IMatchKeyProv } /** - * Check if legacy scanner discovery method should be used. + * Check if legacy scanner discovery profiles should be used. */ - private boolean isLegacyScannerDiscovery() { - boolean isLanguageSettingsProvidersEnabled = false; - IConfiguration cfg = getParent(); - if (cfg != null) { - IResource rc = cfg.getOwner(); - if (rc != null) { - IProject project = rc.getProject(); - isLanguageSettingsProvidersEnabled = ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project); + private boolean useLegacyScannerDiscoveryProfiles() { + boolean useLegacy = true; + if (getDefaultLanguageSettingsProviderIds() != null) { + IConfiguration cfg = getParent(); + if (cfg != null && cfg.getDefaultLanguageSettingsProviderIds() != null) { + IResource rc = cfg.getOwner(); + if (rc != null) { + IProject project = rc.getProject(); + useLegacy = !ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(project); + } } } - return !isLanguageSettingsProvidersEnabled; + return useLegacy; } /** @@ -1582,11 +1584,12 @@ public class ToolChain extends HoldsOptions implements IToolChain, IMatchKeyProv @Override public String getScannerConfigDiscoveryProfileId() { - if (isLegacyScannerDiscovery()) { - return getLegacyScannerConfigDiscoveryProfileId(); + String discoveryProfileId = getScannerConfigDiscoveryProfileIdInternal(); + if (discoveryProfileId == null && useLegacyScannerDiscoveryProfiles()) { + discoveryProfileId = getLegacyScannerConfigDiscoveryProfileId(); } - return getScannerConfigDiscoveryProfileIdInternal(); + return discoveryProfileId; } /** diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java index 9f1aba41da1..eae4fbff647 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/ConfigurationDataProvider.java @@ -533,10 +533,7 @@ public class ConfigurationDataProvider extends CConfigurationDataProvider implem } providers.add(provider); } - } - - // AG TODO - should it be when empty or when ids==null? - if (providers.isEmpty()) { + } else { providers = ScannerDiscoveryLegacySupport.getDefaultProvidersLegacy(); } diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml index 85ce984960e..202ecf05529 100644 --- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml +++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml @@ -1923,10 +1923,11 @@ + osList="macosx" + targetTool="cdt.managedbuild.tool.macosx.c.linker.macosx.base;cdt.managedbuild.tool.macosx.cpp.linker.macosx.base;cdt.managedbuild.tool.gnu.archiver"> + cleanCommand="rm -rf" + id="cdt.managedbuild.config.gnu.macosx.base" + languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"> + cleanCommand="rm -rf" + id="cdt.managedbuild.config.gnu.solaris.base" + languageSettingsProviders="org.eclipse.cdt.ui.UserLanguageSettingsProvider;org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider;${Toolchain};-org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"> > 24); - buffer[++idx]= (byte)(value >> 16); - buffer[++idx]= (byte)(value >> 8); - buffer[++idx]= (byte)(value); + buffer[idx]= (byte) (value >> 24); + buffer[++idx]= (byte) (value >> 16); + buffer[++idx]= (byte) (value >> 8); + buffer[++idx]= (byte) (value); } - public int getInt(final long offset) { return getInt(fBuffer, recPtrToIndex(offset)); @@ -106,7 +106,6 @@ final class Chunk { ((buffer[++idx] & 0xff) << 0); } - /** * A free Record Pointer is a pointer to a raw block, i.e. the * pointer is not moved past the BLOCK_HEADER_SIZE. @@ -119,8 +118,8 @@ final class Chunk { } /** - * A free Record Pointer is a pointer to a raw block, i.e. the - * pointer is not moved past the BLOCK_HEADER_SIZE. + * A free Record Pointer is a pointer to a raw block, + * i.e. the pointer is not moved past the BLOCK_HEADER_SIZE. */ private static long expandToFreeRecPtr(int value) { /* @@ -134,7 +133,6 @@ final class Chunk { return address << Database.BLOCK_SIZE_DELTA_BITS; } - /** * A Record Pointer is a pointer as returned by Database.malloc(). * This is a pointer to a block + BLOCK_HEADER_SIZE. @@ -164,11 +162,10 @@ final class Chunk { int idx = recPtrToIndex(offset); putRecPtr(value, fBuffer, idx); } - /** - * A free Record Pointer is a pointer to a raw block, i.e. the - * pointer is not moved past the BLOCK_HEADER_SIZE. + * A free Record Pointer is a pointer to a raw block, + * i.e. the pointer is not moved past the BLOCK_HEADER_SIZE. */ public void putFreeRecPtr(final long offset, final long value) { assert fLocked; @@ -191,14 +188,14 @@ final class Chunk { public void put3ByteUnsignedInt(final long offset, final int value) { assert fLocked; fDirty= true; - int idx= recPtrToIndex( offset ); - fBuffer[idx]= (byte)(value >> 16); - fBuffer[++idx]= (byte)(value >> 8); - fBuffer[++idx]= (byte)(value); + int idx= recPtrToIndex(offset); + fBuffer[idx]= (byte) (value >> 16); + fBuffer[++idx]= (byte) (value >> 8); + fBuffer[++idx]= (byte) (value); } public int get3ByteUnsignedInt(final long offset) { - int idx= recPtrToIndex( offset ); + int idx= recPtrToIndex(offset); return ((fBuffer[idx] & 0xff) << 16) | ((fBuffer[++idx] & 0xff) << 8) | ((fBuffer[++idx] & 0xff) << 0); @@ -207,60 +204,60 @@ final class Chunk { public void putShort(final long offset, final short value) { assert fLocked; fDirty= true; - int idx= recPtrToIndex( offset ); - fBuffer[idx]= (byte)(value >> 8); - fBuffer[++idx]= (byte)(value); + int idx= recPtrToIndex(offset); + fBuffer[idx]= (byte) (value >> 8); + fBuffer[++idx]= (byte) (value); } public short getShort(final long offset) { - int idx= recPtrToIndex( offset ); + int idx= recPtrToIndex(offset); return (short) (((fBuffer[idx] << 8) | (fBuffer[++idx] & 0xff))); } public long getLong(final long offset) { - int idx= recPtrToIndex( offset ); - return ((((long)fBuffer[idx] & 0xff) << 56) | - (((long)fBuffer[++idx] & 0xff) << 48) | - (((long)fBuffer[++idx] & 0xff) << 40) | - (((long)fBuffer[++idx] & 0xff) << 32) | - (((long)fBuffer[++idx] & 0xff) << 24) | - (((long)fBuffer[++idx] & 0xff) << 16) | - (((long)fBuffer[++idx] & 0xff) << 8) | - (((long)fBuffer[++idx] & 0xff) << 0)); + int idx= recPtrToIndex(offset); + return ((((long) fBuffer[idx] & 0xff) << 56) | + (((long) fBuffer[++idx] & 0xff) << 48) | + (((long) fBuffer[++idx] & 0xff) << 40) | + (((long) fBuffer[++idx] & 0xff) << 32) | + (((long) fBuffer[++idx] & 0xff) << 24) | + (((long) fBuffer[++idx] & 0xff) << 16) | + (((long) fBuffer[++idx] & 0xff) << 8) | + (((long) fBuffer[++idx] & 0xff) << 0)); } public void putLong(final long offset, final long value) { assert fLocked; fDirty= true; - int idx= recPtrToIndex( offset ); + int idx= recPtrToIndex(offset); - fBuffer[idx]= (byte)(value >> 56); - fBuffer[++idx]= (byte)(value >> 48); - fBuffer[++idx]= (byte)(value >> 40); - fBuffer[++idx]= (byte)(value >> 32); - fBuffer[++idx]= (byte)(value >> 24); - fBuffer[++idx]= (byte)(value >> 16); - fBuffer[++idx]= (byte)(value >> 8); - fBuffer[++idx]= (byte)(value); + fBuffer[idx]= (byte) (value >> 56); + fBuffer[++idx]= (byte) (value >> 48); + fBuffer[++idx]= (byte) (value >> 40); + fBuffer[++idx]= (byte) (value >> 32); + fBuffer[++idx]= (byte) (value >> 24); + fBuffer[++idx]= (byte) (value >> 16); + fBuffer[++idx]= (byte) (value >> 8); + fBuffer[++idx]= (byte) (value); } public void putChar(final long offset, final char value) { assert fLocked; fDirty= true; - int idx= recPtrToIndex( offset ); - fBuffer[idx]= (byte)(value >> 8); - fBuffer[++idx]= (byte)(value); + int idx= recPtrToIndex(offset); + fBuffer[idx]= (byte) (value >> 8); + fBuffer[++idx]= (byte) (value); } public void putChars(final long offset, char[] chars, int start, int len) { assert fLocked; fDirty= true; int idx= recPtrToIndex(offset)-1; - final int end= start+len; + final int end= start + len; for (int i = start; i < end; i++) { char value= chars[i]; - fBuffer[++idx]= (byte)(value >> 8); - fBuffer[++idx]= (byte)(value); + fBuffer[++idx]= (byte) (value >> 8); + fBuffer[++idx]= (byte) (value); } } @@ -268,28 +265,28 @@ final class Chunk { assert fLocked; fDirty= true; int idx= recPtrToIndex(offset)-1; - final int end= start+len; + final int end= start + len; for (int i = start; i < end; i++) { char value= chars[i]; - fBuffer[++idx]= (byte)(value); + fBuffer[++idx]= (byte) (value); } } public char getChar(final long offset) { - int idx= recPtrToIndex( offset ); + int idx= recPtrToIndex(offset); return (char) (((fBuffer[idx] << 8) | (fBuffer[++idx] & 0xff))); } public void getChars(final long offset, final char[] result, int start, int len) { final ByteBuffer buf= ByteBuffer.wrap(fBuffer); - buf.position(recPtrToIndex( offset )); + buf.position(recPtrToIndex(offset)); buf.asCharBuffer().get(result, start, len); } public void getCharsFromBytes(final long offset, final char[] result, int start, int len) { final int pos = recPtrToIndex(offset); for (int i = 0; i < len; i++) { - result[start+i] = (char) (fBuffer[pos+i] & 0xff); + result[start + i] = (char) (fBuffer[pos + i] & 0xff); } } @@ -307,8 +304,8 @@ final class Chunk { assert fLocked; fDirty= true; int idx = recPtrToIndex(offset); - int i=0; - while (i ShortString.MAX_BYTE_LENGTH) + if (bytelen > ShortString.MAX_BYTE_LENGTH) { return new LongString(this, chars, useBytes); - else + } else { return new ShortString(this, chars, useBytes); + } } private boolean useBytes(char[] chars) { @@ -557,11 +551,9 @@ public class Database { return true; } - - public IString getString(long offset) throws CoreException { final int l = getInt(offset); - int bytelen= l<0 ? -l : 2*l; + int bytelen= l < 0 ? -l : 2 * l; if (bytelen > ShortString.MAX_BYTE_LENGTH) { return new LongString(this, offset); } @@ -661,24 +653,20 @@ public class Database { // locked chunk that has been removed from cache. if (chunk.fDirty) { dirtyChunks.add(chunk); // keep in fChunks until it is flushed. - } - else { + } else { chunk.fLocked= false; fChunks[i]= null; } - } - else if (chunk.fLocked) { + } else if (chunk.fLocked) { // locked chunk, still in cache. if (chunk.fDirty) { if (flush) { dirtyChunks.add(chunk); } - } - else { + } else { chunk.fLocked= false; } - } - else { + } else { assert !chunk.fDirty; // dirty chunks must be locked. } } @@ -698,8 +686,7 @@ public class Database { if (fExclusiveLock) { try { giveUpExclusiveLock(true); - } - finally { + } finally { setExclusiveLock(); } return; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/IBTreeComparator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/IBTreeComparator.java index 530b8d11c24..e1a7d24fb7a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/IBTreeComparator.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/IBTreeComparator.java @@ -6,7 +6,7 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * QNX - Initial API and implementation + * QNX - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.internal.core.pdom.db; @@ -14,13 +14,10 @@ import org.eclipse.core.runtime.CoreException; /** * @author Doug Schaefer - * */ public interface IBTreeComparator { - /** * Compare two records. Used for insert. */ public abstract int compare(long record1, long record2) throws CoreException; - } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMInclude.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMInclude.java index c95429ef55a..c5c086d5257 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMInclude.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMInclude.java @@ -53,8 +53,8 @@ public class PDOMInclude implements IIndexFragmentInclude { // Cached fields private String fName; - public PDOMInclude(PDOMLinkage pdom, long record) { - this.linkage = pdom; + public PDOMInclude(PDOMLinkage linkage, long record) { + this.linkage = linkage; this.record = record; }