Merge "Made Self Verification mode's memory interface less intrusive."
diff --git a/libcore/security/src/main/files/cacerts.bks b/libcore/security/src/main/files/cacerts.bks
index 4f6fad4..ca45764 100644
--- a/libcore/security/src/main/files/cacerts.bks
+++ b/libcore/security/src/main/files/cacerts.bks
Binary files differ
diff --git a/libcore/security/src/main/files/cacerts/2afc57aa.0 b/libcore/security/src/main/files/cacerts/2afc57aa.0
new file mode 100644
index 0000000..31b8092
--- /dev/null
+++ b/libcore/security/src/main/files/cacerts/2afc57aa.0
@@ -0,0 +1,88 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            2e:6a:00:01:00:02:1f:d7:52:21:2c:11:5c:3b
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=DE, O=TC TrustCenter GmbH, OU=TC TrustCenter Class 2 CA, CN=TC TrustCenter Class 2 CA II
+        Validity
+            Not Before: Jan 12 14:38:43 2006 GMT
+            Not After : Dec 31 22:59:59 2025 GMT
+        Subject: C=DE, O=TC TrustCenter GmbH, OU=TC TrustCenter Class 2 CA, CN=TC TrustCenter Class 2 CA II
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (2048 bit)
+                Modulus (2048 bit):
+                    00:ab:80:87:9b:8e:f0:c3:7c:87:d7:e8:24:82:11:
+                    b3:3c:dd:43:62:ee:f8:c3:45:da:e8:e1:a0:5f:d1:
+                    2a:b2:ea:93:68:df:b4:c8:d6:43:e9:c4:75:59:7f:
+                    fc:e1:1d:f8:31:70:23:1b:88:9e:27:b9:7b:fd:3a:
+                    d2:c9:a9:e9:14:2f:90:be:03:52:c1:49:cd:f6:fd:
+                    e4:08:66:0b:57:8a:a2:42:a0:b8:d5:7f:69:5c:90:
+                    32:b2:97:0d:ca:4a:dc:46:3e:02:55:89:53:e3:1a:
+                    5a:cb:36:c6:07:56:f7:8c:cf:11:f4:4c:bb:30:70:
+                    04:95:a5:f6:39:8c:fd:73:81:08:7d:89:5e:32:1e:
+                    22:a9:22:45:4b:b0:66:2e:30:cc:9f:65:fd:fc:cb:
+                    81:a9:f1:e0:3b:af:a3:86:d1:89:ea:c4:45:79:50:
+                    5d:ae:e9:21:74:92:4d:8b:59:82:8f:94:e3:e9:4a:
+                    f1:e7:49:b0:14:e3:f5:62:cb:d5:72:bd:1f:b9:d2:
+                    9f:a0:cd:a8:fa:01:c8:d9:0d:df:da:fc:47:9d:b3:
+                    c8:54:df:49:4a:f1:21:a9:fe:18:4e:ee:48:d4:19:
+                    bb:ef:7d:e4:e2:9d:cb:5b:b6:6e:ff:e3:cd:5a:e7:
+                    74:82:05:ba:80:25:38:cb:e4:69:9e:af:41:aa:1a:
+                    84:f5
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                E3:AB:54:4C:80:A1:DB:56:43:B7:91:4A:CB:F3:82:7A:13:5C:08:AB
+            X509v3 CRL Distribution Points: 
+                URI:http://www.trustcenter.de/crl/v2/tc_class_2_ca_II.crl
+                URI:ldap://www.trustcenter.de/CN=TC%20TrustCenter%20Class%202%20CA%20II,O=TC%20TrustCenter%20GmbH,OU=rootcerts,DC=trustcenter,DC=de?certificateRevocationList?base?
+
+    Signature Algorithm: sha1WithRSAEncryption
+        8c:d7:df:7e:ee:1b:80:10:b3:83:f5:db:11:ea:6b:4b:a8:92:
+        18:d9:f7:07:39:f5:2c:be:06:75:7a:68:53:15:1c:ea:4a:ed:
+        5e:fc:23:b2:13:a0:d3:09:ff:f6:f6:2e:6b:41:71:79:cd:e2:
+        6d:fd:ae:59:6b:85:1d:b8:4e:22:9a:ed:66:39:6e:4b:94:e6:
+        55:fc:0b:1b:8b:77:c1:53:13:66:89:d9:28:d6:8b:f3:45:4a:
+        63:b7:fd:7b:0b:61:5d:b8:6d:be:c3:dc:5b:79:d2:ed:86:e5:
+        a2:4d:be:5e:74:7c:6a:ed:16:38:1f:7f:58:81:5a:1a:eb:32:
+        88:2d:b2:f3:39:77:80:af:5e:b6:61:75:29:db:23:4d:88:ca:
+        50:28:cb:85:d2:d3:10:a2:59:6e:d3:93:54:00:7a:a2:46:95:
+        86:05:9c:a9:19:98:e5:31:72:0c:00:e2:67:d9:40:e0:24:33:
+        7b:6f:2c:b9:5c:ab:65:9d:2c:ac:76:ea:35:99:f5:97:b9:0f:
+        24:ec:c7:76:21:28:65:ae:57:e8:07:88:75:4a:56:a0:d2:05:
+        3a:a4:e6:8d:92:88:2c:f3:f2:e1:c1:c6:61:db:41:c5:c7:9b:
+        f7:0e:1a:51:45:c2:61:6b:dc:64:27:17:8c:5a:b7:da:74:28:
+        cd:97:e4:bd
+-----BEGIN CERTIFICATE-----
+MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjEL
+MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV
+BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0
+Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYwMTEyMTQzODQzWhcNMjUxMjMxMjI1
+OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i
+SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UEAxMc
+VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jf
+tMjWQ+nEdVl//OEd+DFwIxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKg
+uNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2J
+XjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQXa7pIXSSTYtZgo+U4+lK
+8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7uSNQZu+99
+5OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1Ud
+EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3
+kUrL84J6E1wIqzCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy
+dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6
+Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz
+JTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290
+Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
+TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iS
+GNn3Bzn1LL4GdXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprt
+ZjluS5TmVfwLG4t3wVMTZonZKNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8
+au0WOB9/WIFaGusyiC2y8zl3gK9etmF1KdsjTYjKUCjLhdLTEKJZbtOTVAB6okaV
+hgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kPJOzHdiEoZa5X6AeI
+dUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfkvQ==
+-----END CERTIFICATE-----
diff --git a/libcore/security/src/main/files/cacerts/5021a0a2.0 b/libcore/security/src/main/files/cacerts/5021a0a2.0
new file mode 100644
index 0000000..ae6c41b
--- /dev/null
+++ b/libcore/security/src/main/files/cacerts/5021a0a2.0
@@ -0,0 +1,83 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            1d:a2:00:01:00:02:ec:b7:60:80:78:8d:b6:06
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=DE, O=TC TrustCenter GmbH, OU=TC TrustCenter Universal CA, CN=TC TrustCenter Universal CA I
+        Validity
+            Not Before: Mar 22 15:54:28 2006 GMT
+            Not After : Dec 31 22:59:59 2025 GMT
+        Subject: C=DE, O=TC TrustCenter GmbH, OU=TC TrustCenter Universal CA, CN=TC TrustCenter Universal CA I
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (2048 bit)
+                Modulus (2048 bit):
+                    00:a4:77:23:96:44:af:90:f4:31:a7:10:f4:26:87:
+                    9c:f3:38:d9:0f:5e:de:cf:41:e8:31:ad:c6:74:91:
+                    24:96:78:1e:09:a0:9b:9a:95:4a:4a:f5:62:7c:02:
+                    a8:ca:ac:fb:5a:04:76:39:de:5f:f1:f9:b3:bf:f3:
+                    03:58:55:d2:aa:b7:e3:04:22:d1:f8:94:da:22:08:
+                    00:8d:d3:7c:26:5d:cc:77:79:e7:2c:78:39:a8:26:
+                    73:0e:a2:5d:25:69:85:4f:55:0e:9a:ef:c6:b9:44:
+                    e1:57:3d:df:1f:54:22:e5:6f:65:aa:33:84:3a:f3:
+                    ce:7a:be:55:97:ae:8d:12:0f:14:33:e2:50:70:c3:
+                    49:87:13:bc:51:de:d7:98:12:5a:ef:3a:83:33:92:
+                    06:75:8b:92:7c:12:68:7b:70:6a:0f:b5:9b:b6:77:
+                    5b:48:59:9d:e4:ef:5a:ad:f3:c1:9e:d4:d7:45:4e:
+                    ca:56:34:21:bc:3e:17:5b:6f:77:0c:48:01:43:29:
+                    b0:dd:3f:96:6e:e6:95:aa:0c:c0:20:b6:fd:3e:36:
+                    27:9c:e3:5c:cf:4e:81:dc:19:bb:91:90:7d:ec:e6:
+                    97:04:1e:93:cc:22:49:d7:97:86:b6:13:0a:3c:43:
+                    23:77:7e:f0:dc:e6:cd:24:1f:3b:83:9b:34:3a:83:
+                    34:e3
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:92:A4:75:2C:A4:9E:BE:81:44:EB:79:FC:8A:C5:95:A5:EB:10:75:73
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                92:A4:75:2C:A4:9E:BE:81:44:EB:79:FC:8A:C5:95:A5:EB:10:75:73
+    Signature Algorithm: sha1WithRSAEncryption
+        28:d2:e0:86:d5:e6:f8:7b:f0:97:dc:22:6b:3b:95:14:56:0f:
+        11:30:a5:9a:4f:3a:b0:3a:e0:06:cb:65:f5:ed:c6:97:27:fe:
+        25:f2:57:e6:5e:95:8c:3e:64:60:15:5a:7f:2f:0d:01:c5:b1:
+        60:fd:45:35:cf:f0:b2:bf:06:d9:ef:5a:be:b3:62:21:b4:d7:
+        ab:35:7c:53:3e:a6:27:f1:a1:2d:da:1a:23:9d:cc:dd:ec:3c:
+        2d:9e:27:34:5d:0f:c2:36:79:bc:c9:4a:62:2d:ed:6b:d9:7d:
+        41:43:7c:b6:aa:ca:ed:61:b1:37:82:15:09:1a:8a:16:30:d8:
+        ec:c9:d6:47:72:78:4b:10:46:14:8e:5f:0e:af:ec:c7:2f:ab:
+        10:d7:b6:f1:6e:ec:86:b2:c2:e8:0d:92:73:dc:a2:f4:0f:3a:
+        bf:61:23:10:89:9c:48:40:6e:70:00:b3:d3:ba:37:44:58:11:
+        7a:02:6a:88:f0:37:34:f0:19:e9:ac:d4:65:73:f6:69:8c:64:
+        94:3a:79:85:29:b0:16:2b:0c:82:3f:06:9c:c7:fd:10:2b:9e:
+        0f:2c:b6:9e:e3:15:bf:d9:36:1c:ba:25:1a:52:3d:1a:ec:22:
+        0c:1c:e0:a4:a2:3d:f0:e8:39:cf:81:c0:7b:ed:5d:1f:6f:c5:
+        d0:0b:d7:98
+-----BEGIN CERTIFICATE-----
+MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTEL
+MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNV
+BAsTG1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1
+c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcNMDYwMzIyMTU1NDI4WhcNMjUxMjMx
+MjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIg
+R21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYwJAYD
+VQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSR
+JJZ4Hgmgm5qVSkr1YnwCqMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3T
+fCZdzHd55yx4Oagmcw6iXSVphU9VDprvxrlE4Vc93x9UIuVvZaozhDrzznq+VZeu
+jRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtwag+1m7Z3W0hZneTvWq3z
+wZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9OgdwZu5GQ
+fezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYD
+VR0jBBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAO
+BgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0G
+CSqGSIb3DQEBBQUAA4IBAQAo0uCG1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X1
+7caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/CyvwbZ71q+s2IhtNerNXxTPqYn
+8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3ghUJGooWMNjs
+ydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
+ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/
+2TYcuiUaUj0a7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
+-----END CERTIFICATE-----
diff --git a/vm/compiler/Compiler.c b/vm/compiler/Compiler.c
index adcc16e..c16e78c 100644
--- a/vm/compiler/Compiler.c
+++ b/vm/compiler/Compiler.c
@@ -520,6 +520,7 @@
 {
     bool jitActive;
     bool jitActivate;
+    bool needUnchain = false;
 
     dvmLockMutex(&gDvmJit.tableLock);
     jitActive = gDvmJit.pProfTable != NULL;
@@ -527,10 +528,11 @@
 
     if (jitActivate && !jitActive) {
         gDvmJit.pProfTable = gDvmJit.pProfTableCopy;
-        dvmUnlockMutex(&gDvmJit.tableLock);
     } else if (!jitActivate && jitActive) {
         gDvmJit.pProfTable = NULL;
-        dvmUnlockMutex(&gDvmJit.tableLock);
-        dvmJitUnchainAll();
+        needUnchain = true;
     }
+    dvmUnlockMutex(&gDvmJit.tableLock);
+    if (needUnchain)
+        dvmJitUnchainAll();
 }
diff --git a/vm/interp/Stack.h b/vm/interp/Stack.h
index 16275f3..3f76cb1 100644
--- a/vm/interp/Stack.h
+++ b/vm/interp/Stack.h
@@ -167,7 +167,7 @@
     ((u4*) ((u1*)SAVEAREA_FROM_FP(_fp) - sizeof(u4) * (_argCount)))
 
 /* reserve this many bytes for handling StackOverflowError */
-#define STACK_OVERFLOW_RESERVE  512
+#define STACK_OVERFLOW_RESERVE  768
 
 /*
  * Determine if the frame pointer points to a "break frame".