Merge "Rename ZoneInfoDB -> ZoneInfoDb"
diff --git a/libart/src/main/java/dalvik/system/VMRuntime.java b/libart/src/main/java/dalvik/system/VMRuntime.java
index a97d7fc..6171cb6 100644
--- a/libart/src/main/java/dalvik/system/VMRuntime.java
+++ b/libart/src/main/java/dalvik/system/VMRuntime.java
@@ -475,12 +475,6 @@
public native void clampGrowthLimit();
/**
- * Returns true if either a Java debugger or native debugger is active.
- */
- @FastNative
- public native boolean isDebuggerActive();
-
- /**
* Returns true if native debugging is on.
*/
@libcore.api.CorePlatformApi
diff --git a/libart/src/main/java/java/lang/Daemons.java b/libart/src/main/java/java/lang/Daemons.java
index 183a588..568614f 100644
--- a/libart/src/main/java/java/lang/Daemons.java
+++ b/libart/src/main/java/java/lang/Daemons.java
@@ -29,6 +29,7 @@
import libcore.util.EmptyArray;
import dalvik.system.VMRuntime;
+import dalvik.system.VMDebug;
/**
* Calls Object.finalize() on objects in the finalizer reference queue. The VM
@@ -322,7 +323,7 @@
continue;
}
final Object finalizing = waitForFinalization();
- if (finalizing != null && !VMRuntime.getRuntime().isDebuggerActive()) {
+ if (finalizing != null && !VMDebug.isDebuggerConnected()) {
finalizerTimedOut(finalizing);
break;
}
diff --git a/metrictests/memory/apps/AndroidManifest.xml b/metrictests/memory/apps/AndroidManifest.xml
index a8856aa..a4b3488 100644
--- a/metrictests/memory/apps/AndroidManifest.xml
+++ b/metrictests/memory/apps/AndroidManifest.xml
@@ -18,7 +18,9 @@
package="libcore.heapdumper">
<uses-sdk android:minSdkVersion="19" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
<instrumentation
android:name="libcore.heapdumper.HeapDumpInstrumentation"
diff --git a/metrictests/memory/apps/src/libcore/heapdumper/Actions.java b/metrictests/memory/apps/src/libcore/heapdumper/Actions.java
index e8b56f1..e5ef4ba 100644
--- a/metrictests/memory/apps/src/libcore/heapdumper/Actions.java
+++ b/metrictests/memory/apps/src/libcore/heapdumper/Actions.java
@@ -19,6 +19,8 @@
import java.text.Collator;
import java.util.Arrays;
import java.util.Locale;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* An enumeration of actions for which we'd like to measure the effect on the post-GC heap.
@@ -65,6 +67,33 @@
}
},
+ REGEX {
+ @Override
+ public void run() {
+ final String sequence = "foo 123 bar baz";
+ Pattern p = Pattern.compile("foo (\\d+) bar (\\w+)");
+ Matcher m = p.matcher(sequence);
+
+ boolean found = m.find();
+ boolean matches = m.matches();
+ int groups = m.groupCount();
+ String first = m.group(1);
+ String second = m.group(2);
+ boolean hitEnd = m.hitEnd();
+
+ // Set region to prefix of the original sequence
+ m.region(0, "foo 123".length());
+ boolean matchesPrefix = m.lookingAt();
+ boolean requireEnd = m.requireEnd();
+
+ m.useTransparentBounds(true);
+ boolean matchesPrefixTransparentBounds = m.lookingAt();
+
+ m.useAnchoringBounds(true);
+ boolean matchesPrefixAnchoringBounds = m.lookingAt();
+ }
+ }
+
;
private static void useCollatorForLocale(Locale locale) {
diff --git a/metrictests/memory/host/src/libcore/heapmetrics/LibcoreHeapMetricsTest.java b/metrictests/memory/host/src/libcore/heapmetrics/LibcoreHeapMetricsTest.java
index 5340d90..2231614 100644
--- a/metrictests/memory/host/src/libcore/heapmetrics/LibcoreHeapMetricsTest.java
+++ b/metrictests/memory/host/src/libcore/heapmetrics/LibcoreHeapMetricsTest.java
@@ -103,6 +103,12 @@
recordBeforeAndAfterAppHeapMetrics(result.getBeforeDump(), result.getAfterDump());
}
+ @Test
+ public void measureRegexes() throws Exception {
+ MetricsRunner.Result result = metricsRunner.runAllInstrumentations("REGEX");
+ recordBeforeAndAfterAppHeapMetrics(result.getBeforeDump(), result.getAfterDump());
+ }
+
private void recordHeapMetrics(AhatSnapshot dump, String metricPrefix, String heapName) {
AhatHeap heap = dump.getHeap(heapName);
recordSizeMetric(metricPrefix, heap.getSize());
diff --git a/metrictests/memory/host/src/libcore/heapmetrics/MetricsRunner.java b/metrictests/memory/host/src/libcore/heapmetrics/MetricsRunner.java
index c3f9e0d..00d5554 100644
--- a/metrictests/memory/host/src/libcore/heapmetrics/MetricsRunner.java
+++ b/metrictests/memory/host/src/libcore/heapmetrics/MetricsRunner.java
@@ -155,7 +155,7 @@
String action, String relativeDirectoryName, String deviceDirectoryName, String apk)
throws DeviceNotAvailableException, IOException {
String command = String.format(
- "am instrument -w -e dumpdir %s -e action %s %s",
+ "am instrument --no-isolated-storage -w -e dumpdir %s -e action %s %s",
relativeDirectoryName, action, apk);
testDevice.executeShellCommand(command);
checkForErrorFile(deviceDirectoryName);
diff --git a/ojluni/src/main/java/java/net/NetworkInterface.java b/ojluni/src/main/java/java/net/NetworkInterface.java
index eab09ab..673a1d2 100644
--- a/ojluni/src/main/java/java/net/NetworkInterface.java
+++ b/ojluni/src/main/java/java/net/NetworkInterface.java
@@ -37,9 +37,6 @@
import java.util.Map;
import java.util.NoSuchElementException;
-import android.compat.annotation.ChangeId;
-import android.compat.Compatibility;
-import android.system.Os;
import android.system.StructIfaddrs;
import libcore.io.IoUtils;
import libcore.io.Libcore;
@@ -61,21 +58,6 @@
* @since 1.4
*/
public final class NetworkInterface {
- // BEGIN Android-added: Return anonymized device address to non-system processes.
- /**
- * Gates whether calls to {@link #getHardwareAddress()} made by non-system processes
- * to return the actual MAC address (pre-change behavior) or an anonymized MAC address
- * (post-change behavior). Future versions of Android will enforce the post-change
- * behavior through SELinux.
- */
- @ChangeId
- static final long ANONYMIZED_DEVICE_ADDRESS_CHANGE_ID = 141455849L;
- // This is used instead of the own device MAC.
- private static final byte[] ANONYMIZED_DEVICE_ADDRESS = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00};
- // First UID of non-system applications. See {@code android.os.Process.FIRST_APPLICATION_UID}.
- private static final int FIRST_APPLICATION_UID = 10000;
- // END Android-added: Return anonymized device address to non-system processes.
-
private String name;
private String displayName;
private int index;
@@ -569,23 +551,8 @@
if (ni == null) {
throw new SocketException("NetworkInterface doesn't exist anymore");
}
+ return ni.hardwareAddr;
// END Android-changed: Fix upstream not returning link-down interfaces. http://b/26238832
- // BEGIN Android-changed: Return anonymized device address to non-system processes.
- if (!Compatibility.isChangeEnabled(ANONYMIZED_DEVICE_ADDRESS_CHANGE_ID)) {
- return ni.hardwareAddr;
- } else {
- if (ni.hardwareAddr == null) {
- // MAC address does not exist or is not accessible.
- return null;
- }
- if (Os.getuid() < FIRST_APPLICATION_UID) {
- // This is a system process. Return the actual MAC address.
- return ni.hardwareAddr;
- } else {
- return ANONYMIZED_DEVICE_ADDRESS;
- }
- }
- // END Android-changed: Return anonymized device address to non-system processes.
}
/**