aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--adtproductbuild/Android.mk4
-rw-r--r--eclipse/features/com.android.ide.eclipse.adt.package/feature.xml2
-rw-r--r--eclipse/features/com.android.ide.eclipse.adt/feature.xml2
-rw-r--r--eclipse/features/com.android.ide.eclipse.ddms/feature.xml2
-rw-r--r--eclipse/features/com.android.ide.eclipse.gldebugger/feature.xml2
-rw-r--r--eclipse/features/com.android.ide.eclipse.hierarchyviewer/feature.xml2
-rw-r--r--eclipse/features/com.android.ide.eclipse.ndk/feature.xml2
-rw-r--r--eclipse/features/com.android.ide.eclipse.pdt/feature.xml2
-rw-r--r--eclipse/features/com.android.ide.eclipse.tests/feature.xml2
-rw-r--r--eclipse/features/com.android.ide.eclipse.traceview/feature.xml2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt.overlay/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt.package/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt.package/ide.product2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridModel.java12
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/Hyperlinks.java35
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ProjectHelper.java22
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/ProjectClassLoader.java44
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/AndroidJarLoader.java11
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/newproject/ImportPage.java7
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.base/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.ddms/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.monitor/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.monitor/monitor.product2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.monitor/plugin.properties2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.ndk/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.pdt/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/META-INF/MANIFEST.MF2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/editors/HyperlinksTest.java27
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.traceview/META-INF/MANIFEST.MF2
-rwxr-xr-xeclipse/scripts/update_version.sh60
-rw-r--r--eclipse/sites/external/site.xml12
-rw-r--r--eclipse/sites/internal/site.xml16
-rw-r--r--emulator/opengl/host/libs/Translator/GLcommon/RangeManip.cpp5
-rw-r--r--emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.cpp50
-rw-r--r--files/tools_source.properties2
39 files changed, 255 insertions, 102 deletions
diff --git a/adtproductbuild/Android.mk b/adtproductbuild/Android.mk
index 124eafb..2148cdf 100644
--- a/adtproductbuild/Android.mk
+++ b/adtproductbuild/Android.mk
@@ -121,7 +121,9 @@ $(5): $(ADT_IDE_JAVA_TARGET)
$(4)/eclipse/plugins/com.android.ide.eclipse.adt.package_*/about.mappings && \
sed -i -e 's/org.eclipse.platform.ide/com.android.ide.eclipse.adt.package.product/g' \
-e 's/org.eclipse.platform/com.android.ide.eclipse.adt.package/g' \
- $(4)/eclipse/configuration/config.ini
+ $(4)/eclipse/configuration/config.ini && \
+ echo "-XX:MaxPermSize=512M" >> \
+ $(4)/eclipse/$(if $(filter macosx.cocoa,$(1)),Eclipse.app/Contents/MacOS/)eclipse.ini
$(hide)cd $(4) && zip -9rq ../$(notdir $(5)) eclipse
ifneq (,$(ADT_IDE_DEST_DIR))
$(ADT_IDE_DEST_DIR)/$(notdir $(5)): $(5)
diff --git a/eclipse/features/com.android.ide.eclipse.adt.package/feature.xml b/eclipse/features/com.android.ide.eclipse.adt.package/feature.xml
index 8556ab4..ec3843b 100644
--- a/eclipse/features/com.android.ide.eclipse.adt.package/feature.xml
+++ b/eclipse/features/com.android.ide.eclipse.adt.package/feature.xml
@@ -2,7 +2,7 @@
<feature
id="com.android.ide.eclipse.adt.package"
label="ADT Package"
- version="22.2.1.qualifier"
+ version="22.3.0.qualifier"
provider-name="The Android Open Source Project"
plugin="com.android.ide.eclipse.adt.package">
diff --git a/eclipse/features/com.android.ide.eclipse.adt/feature.xml b/eclipse/features/com.android.ide.eclipse.adt/feature.xml
index 1d7d705..f90725c 100644
--- a/eclipse/features/com.android.ide.eclipse.adt/feature.xml
+++ b/eclipse/features/com.android.ide.eclipse.adt/feature.xml
@@ -2,7 +2,7 @@
<feature
id="com.android.ide.eclipse.adt"
label="Android Development Tools"
- version="22.2.1.qualifier"
+ version="22.3.0.qualifier"
provider-name="The Android Open Source Project"
plugin="com.android.ide.eclipse.adt">
diff --git a/eclipse/features/com.android.ide.eclipse.ddms/feature.xml b/eclipse/features/com.android.ide.eclipse.ddms/feature.xml
index 40b551e..3efcab4 100644
--- a/eclipse/features/com.android.ide.eclipse.ddms/feature.xml
+++ b/eclipse/features/com.android.ide.eclipse.ddms/feature.xml
@@ -2,7 +2,7 @@
<feature
id="com.android.ide.eclipse.ddms"
label="Android DDMS"
- version="22.2.1.qualifier"
+ version="22.3.0.qualifier"
provider-name="The Android Open Source Project"
plugin="com.android.ide.eclipse.ddms">
diff --git a/eclipse/features/com.android.ide.eclipse.gldebugger/feature.xml b/eclipse/features/com.android.ide.eclipse.gldebugger/feature.xml
index 4ce811b..dda3e0c 100644
--- a/eclipse/features/com.android.ide.eclipse.gldebugger/feature.xml
+++ b/eclipse/features/com.android.ide.eclipse.gldebugger/feature.xml
@@ -2,7 +2,7 @@
<feature
id="com.android.ide.eclipse.gldebugger"
label="Tracer for OpenGL ES"
- version="22.2.1.qualifier"
+ version="22.3.0.qualifier"
provider-name="The Android Open Source Project">
<description>
diff --git a/eclipse/features/com.android.ide.eclipse.hierarchyviewer/feature.xml b/eclipse/features/com.android.ide.eclipse.hierarchyviewer/feature.xml
index 2f1a11b..ea14352 100644
--- a/eclipse/features/com.android.ide.eclipse.hierarchyviewer/feature.xml
+++ b/eclipse/features/com.android.ide.eclipse.hierarchyviewer/feature.xml
@@ -2,7 +2,7 @@
<feature
id="com.android.ide.eclipse.hierarchyviewer"
label="Android Hierarchy Viewer"
- version="22.2.1.qualifier"
+ version="22.3.0.qualifier"
provider-name="The Android Open Source Project"
plugin="com.android.ide.eclipse.hierarchyviewer">
diff --git a/eclipse/features/com.android.ide.eclipse.ndk/feature.xml b/eclipse/features/com.android.ide.eclipse.ndk/feature.xml
index b3b294d..2ca0a61 100644
--- a/eclipse/features/com.android.ide.eclipse.ndk/feature.xml
+++ b/eclipse/features/com.android.ide.eclipse.ndk/feature.xml
@@ -2,7 +2,7 @@
<feature
id="com.android.ide.eclipse.ndk"
label="Android Native Development Tools"
- version="22.2.1.qualifier"
+ version="22.3.0.qualifier"
provider-name="The Android Open Source Project">
<description>
diff --git a/eclipse/features/com.android.ide.eclipse.pdt/feature.xml b/eclipse/features/com.android.ide.eclipse.pdt/feature.xml
index b946686..bd3f876 100644
--- a/eclipse/features/com.android.ide.eclipse.pdt/feature.xml
+++ b/eclipse/features/com.android.ide.eclipse.pdt/feature.xml
@@ -2,7 +2,7 @@
<feature
id="com.android.ide.eclipse.pdt"
label="Android Platform Development Tools"
- version="22.2.1.qualifier"
+ version="22.3.0.qualifier"
provider-name="The Android Open Source Project">
<description>
diff --git a/eclipse/features/com.android.ide.eclipse.tests/feature.xml b/eclipse/features/com.android.ide.eclipse.tests/feature.xml
index cd72629..932822d 100644
--- a/eclipse/features/com.android.ide.eclipse.tests/feature.xml
+++ b/eclipse/features/com.android.ide.eclipse.tests/feature.xml
@@ -2,7 +2,7 @@
<feature
id="com.android.ide.eclipse.tests"
label="ADT Tests"
- version="22.2.1.qualifier"
+ version="22.3.0.qualifier"
provider-name="The Android Open Source Project">
<copyright>
diff --git a/eclipse/features/com.android.ide.eclipse.traceview/feature.xml b/eclipse/features/com.android.ide.eclipse.traceview/feature.xml
index 7815f58..37bf9a4 100644
--- a/eclipse/features/com.android.ide.eclipse.traceview/feature.xml
+++ b/eclipse/features/com.android.ide.eclipse.traceview/feature.xml
@@ -2,7 +2,7 @@
<feature
id="com.android.ide.eclipse.traceview"
label="Android Traceview"
- version="22.2.1.qualifier"
+ version="22.3.0.qualifier"
provider-name="The Android Open Source Project"
plugin="com.android.ide.eclipse.traceview">
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt.overlay/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.adt.overlay/META-INF/MANIFEST.MF
index d6c0920..8ba1dcd 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt.overlay/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.adt.overlay/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ADT XML Overlay
Bundle-SymbolicName: overlay.com.android.ide.eclipse.adt.overlay;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-Vendor: The Android Open Source Project
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources,
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt.package/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.adt.package/META-INF/MANIFEST.MF
index b7c4fa2..010bf28 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt.package/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.adt.package/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ADT Package
Bundle-SymbolicName: com.android.ide.eclipse.adt.package;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-Vendor: The Android Open Source Project
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.eclipse.platform,
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt.package/ide.product b/eclipse/plugins/com.android.ide.eclipse.adt.package/ide.product
index 822082e..b532c53 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt.package/ide.product
+++ b/eclipse/plugins/com.android.ide.eclipse.adt.package/ide.product
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
-<product name="Android Developer Tools" uid="com.android.ide.eclipse.adt.package.product" id="com.android.ide.eclipse.adt.package.product" application="org.eclipse.ui.ide.workbench" version="22.2.1.qualifier" useFeatures="true" includeLaunchers="true">
+<product name="Android Developer Tools" uid="com.android.ide.eclipse.adt.package.product" id="com.android.ide.eclipse.adt.package.product" application="org.eclipse.ui.ide.workbench" version="22.3.0.qualifier" useFeatures="true" includeLaunchers="true">
<configIni use="default">
</configIni>
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.adt/META-INF/MANIFEST.MF
index ca5b9a1..bd72b31 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Android Development Toolkit
Bundle-SymbolicName: com.android.ide.eclipse.adt;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-ClassPath: .,
libs/sdkuilib.jar,
libs/ninepatch.jar,
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridModel.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridModel.java
index a453147..46770e8 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridModel.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/grid/GridModel.java
@@ -867,8 +867,16 @@ public class GridModel {
public static Pair<int[], int[]> getAxisBounds(Object view) {
try {
Class<?> clz = view.getClass();
- Field horizontalAxis = clz.getDeclaredField("horizontalAxis"); //$NON-NLS-1$
- Field verticalAxis = clz.getDeclaredField("verticalAxis"); //$NON-NLS-1$
+ String verticalAxisName = "verticalAxis";
+ Field horizontalAxis;
+ try {
+ horizontalAxis = clz.getDeclaredField("horizontalAxis"); //$NON-NLS-1$
+ } catch (NoSuchFieldException e) {
+ // Field names changed in KitKat
+ horizontalAxis = clz.getDeclaredField("mHorizontalAxis"); //$NON-NLS-1$
+ verticalAxisName = "mVerticalAxis";
+ }
+ Field verticalAxis = clz.getDeclaredField(verticalAxisName);
horizontalAxis.setAccessible(true);
verticalAxis.setAccessible(true);
Object horizontal = horizontalAxis.get(view);
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/Hyperlinks.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/Hyperlinks.java
index 91c4049..1df2e4d 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/Hyperlinks.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/Hyperlinks.java
@@ -162,7 +162,6 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.regex.Pattern;
/**
* Class containing hyperlink resolvers for XML and Java files to jump to associated
@@ -184,10 +183,36 @@ public class Hyperlinks {
// for the various inner classes that are actual hyperlink resolvers.
}
- /** Regular expression matching a FQCN for a view class */
+ /**
+ * Returns whether a string represents a valid fully qualified name for a view class.
+ * Does not check for existence.
+ */
@VisibleForTesting
- /* package */ static final Pattern CLASS_PATTERN = Pattern.compile(
- "(([a-zA-Z_\\$][a-zA-Z0-9_\\$]*)+\\.)+[a-zA-Z_\\$][a-zA-Z0-9_\\$]*"); //$NON-NLS-1$
+ static boolean isViewClassName(String name) {
+ int length = name.length();
+ if (length < 2 || name.indexOf('.') == -1) {
+ return false;
+ }
+
+ boolean lastWasDot = true;
+ for (int i = 0; i < length; i++) {
+ char c = name.charAt(i);
+ if (lastWasDot) {
+ if (!Character.isJavaIdentifierStart(c)) {
+ return false;
+ }
+ lastWasDot = false;
+ } else {
+ if (c == '.') {
+ lastWasDot = true;
+ } else if (!Character.isJavaIdentifierPart(c)) {
+ return false;
+ }
+ }
+ }
+
+ return !lastWasDot;
+ }
/** Determines whether the given attribute <b>name</b> is linkable */
private static boolean isAttributeNameLink(XmlContext context) {
@@ -368,7 +393,7 @@ public class Hyperlinks {
// If the element looks like a fully qualified class name (e.g. it's a custom view
// element) offer it as a link
String tag = context.getElement().getTagName();
- return (tag.indexOf('.') != -1 && CLASS_PATTERN.matcher(tag).matches());
+ return isViewClassName(tag);
}
/** Returns the FQCN for a class declaration at the given context */
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ProjectHelper.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ProjectHelper.java
index 2fceffe..44827a0 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ProjectHelper.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ProjectHelper.java
@@ -28,6 +28,7 @@ import com.android.ide.eclipse.adt.internal.build.builders.PreCompilerBuilder;
import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs;
import com.android.ide.eclipse.adt.internal.sdk.ProjectState;
import com.android.ide.eclipse.adt.internal.sdk.Sdk;
+import com.android.sdklib.IAndroidTarget;
import com.android.utils.Pair;
import org.eclipse.core.resources.ICommand;
@@ -437,7 +438,7 @@ public final class ProjectHelper {
String compliance = javaProject.getOption(JavaCore.COMPILER_COMPLIANCE, true);
// check it against a list of valid compliance level strings.
- if (checkCompliance(compliance) == false) {
+ if (!checkCompliance(javaProject, compliance)) {
// if we didn't find the proper compliance level, we return an error
return Pair.of(COMPILER_COMPLIANCE_LEVEL, compliance);
}
@@ -446,7 +447,7 @@ public final class ProjectHelper {
String source = javaProject.getOption(JavaCore.COMPILER_SOURCE, true);
// check it against a list of valid compliance level strings.
- if (checkCompliance(source) == false) {
+ if (!checkCompliance(javaProject, source)) {
// if we didn't find the proper compliance level, we return an error
return Pair.of(COMPILER_COMPLIANCE_SOURCE, source);
}
@@ -455,7 +456,7 @@ public final class ProjectHelper {
String codeGen = javaProject.getOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, true);
// check it against a list of valid compliance level strings.
- if (checkCompliance(codeGen) == false) {
+ if (!checkCompliance(javaProject, codeGen)) {
// if we didn't find the proper compliance level, we return an error
return Pair.of(COMPILER_COMPLIANCE_CODEGEN_TARGET, codeGen);
}
@@ -864,15 +865,26 @@ public final class ProjectHelper {
/**
* Checks a Java project compiler level option against a list of supported versions.
* @param optionValue the Compiler level option.
- * @return true if the option value is supproted.
+ * @return true if the option value is supported.
*/
- private static boolean checkCompliance(String optionValue) {
+ private static boolean checkCompliance(@NonNull IJavaProject project, String optionValue) {
for (String s : AdtConstants.COMPILER_COMPLIANCE) {
if (s != null && s.equals(optionValue)) {
return true;
}
}
+ if (JavaCore.VERSION_1_7.equals(optionValue)) {
+ // Requires API 19
+ Sdk currentSdk = Sdk.getCurrent();
+ if (currentSdk != null) {
+ IAndroidTarget target = currentSdk.getTarget(project.getProject());
+ if (target != null && target.getVersion().getApiLevel() >= 19) {
+ return true;
+ }
+ }
+ }
+
return false;
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/ProjectClassLoader.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/ProjectClassLoader.java
index f993d89..7c316b3 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/ProjectClassLoader.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/ProjectClassLoader.java
@@ -33,6 +33,10 @@ import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.Opcodes;
import java.io.File;
import java.io.FileInputStream;
@@ -144,9 +148,19 @@ public final class ProjectClassLoader extends ClassLoader {
fis.close();
if (data != null) {
- Class<?> clazz = defineClass(null, data, 0, read);
- if (clazz != null) {
- return clazz;
+ try {
+ Class<?> clazz = defineClass(null, data, 0, read);
+ if (clazz != null) {
+ return clazz;
+ }
+ } catch (UnsupportedClassVersionError e) {
+ // Attempt to reload on lower version
+ int maxVersion = 50; // JDK 1.6
+ try {
+ rewriteClass(data, maxVersion, 0);
+ } catch (UnsupportedClassVersionError e2) {
+ throw e; // throw *original* exception, not attempt to rewrite
+ }
}
}
} catch (Exception e) {
@@ -157,6 +171,30 @@ public final class ProjectClassLoader extends ClassLoader {
}
/**
+ * Rewrites the given class to the given target class file version.
+ */
+ public static byte[] rewriteClass(byte[] classData, final int maxVersion, final int minVersion) {
+ assert maxVersion >= minVersion;
+ ClassWriter classWriter = new ClassWriter(0);
+ ClassVisitor classVisitor = new ClassVisitor(Opcodes.ASM4, classWriter) {
+ @Override
+ public void visit(int version, int access, String name, String signature,
+ String superName, String[] interfaces) {
+ if (version > maxVersion) {
+ version = maxVersion;
+ }
+ if (version < minVersion) {
+ version = minVersion;
+ }
+ super.visit(version, access, name, signature, superName, interfaces);
+ }
+ };
+ ClassReader reader = new ClassReader(classData);
+ reader.accept(classVisitor, 0);
+ return classWriter.toByteArray();
+ }
+
+ /**
* Returns the File matching the a certain path from a root {@link File}.
* <p/>The methods checks that the file ends in .class even though the last segment
* does not.
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/AndroidJarLoader.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/AndroidJarLoader.java
index c4eb37f..754cedf 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/AndroidJarLoader.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/AndroidJarLoader.java
@@ -251,7 +251,16 @@ public class AndroidJarLoader extends ClassLoader implements IAndroidClassLoader
}
data = readZipData(zis, (int)entrySize);
}
- loaded_class = defineAndCacheClass(className, data);
+ try {
+ loaded_class = defineAndCacheClass(className, data);
+ } catch (NoClassDefFoundError error) {
+ if (error.getMessage().startsWith("java/")) {
+ // Can't define these; we just need to stop
+ // iteration here
+ continue;
+ }
+ throw error;
+ }
}
for (Class<?> superClass = loaded_class.getSuperclass();
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/newproject/ImportPage.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/newproject/ImportPage.java
index 95ef6c0..1e02fed 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/newproject/ImportPage.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/newproject/ImportPage.java
@@ -206,6 +206,11 @@ class ImportPage extends WizardPage implements SelectionListener, IStructuredCon
mCheckboxTableViewer.refresh();
mCheckboxTableViewer.setAllChecked(true);
+ updateValidity();
+ validatePage();
+ }
+
+ private void updateValidity(){
List<ImportedProject> selected = new ArrayList<ImportedProject>();
List<ImportedProject> disabled = new ArrayList<ImportedProject>();
for (ImportedProject project : mProjectPaths) {
@@ -230,7 +235,6 @@ class ImportPage extends WizardPage implements SelectionListener, IStructuredCon
mCheckboxTableViewer.setCheckedElements(selected.toArray());
mCheckboxTableViewer.refresh();
mCheckboxTableViewer.getTable().setFocus();
- validatePage();
}
private List<ImportedProject> searchForProjects(File dir) {
@@ -485,6 +489,7 @@ class ImportPage extends WizardPage implements SelectionListener, IStructuredCon
ImportedProject project = (ImportedProject) element;
project.setProjectName(value.toString());
mCheckboxTableViewer.update(element, null);
+ updateValidity();
validatePage();
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.base/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.base/META-INF/MANIFEST.MF
index 35b24ef..0cc6348 100644
--- a/eclipse/plugins/com.android.ide.eclipse.base/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.base/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Common Android Utilities
Bundle-SymbolicName: com.android.ide.eclipse.base;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime
Bundle-ActivationPolicy: lazy
diff --git a/eclipse/plugins/com.android.ide.eclipse.ddms/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.ddms/META-INF/MANIFEST.MF
index 2c1b17e..e956a16 100644
--- a/eclipse/plugins/com.android.ide.eclipse.ddms/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.ddms/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: com.android.ide.eclipse.ddms;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-Activator: com.android.ide.eclipse.ddms.DdmsPlugin
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/META-INF/MANIFEST.MF
index cd2da56..fb7ba7f 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: gldebugger-tests
Bundle-SymbolicName: com.android.ide.eclipse.gldebugger.tests
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.junit4;bundle-version="4.5.0";resolution:=optional,
com.android.ide.eclipse.gldebugger,
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.gldebugger/META-INF/MANIFEST.MF
index 1764e0f..0b7852f 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Tracer for OpenGL ES
Bundle-SymbolicName: com.android.ide.eclipse.gldebugger;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-Activator: com.android.ide.eclipse.gltrace.GlTracePlugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
diff --git a/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/META-INF/MANIFEST.MF
index 7b983ec..7caacf5 100644
--- a/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Hierarchy Viewer
Bundle-SymbolicName: com.android.ide.eclipse.hierarchyviewer;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-Activator: com.android.ide.eclipse.hierarchyviewer.HierarchyViewerPlugin
Bundle-Vendor: The Android Open Source Project
Bundle-Localization: plugin
diff --git a/eclipse/plugins/com.android.ide.eclipse.monitor/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.monitor/META-INF/MANIFEST.MF
index 5e99a5d..689da94 100644
--- a/eclipse/plugins/com.android.ide.eclipse.monitor/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.monitor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: com.android.ide.eclipse.monitor;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-Activator: com.android.ide.eclipse.monitor.MonitorPlugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
diff --git a/eclipse/plugins/com.android.ide.eclipse.monitor/monitor.product b/eclipse/plugins/com.android.ide.eclipse.monitor/monitor.product
index 230342c..03376e4 100644
--- a/eclipse/plugins/com.android.ide.eclipse.monitor/monitor.product
+++ b/eclipse/plugins/com.android.ide.eclipse.monitor/monitor.product
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
-<product name="monitor" uid="com.android.ide.eclipse.monitor.product.config" id="com.android.ide.eclipse.monitor.product" application="com.android.ide.eclipse.monitor.Application" version="22.2.1" useFeatures="false" includeLaunchers="true">
+<product name="monitor" uid="com.android.ide.eclipse.monitor.product.config" id="com.android.ide.eclipse.monitor.product" application="com.android.ide.eclipse.monitor.Application" version="22.3.0" useFeatures="false" includeLaunchers="true">
<configIni use="default">
diff --git a/eclipse/plugins/com.android.ide.eclipse.monitor/plugin.properties b/eclipse/plugins/com.android.ide.eclipse.monitor/plugin.properties
index e4b9520..4191caf 100644
--- a/eclipse/plugins/com.android.ide.eclipse.monitor/plugin.properties
+++ b/eclipse/plugins/com.android.ide.eclipse.monitor/plugin.properties
@@ -4,5 +4,5 @@ Bundle-Vendor = The Android Open Source Project
Bundle-Name = Monitor
aboutText = \n\
Android Device Monitor\n\
-Version: 22.2.1 \n\
+Version: 22.3.0 \n\
Copyright 2012, The Android Open Source Project \n\
diff --git a/eclipse/plugins/com.android.ide.eclipse.ndk/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.ndk/META-INF/MANIFEST.MF
index 5a5923c..10e3367 100644
--- a/eclipse/plugins/com.android.ide.eclipse.ndk/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.ndk/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ADT CDT Integration
Bundle-SymbolicName: com.android.ide.eclipse.ndk;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-Activator: com.android.ide.eclipse.ndk.internal.Activator
Bundle-Vendor: The Android Open Source Project
Require-Bundle: org.eclipse.core.runtime,
diff --git a/eclipse/plugins/com.android.ide.eclipse.pdt/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.pdt/META-INF/MANIFEST.MF
index f2bd73b..d2c7fa2 100644
--- a/eclipse/plugins/com.android.ide.eclipse.pdt/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.pdt/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Pdt
Bundle-SymbolicName: com.android.ide.eclipse.pdt;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-Vendor: The Android Open Source Project
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.tests/META-INF/MANIFEST.MF
index e168353..4e9382c 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Android Plugin Tests
Bundle-SymbolicName: com.android.ide.eclipse.tests
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-Vendor: The Android Open Source Project
Fragment-Host: com.android.ide.eclipse.adt;bundle-version="21.0.0"
Require-Bundle: org.junit
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/editors/HyperlinksTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/editors/HyperlinksTest.java
index cb83947..20aae84 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/editors/HyperlinksTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/adt/internal/editors/HyperlinksTest.java
@@ -54,23 +54,22 @@ public class HyperlinksTest extends AdtProjectTest {
}
public void testFqnRegexp() throws Exception {
- assertTrue(Hyperlinks.CLASS_PATTERN.matcher("com.android.Foo").matches());
- assertTrue(Hyperlinks.CLASS_PATTERN.matcher("com.android.pk_g.Foo_Bar1").
- matches());
- assertTrue(Hyperlinks.CLASS_PATTERN.matcher("com.android.Foo$Inner").matches());
+ assertTrue(Hyperlinks.isViewClassName("com.android.Foo"));
+ assertTrue(Hyperlinks.isViewClassName("com.android.pk_g.Foo_Bar1"));
+ assertTrue(Hyperlinks.isViewClassName("com.android.Foo$Inner"));
// Should we allow non-standard packages and class names?
// For now, we're allowing it -- see how this works out in practice.
- //assertFalse(XmlHyperlinkResolver.CLASS_PATTERN.matcher("Foo.bar").matches());
- assertTrue(Hyperlinks.CLASS_PATTERN.matcher("Foo.bar").matches());
-
- assertFalse(Hyperlinks.CLASS_PATTERN.matcher("LinearLayout").matches());
- assertFalse(Hyperlinks.CLASS_PATTERN.matcher(".").matches());
- assertFalse(Hyperlinks.CLASS_PATTERN.matcher(".F").matches());
- assertFalse(Hyperlinks.CLASS_PATTERN.matcher("f.").matches());
- assertFalse(Hyperlinks.CLASS_PATTERN.matcher("Foo").matches());
- assertFalse(Hyperlinks.CLASS_PATTERN.matcher("com.android.1Foo").matches());
- assertFalse(Hyperlinks.CLASS_PATTERN.matcher("1com.Foo").matches());
+ //assertFalse(XmlHyperlinkResolver.isViewClassName("Foo.bar"));
+ assertTrue(Hyperlinks.isViewClassName("Foo.bar"));
+
+ assertFalse(Hyperlinks.isViewClassName("LinearLayout"));
+ assertFalse(Hyperlinks.isViewClassName("."));
+ assertFalse(Hyperlinks.isViewClassName(".F"));
+ assertFalse(Hyperlinks.isViewClassName("f."));
+ assertFalse(Hyperlinks.isViewClassName("Foo"));
+ assertFalse(Hyperlinks.isViewClassName("com.android.1Foo"));
+ assertFalse(Hyperlinks.isViewClassName("1com.Foo"));
}
public void testNavigate1() throws Exception {
diff --git a/eclipse/plugins/com.android.ide.eclipse.traceview/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.traceview/META-INF/MANIFEST.MF
index c0fde0f..4686211 100644
--- a/eclipse/plugins/com.android.ide.eclipse.traceview/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.traceview/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Traceview
Bundle-SymbolicName: com.android.ide.eclipse.traceview;singleton:=true
-Bundle-Version: 22.2.1.qualifier
+Bundle-Version: 22.3.0.qualifier
Bundle-Activator: com.android.ide.eclipse.traceview.TraceviewPlugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
diff --git a/eclipse/scripts/update_version.sh b/eclipse/scripts/update_version.sh
index 855b97c..5b54c99 100755
--- a/eclipse/scripts/update_version.sh
+++ b/eclipse/scripts/update_version.sh
@@ -2,7 +2,6 @@
OLD="$1"
NEW="$2"
-REALOLD="$1"
# sanity check in input args
if [ -z "$OLD" ] || [ -z "$NEW" ]; then
@@ -22,22 +21,55 @@ if [ `basename "$PWD"` != "eclipse" ]; then
exit 1
fi
-# quote dots for regexps
-OLD="${OLD//./\.}\.qualifier"
-NEW="${NEW//./\.}\.qualifier"
-
-# Now find the same files but this time use sed to replace in-place with
-# the new pattern. Old files get backuped with the .old extension.
-if [[ $(uname) == "Linux" ]]; then
- grep -rl "$OLD" * | grep -E "\.xml$|\.MF$" | xargs -n 1 sed -i "s/$OLD/$NEW/g"
+# sanity check the new version number
+if [[ "$NEW" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
+ echo "## Version $NEW: seems valid."
else
- # sed on Mac doesn't handle -i the same way as on Linux
- grep -rl "$OLD" * | grep -E "\.xml$|\.MF$" | xargs -n 1 sed -i "" "s/$OLD/$NEW/g"
+ echo "## Version $NEW: does not conform to major.mino.micro format."
+ exit 1
fi
-echo "Remaining instances of $REALOLD"
+function replace() {
+ if [[ -f "$1" ]]; then
+ echo "### Change $SED_OLD => $SED_NEW in $1"
+ if [[ $(uname) == "Linux" ]]; then
+ sed -i "s/$SED_OLD/$SED_NEW/g" "$1"
+ else
+ # sed on Mac doesn't handle -i the same way as on Linux
+ sed -i "" "s/$SED_OLD/$SED_NEW/g" "$1"
+ fi
+ fi
+}
+
+# ---1--- Change Eclipse's qualified version numbers
+# quote dots for regexps
+SED_OLD="${OLD//./\.}\.qualifier"
+SED_NEW="${NEW//./\.}\.qualifier"
+
+for i in $(grep -rl "$OLD" * | grep -E "\.xml$|\.MF$"); do
+ if [[ -f "$i" && $(basename "$i") != "build.xml" ]]; then
+ replace "$i"
+ fi
+done
+
+# ---2--- Change unqualified version numbers in specific files
+SED_OLD="${OLD//./\.}"
+SED_NEW="${NEW//./\.}"
+for i in plugins/com.android.ide.eclipse.adt.package/ide.product \
+ plugins/com.android.ide.eclipse.monitor/monitor.product \
+ plugins/com.android.ide.eclipse.monitor/plugin.properties; do
+ if grep -qs "$OLD" "$i"; then
+ replace "$i"
+ fi
+done
+
# do another grep for older version without the qualifier. We don't
# want to replace those automatically as it could be something else.
-# Printing out occurence helps find ones to update manually.
-grep -r "$REALOLD" *
+# Printing out occurence helps find ones to update manually, but exclude
+# some known useless files.
+echo
+echo "#### ----------------"
+echo "#### Remaining instances of $OLD"
+echo
+grep -r "$OLD" * | grep -v -E "/build.xml:|/javaCompiler\.\.\.args:"
diff --git a/eclipse/sites/external/site.xml b/eclipse/sites/external/site.xml
index 4971b68..17033d9 100644
--- a/eclipse/sites/external/site.xml
+++ b/eclipse/sites/external/site.xml
@@ -3,22 +3,22 @@
<description url="https://dl-ssl.google.com/android/eclipse/">
Update Site for Android Development Toolkit
</description>
- <feature url="features/com.android.ide.eclipse.adt_22.2.1.qualifier.jar" id="com.android.ide.eclipse.adt" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.adt_22.3.0.qualifier.jar" id="com.android.ide.eclipse.adt" version="22.3.0.qualifier">
<category name="developer"/>
</feature>
- <feature url="features/com.android.ide.eclipse.ddms_22.2.1.qualifier.jar" id="com.android.ide.eclipse.ddms" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.ddms_22.3.0.qualifier.jar" id="com.android.ide.eclipse.ddms" version="22.3.0.qualifier">
<category name="developer"/>
</feature>
- <feature url="features/com.android.ide.eclipse.hierarchyviewer_22.2.1.qualifier.jar" id="com.android.ide.eclipse.hierarchyviewer" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.hierarchyviewer_22.3.0.qualifier.jar" id="com.android.ide.eclipse.hierarchyviewer" version="22.3.0.qualifier">
<category name="developer"/>
</feature>
- <feature url="features/com.android.ide.eclipse.traceview_22.2.1.qualifier.jar" id="com.android.ide.eclipse.traceview" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.traceview_22.3.0.qualifier.jar" id="com.android.ide.eclipse.traceview" version="22.3.0.qualifier">
<category name="developer"/>
</feature>
- <feature url="features/com.android.ide.eclipse.gldebugger_22.2.1.qualifier.jar" id="com.android.ide.eclipse.gldebugger" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.gldebugger_22.3.0.qualifier.jar" id="com.android.ide.eclipse.gldebugger" version="22.3.0.qualifier">
<category name="developer"/>
</feature>
- <feature url="features/com.android.ide.eclipse.ndk_22.2.1.qualifier.jar" id="com.android.ide.eclipse.ndk" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.ndk_22.3.0.qualifier.jar" id="com.android.ide.eclipse.ndk" version="22.3.0.qualifier">
<category name="ndk"/>
</feature>
<category-def name="developer" label="Developer Tools">
diff --git a/eclipse/sites/internal/site.xml b/eclipse/sites/internal/site.xml
index e3bb910..c91db12 100644
--- a/eclipse/sites/internal/site.xml
+++ b/eclipse/sites/internal/site.xml
@@ -3,32 +3,32 @@
<description url="https://android.corp.google.com/adt/">
Update Site for Android Development Toolkit
</description>
- <feature url="features/com.android.ide.eclipse.adt_22.2.1.qualifier.jar" id="com.android.ide.eclipse.adt" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.adt_22.3.0.qualifier.jar" id="com.android.ide.eclipse.adt" version="22.3.0.qualifier">
<category name="developer"/>
</feature>
- <feature url="features/com.android.ide.eclipse.ddms_22.2.1.qualifier.jar" id="com.android.ide.eclipse.ddms" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.ddms_22.3.0.qualifier.jar" id="com.android.ide.eclipse.ddms" version="22.3.0.qualifier">
<category name="developer"/>
<category name="platform"/>
</feature>
- <feature url="features/com.android.ide.eclipse.hierarchyviewer_22.2.1.qualifier.jar" id="com.android.ide.eclipse.hierarchyviewer" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.hierarchyviewer_22.3.0.qualifier.jar" id="com.android.ide.eclipse.hierarchyviewer" version="22.3.0.qualifier">
<category name="developer"/>
<category name="platform"/>
</feature>
- <feature url="features/com.android.ide.eclipse.tests_22.2.1.qualifier.jar" id="com.android.ide.eclipse.tests" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.tests_22.3.0.qualifier.jar" id="com.android.ide.eclipse.tests" version="22.3.0.qualifier">
<category name="test"/>
</feature>
- <feature url="features/com.android.ide.eclipse.pdt_22.2.1.qualifier.jar" id="com.android.ide.eclipse.pdt" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.pdt_22.3.0.qualifier.jar" id="com.android.ide.eclipse.pdt" version="22.3.0.qualifier">
<category name="platform"/>
</feature>
- <feature url="features/com.android.ide.eclipse.traceview_22.2.1.qualifier.jar" id="com.android.ide.eclipse.traceview" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.traceview_22.3.0.qualifier.jar" id="com.android.ide.eclipse.traceview" version="22.3.0.qualifier">
<category name="developer"/>
<category name="platform"/>
</feature>
- <feature url="features/com.android.ide.eclipse.gldebugger_22.2.1.qualifier.jar" id="com.android.ide.eclipse.gldebugger" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.gldebugger_22.3.0.qualifier.jar" id="com.android.ide.eclipse.gldebugger" version="22.3.0.qualifier">
<category name="developer"/>
<category name="platform"/>
</feature>
- <feature url="features/com.android.ide.eclipse.ndk_22.2.1.qualifier.jar" id="com.android.ide.eclipse.ndk" version="22.2.1.qualifier">
+ <feature url="features/com.android.ide.eclipse.ndk_22.3.0.qualifier.jar" id="com.android.ide.eclipse.ndk" version="22.3.0.qualifier">
<category name="developer"/>
<category name="platform"/>
</feature>
diff --git a/emulator/opengl/host/libs/Translator/GLcommon/RangeManip.cpp b/emulator/opengl/host/libs/Translator/GLcommon/RangeManip.cpp
index 5ba609b..2d6f119 100644
--- a/emulator/opengl/host/libs/Translator/GLcommon/RangeManip.cpp
+++ b/emulator/opengl/host/libs/Translator/GLcommon/RangeManip.cpp
@@ -35,13 +35,14 @@ bool Range::rangeUnion(const Range& r,Range& rOut) const {
int size = max_end - min_start;
if(size) {
rOut.setRange(min_start,max_end-min_start);
- return false;
+ return true;
}
return false;
}
void RangeList::addRange(const Range& r) {
- list.push_back(r);
+ if(r.getSize())
+ list.push_back(r);
}
void RangeList::addRanges(const RangeList& rl) {
diff --git a/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.cpp b/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.cpp
index 8504f7f..c7da37a 100644
--- a/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.cpp
+++ b/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.cpp
@@ -16,10 +16,19 @@
#include "GLSharedGroup.h"
+/**** KeyedVector utilities ****/
+
+template <typename T>
+static void clearObjectMap(android::DefaultKeyedVector<GLuint, T>& v) {
+ for (size_t i = 0; i < v.size(); i++)
+ delete v.valueAt(i);
+ v.clear();
+}
+
/**** BufferData ****/
BufferData::BufferData() : m_size(0) {};
-BufferData::BufferData(GLsizeiptr size, void * data) : m_size(size)
+BufferData::BufferData(GLsizeiptr size, void * data) : m_size(size)
{
void * buffer = NULL;
if (size>0) buffer = m_fixedBuffer.alloc(size);
@@ -55,7 +64,7 @@ ProgramData::~ProgramData()
}
void ProgramData::setIndexInfo(GLuint index, GLint base, GLint size, GLenum type)
-{
+{
if (index>=m_numIndexes)
return;
m_Indexes[index].base = base;
@@ -87,7 +96,7 @@ GLuint ProgramData::getIndexForLocation(GLint location)
for (GLuint i=0;i<m_numIndexes;++i)
{
GLint dist = location - m_Indexes[i].base;
- if (dist >= 0 &&
+ if (dist >= 0 &&
(minDist < 0 || dist < minDist)) {
index = i;
minDist = dist;
@@ -126,7 +135,7 @@ GLint ProgramData::locationWARHostToApp(GLint hostLoc, GLint arrIndex)
GLuint index = getIndexForLocation(hostLoc);
if (index<m_numIndexes) {
if (arrIndex > 0) {
- m_Indexes[index].hostLocsPerElement =
+ m_Indexes[index].hostLocsPerElement =
(hostLoc - m_Indexes[index].base) / arrIndex;
}
return m_Indexes[index].appBase + arrIndex;
@@ -226,12 +235,15 @@ GLSharedGroup::~GLSharedGroup()
{
m_buffers.clear();
m_programs.clear();
+ clearObjectMap(m_buffers);
+ clearObjectMap(m_programs);
+ clearObjectMap(m_shaders);
}
BufferData * GLSharedGroup::getBufferData(GLuint bufferId)
{
android::AutoMutex _lock(m_lock);
- return m_buffers.valueFor(bufferId);
+ return m_buffers.valueFor(bufferId);
}
void GLSharedGroup::addBufferData(GLuint bufferId, GLsizeiptr size, void * data)
@@ -243,32 +255,42 @@ void GLSharedGroup::addBufferData(GLuint bufferId, GLsizeiptr size, void * data)
void GLSharedGroup::updateBufferData(GLuint bufferId, GLsizeiptr size, void * data)
{
android::AutoMutex _lock(m_lock);
- m_buffers.replaceValueFor(bufferId, new BufferData(size, data));
+ ssize_t idx = m_buffers.indexOfKey(bufferId);
+ if (idx >= 0) {
+ delete m_buffers.valueAt(idx);
+ m_buffers.editValueAt(idx) = new BufferData(size, data);
+ } else {
+ m_buffers.add(bufferId, new BufferData(size, data));
+ }
}
GLenum GLSharedGroup::subUpdateBufferData(GLuint bufferId, GLintptr offset, GLsizeiptr size, void * data)
{
android::AutoMutex _lock(m_lock);
BufferData * buf = m_buffers.valueFor(bufferId);
- if ((!buf) || (buf->m_size < offset+size) || (offset < 0) || (size<0)) return GL_INVALID_VALUE;
+ if ((!buf) || (buf->m_size < offset+size) || (offset < 0) || (size<0)) return GL_INVALID_VALUE;
//it's safe to update now
memcpy((char*)buf->m_fixedBuffer.ptr() + offset, data, size);
- return GL_NO_ERROR;
+ return GL_NO_ERROR;
}
void GLSharedGroup::deleteBufferData(GLuint bufferId)
{
android::AutoMutex _lock(m_lock);
- m_buffers.removeItem(bufferId);
+ ssize_t idx = m_buffers.indexOfKey(bufferId);
+ if (idx >= 0) {
+ delete m_buffers.valueAt(idx);
+ m_buffers.removeItemsAt(idx);
+ }
}
void GLSharedGroup::addProgramData(GLuint program)
{
android::AutoMutex _lock(m_lock);
ProgramData *pData = m_programs.valueFor(program);
- if (pData)
- {
+ if (pData)
+ {
m_programs.removeItem(program);
delete pData;
}
@@ -290,7 +312,7 @@ bool GLSharedGroup::isProgramInitialized(GLuint program)
{
android::AutoMutex _lock(m_lock);
ProgramData* pData = m_programs.valueFor(program);
- if (pData)
+ if (pData)
{
return pData->isInitialized();
}
@@ -303,7 +325,7 @@ void GLSharedGroup::deleteProgramData(GLuint program)
ProgramData *pData = m_programs.valueFor(program);
if (pData)
delete pData;
- m_programs.removeItem(program);
+ m_programs.removeItem(program);
}
void GLSharedGroup::attachShader(GLuint program, GLuint shader)
@@ -363,7 +385,7 @@ GLenum GLSharedGroup::getProgramUniformType(GLuint program, GLint location)
android::AutoMutex _lock(m_lock);
ProgramData* pData = m_programs.valueFor(program);
GLenum type=0;
- if (pData)
+ if (pData)
{
type = pData->getTypeForLocation(location);
}
diff --git a/files/tools_source.properties b/files/tools_source.properties
index f5fa342..7e6337e 100644
--- a/files/tools_source.properties
+++ b/files/tools_source.properties
@@ -1,3 +1,3 @@
Pkg.UserSrc=false
-Pkg.Revision=22.2.1
+Pkg.Revision=22.3
Platform.MinPlatformToolsRev=18