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 14a515fdf98..63226774fe0 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 @@ -31,7 +31,10 @@ public class Archive extends CFile implements IArchive { } public IBinary[] getBinaries() { - return (IBinary[])getChildren(); + ICElement[] e = getChildren(); + IBinary[] b = new IBinary[e.length]; + System.arraycopy(e, 0, b, 0, e.length); + return b; } public CElementInfo createElementInfo() { diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CRoot.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CRoot.java index 8d573a8b6c7..46a8c62bd3b 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CRoot.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CRoot.java @@ -29,7 +29,10 @@ public class CRoot extends CResource implements ICRoot { } public ICProject[] getCProjects() { - return (ICProject[])getChildren(); + ICElement[] e = getChildren(); + ICProject[] p = new ICProject[e.length]; + System.arraycopy(e, 0, p, 0, e.length); + return p; } public IWorkspace getWorkspace() {