diff options
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 |
