diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index a60abfda180..f0b49f62dd6 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,8 @@ +2004-09-21 Alain Magloire + * model/org/eclipse/cdt/core/model/IBinary.java + * model/org/eclipse/cdt/internal/core/model/Archive.java + * model/org/eclipse/cdt/internal/core/model/Binary.java + 2004-09-21 David Inglis Lots of changes to the binary parsers diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/IBinary.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/IBinary.java index 62713275b76..10c23edc1de 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/IBinary.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/IBinary.java @@ -10,8 +10,6 @@ *******************************************************************************/ package org.eclipse.cdt.core.model; -import org.eclipse.cdt.core.IAddressFactory; - /** * Represents a Binary file, for example an ELF excutable. @@ -45,6 +43,6 @@ public interface IBinary extends ICElement, IParent, IOpenable { public boolean isLittleEndian(); - public IAddressFactory getAddressFactory(); + //public IAddressFactory getAddressFactory(); } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Archive.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Archive.java index cac67a4a9d6..9d5367a0332 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Archive.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Archive.java @@ -80,6 +80,16 @@ public class Archive extends Openable implements IArchive { return true; } + /* (non-Javadoc) + * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) + */ + public Object getAdapter(Class adapter) { + if (IBinaryArchive.class.equals(adapter)) { + return getBinaryArchive(); + } + return super.getAdapter(adapter); + } + IBinaryArchive getBinaryArchive() { return binaryArchive; } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Binary.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Binary.java index 3e5a9a9a165..aaf8add6d31 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Binary.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/Binary.java @@ -17,7 +17,6 @@ import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; -import org.eclipse.cdt.core.IAddressFactory; import org.eclipse.cdt.core.IBinaryParser.IBinaryExecutable; import org.eclipse.cdt.core.IBinaryParser.IBinaryFile; import org.eclipse.cdt.core.IBinaryParser.IBinaryObject; @@ -44,7 +43,6 @@ public class Binary extends Openable implements IBinary { private long longBSS; private String endian; private String soname; - private IAddressFactory addressFactory; private long fLastModification; @@ -173,16 +171,17 @@ public class Binary extends Openable implements IBinary { protected IBinaryObject getBinaryObject() { return binaryObject; } - - public IAddressFactory getAddressFactory() { - if (isObject() || isExecutable() || isSharedLib() || isCore()) { - if (addressFactory == null || hasChanged()) { - addressFactory = getBinaryObject().getAddressFactory(); - } + + /* (non-Javadoc) + * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) + */ + public Object getAdapter(Class adapter) { + if (IBinaryObject.class.equals(adapter)) { + return getBinaryObject(); } - return addressFactory; + return super.getAdapter(adapter); } - + protected int getType() { IBinaryObject obj = getBinaryObject(); if (obj != null && (fBinType == 0 || hasChanged())) { @@ -204,7 +203,6 @@ public class Binary extends Openable implements IBinary { longData = -1; longText = -1; soname = null; - addressFactory = null; } return changed; }