History log of /libcore/dalvik/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
45e02606b35996f61487f512ee91d0df83e75c9e 28-Oct-2014 Brian Carlstrom <bdc@google.com> Improve DexFile debugging

Bug: 18105751
Change-Id: I16461b61cb7723ca1f3a52080c377d013d76675b
rc/main/java/dalvik/system/DexFile.java
d73625d5e0d1fd70966264cbc518c9177d4af848 24-Sep-2014 Anwar Ghuloum <anwarg@google.com> Merge "Revert "Timing hacks DO NOT MERGE"" into lmp-dev
5467456d499d7f99c68252a7d72858d65608a190 24-Sep-2014 Anwar Ghuloum <anwarg@google.com> Revert "Timing hacks DO NOT MERGE"

This reverts commit 6d688b8bb051942cd3cdd5fc1e19f42c3049f8a1.

Change-Id: Ia4e1ebd0849f4c6b9958d7d78edcedd096042926
rc/main/java/dalvik/system/ZygoteHooks.java
78b68a0590eeec5187bbf74d3f6eeaaf62165a2a 03-Sep-2014 Andreas Gampe <agampe@google.com> Libcore: Add parameter to zygote hook

Add a parameter to be passed to ART.

(cherry picked from commit 255f6218025d5673b1e347b1c31b23202587f8f6)

Change-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67
rc/main/java/dalvik/system/ZygoteHooks.java
6d688b8bb051942cd3cdd5fc1e19f42c3049f8a1 04-Sep-2014 Anwar Ghuloum <anwarg@google.com> Timing hacks DO NOT MERGE

Let's submit to see if any issues remain

Bug: 17310019
Change-Id: Ifef1b1645033adcf192d6ec9248456cae28cd09f
rc/main/java/dalvik/system/ZygoteHooks.java
813579d06877fed67c2c62054213d8efcff6d37b 06-Aug-2014 Calin Juravle <calin@google.com> Use absolute path when opening dex files.

The device always sees absolute paths so this will be no-op but on host
this enables testing with relative paths (which is much more
convenient).

Bug: 16644204
Bug: 16930747

(cherry picked from commit e05ad6f7a1e2e34db62587269a066d479dc8e0ad)

Change-Id: I4855c7ffa1935a777e19f0f9842c0bd837818f07
rc/main/java/dalvik/system/DexFile.java
074ae20882c23a2f2cf24c33888bb97b91e8f49b 05-Aug-2014 Brian Carlstrom <bdc@google.com> am 6c17caab: Merge "Make system use patchoat to relocate during runtime."

* commit '6c17caabccd492226c50605929a0eb9e044cb7dc':
Make system use patchoat to relocate during runtime.
70a89c0f0274ac033785079673ca690ee056eb59 19-Jul-2014 Alex Light <allight@google.com> Make system use patchoat to relocate during runtime.

Change DexFile.isDexOptNeededInternal to new signature so that we can
determine if we need to run patchoat. Added constants for each of the
different outcomes of isDexOptNeededInternal.

Bug: 15358152

Change-Id: Ibe92d8b55a24bbf718b0416a21b76e5df7a2de26
rc/main/java/dalvik/system/DexFile.java
df641c08eb53f4a1cee031ff7ba490535af3ed5d 10-Jul-2014 Calin Juravle <calin@google.com> Use the provided path when opening dex files.

Previously we would use the canonical path.

If the path contains symlinks it may generate the wrong
file name when searching for the containing oat file. This
is because we don't apply any canonicalization when dex
files are generated so we think we're looking for somthing
else.

Bug: 15563230

(cherry picked from commit 71202f8ed84edc6ab57e7b6c26f0a1ec97d5adc6)

Change-Id: If261e2d80e9cbdc6e7750c73b8e6f298e46b009b
rc/main/java/dalvik/system/DexFile.java
e5e02cc239f8948ebcfdc8545e9c234d4887576d 21-Jul-2014 Narayan Kamath <narayan@google.com> Merge "Use the provided path when opening dex files." into lmp-dev
71202f8ed84edc6ab57e7b6c26f0a1ec97d5adc6 10-Jul-2014 Calin Juravle <calin@google.com> Use the provided path when opening dex files.

Previously we would use the canonical path.

If the path contains symlinks it may generate the wrong
file name when searching for the containing oat file. This
is because we don't apply any canonicalization when dex
files are generated so we think we're looking for somthing
else.

Bug: 15563230
Change-Id: I5923bdd2520a91019102ef6256d4c97fd5b499df
rc/main/java/dalvik/system/DexFile.java
853da7cb253a9eca68177b43161ba7ca80ec6e26 16-Jul-2014 Jeff Sharkey <jsharkey@android.com> Point developers toward new code cache location.

Bug: 16187224
Change-Id: I95d9c5b6d78c8daece5a91cff8f1b71bd357f8b4
rc/main/java/dalvik/system/DexClassLoader.java
6cc167354969859a27919a8d7f546cb4bd74d51e 27-Feb-2014 Brett Chabot <brettchabot@google.com> Deprecate use of BrokenTest and SideEffect

Use expectations files instead.

(cherry picked from commit 6a6b612286976cc185c898803fe51e4e062bd9eb)

Bug: 12924356
Change-Id: I9b7e71805a80176c873cffe46bed65f81de1903d
rc/main/java/dalvik/annotation/BrokenTest.java
rc/main/java/dalvik/annotation/SideEffect.java
23571c5ffe993eb30ea00fb1a0924360a2d41c98 06-May-2014 Andreas Gampe <agampe@google.com> am 91a37e34: am 5f7fd3f1: am f560c538: Merge "Revert "Libcore: Remove <> in CloseGuardMonitor test class""

* commit '91a37e34633fd33dc342724bcfcf2dcd76c4a511':
Revert "Libcore: Remove <> in CloseGuardMonitor test class"
d3b5f049d29413ce7dc5cc051e860e47fc515239 06-May-2014 Andreas Gampe <agampe@google.com> Revert "Libcore: Remove <> in CloseGuardMonitor test class"

Dalvik-dev has switched to Java 7 now, so diamonds are allowed now.

This reverts commit 307e642f661f73cf22fa689ee40181481768c400.

Change-Id: Ia1893bfea09aa2de65fed997bc3e5e3805d92387
rc/test/java/dalvik/system/CloseGuardMonitor.java
8f9fffe7f67d3113d9ff993abc3c30604ff0ec6f 03-May-2014 Andreas Gampe <agampe@google.com> am fd71cafe: am 82ae08ae: am 2684c1a5: Merge "Libcore: Remove <> in CloseGuardMonitor test class"

* commit 'fd71cafeacb65447d4a7b47ffcfb169522d64271':
Libcore: Remove <> in CloseGuardMonitor test class
307e642f661f73cf22fa689ee40181481768c400 03-May-2014 Andreas Gampe <agampe@google.com> Libcore: Remove <> in CloseGuardMonitor test class

Regrettably we're stuck with Java 1.6 in some branches, which will
not accept the diamond operator.

Change-Id: Iab1bd30bdcd70e312c2809a42d2339e0503a3250
rc/test/java/dalvik/system/CloseGuardMonitor.java
5c727bda02e78806081a0e874cd6ee4d4ed06d2b 02-May-2014 Paul Duffin <paulduffin@google.com> am c3eed594: am f6696d69: am eec4356c: Merge "Improve detection of CloseGuard protected resource leakage"

* commit 'c3eed594ffd6b488b5771cd1e6a9a4c44aa0826b':
Improve detection of CloseGuard protected resource leakage
a6f350c645dbb66d68cc2b03afb8f2eeaa88fbba 28-Feb-2014 Paul Duffin <paulduffin@google.com> Improve detection of CloseGuard protected resource leakage

* Add CloseGuardMonitor to intercept and collate CloseGuard reports and if
necessary throw an exception listing the resource leaks.
* Add ResourceLeakageDetector to abstract away the CloseGuardMonitor which will
not work on RI.
* Add AbstractResourceLeakageDetectorTestCase as a base class for tests
that need to detect resource leaks, in future this could be handled by
modifications to Cts and Vogar test runners.
* Remove CloseGuardTester and its sole usage in ProcessBuilderTest.
* Remove CloseGuardGuard from within URLConnectionTest
* Change ZipFileTest, ProcessBuilderTest, URLConnectionTest to use new
mechanism, fix issues that are identified and do some cleanup/remove
duplicated code.

Bug: https://code.google.com/p/android/issues/detail?id=66383
Change-Id: Id026dbb6bc66091a15f07329e6371cd0d1f32cf5
rc/test/java/dalvik/system/CloseGuardMonitor.java
7889586983533773829441987a768fa826d4cd6a 23-Apr-2014 Narayan Kamath <narayan@google.com> Add an instructionSet argument to isDexOptNeededInternal.

(cherry picked from commit 4adab737c923d0cb2796a51500498e04708f1d1e)

Change-Id: Ic8e37e97e468b42c64d4a5e8631aab532e04115a
rc/main/java/dalvik/system/DexFile.java
4adab737c923d0cb2796a51500498e04708f1d1e 23-Apr-2014 Narayan Kamath <narayan@google.com> Add an instructionSet argument to isDexOptNeededInternal.

Change-Id: I558d8f3564a11639dec0ddad9f67e9f321c28f3b
rc/main/java/dalvik/system/DexFile.java
7406d4e17dd39f3531e764ec7788b1f8dec99971 25-Apr-2014 Elliott Hughes <enh@google.com> am 3eb545e3: am 85fa4285: Merge "Groundwork towards making the Libcore.os functionality public."

* commit '3eb545e382a12565ed8779632015d736d6f5c32c':
Groundwork towards making the Libcore.os functionality public.
5d930cadc8f62aee5f18e7921296fe66a54f18ab 24-Apr-2014 Elliott Hughes <enh@google.com> Groundwork towards making the Libcore.os functionality public.

Change-Id: Ie700aa16d91fba53fc5eb2555829cb74d84b12ad
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/DexPathList.java
acede2c288e0350871346e59ba5649a532913915 02-Apr-2014 Narayan Kamath <narayan@google.com> am 0c2165ad: am e471f800: Merge "Rename Zygote -> ZygoteHooks."

* commit '0c2165add0458c9f27c3e15875f936d9d3157a4b':
Rename Zygote -> ZygoteHooks.
1a12117f26d3fa0dc71871dd9fdc7f226a57662c 31-Mar-2014 Narayan Kamath <narayan@google.com> Rename Zygote -> ZygoteHooks.

The old Zygote class is moving to frameworks/base. The Zygote
class provides a set of callbacks that Zygote can call to allow
the runtime to perform pre/post fork work.

Change-Id: I7400e32906d32e80ffd196ef7a858a8733011ac3
rc/main/java/dalvik/system/Zygote.java
rc/main/java/dalvik/system/ZygoteHooks.java
2eb7b9430bd44830345a85a5a80cb10af3144585 31-Mar-2014 Narayan Kamath <narayan@google.com> am 7b652760: am 28e43313: Merge "Remove Zygote.systemInSafeMode."

* commit '7b6527607ef4f2bb548787b84a03bb76335a9ec4':
Remove Zygote.systemInSafeMode.
28e43313585266cc440b46e88e9d47cca1c959ba 31-Mar-2014 Narayan Kamath <narayan@google.com> Merge "Remove Zygote.systemInSafeMode."
9c35ce4ed21698062c154a79e9bdbc0e893ce303 31-Mar-2014 Narayan Kamath <narayan@google.com> am db965232: am 6586cc6f: Merge "Remove Zygote.fork"

* commit 'db96523247dc13caa762b7656f3375a4a8e15905':
Remove Zygote.fork
ebd44786e6375333d87455e525e22f113ee584d3 28-Mar-2014 Narayan Kamath <narayan@google.com> Remove Zygote.systemInSafeMode.

This field has moved to the SystemServer class.

Change-Id: Ia66340dd934e6ec62a72e3641085602cb9f252f5
rc/main/java/dalvik/system/Zygote.java
7b22a1f1b2a13c94efb72d0a498d77f159c77ff0 28-Mar-2014 Narayan Kamath <narayan@google.com> Remove Zygote.fork

Currently unused, all callers use forkAndSpecialize.

Change-Id: I61df8ed88d7657da8280e044fe99517c47ce8dff
rc/main/java/dalvik/system/Zygote.java
7abd45639f239e1bb84cc00da45a6dda9da11500 11-Mar-2014 Brett Chabot <brettchabot@google.com> Merge "Deprecate use of BrokenTest and SideEffect"
6a6b612286976cc185c898803fe51e4e062bd9eb 27-Feb-2014 Brett Chabot <brettchabot@google.com> Deprecate use of BrokenTest and SideEffect

Use expectations files instead.

Bug: 12924356

Change-Id: I0ea7917384adf7849404b6da5b7704e6f0c0c1c7
rc/main/java/dalvik/annotation/BrokenTest.java
rc/main/java/dalvik/annotation/SideEffect.java
5e51851f6e91f6e5450435b51812e147db8b9735 11-Feb-2014 Dave Allison <dallison@google.com> ART sampling profiler

Add isDexOptNeededInternal() to the DexFile class. This is like
isDexOptNeeded() except takes additional arguments that are used
to determine whether a profile has changed of not.

The isDexOptNeeded() method is part of the exported API and cannot
be changed. The new method is not part of the API.

Also add additional argument to the registerAppInfo() methods (the
package name). This is used to determine the profile filename.

Bug: 12877748
Change-Id: If862cc5d20fae4b9d46c488f401cda6d433b4a57
rc/main/java/dalvik/system/DexFile.java
80bf291ca9ea0e300aed82368ae77eb6218c9a19 13-Feb-2014 Dave Platt <dplatt@google.com> Remove old fork-and-specialize API

As promised, this is the cleanup patch-set which removes the
old native "fork and specialize" API, which has been replaced
by a slightly-enhanced one which can close the Zygote socket
descriptors in the Zygote child.

Change-Id: Icaeab730bee8638354dc664524e4118cdd946d2f
rc/main/java/dalvik/system/Zygote.java
55b2ba2caf28a89d6bb39f6be1930bcce0108c11 06-Feb-2014 Dave Platt <dplatt@google.com> Finish fixing Zygote descriptor leakage problem

In order to prevent Zygote descriptors from leaking into the child
environment, they should be closed by the forked-off child process
before the child switches to the application UID. These changes close
the descriptors via dup2(), substituting a descriptor open to
/dev/null in their place; this allows the Zygote Java code to close
the FileDescriptor objects cleanly.

This is a multi-project change: dalvik, art, libcore, frameworks/base,
and external/sepolicy are affected. The CLs need to be approved
together, lest the build break or the software fail to boot.

Bug: 12114500
Change-Id: I8ea69de7b1cfbd811977a5629eb0af665f6dd66a
rc/main/java/dalvik/system/Zygote.java
6b9829917263ba6ccc8d725d730316bb36c0fc78 05-Feb-2014 Elliott Hughes <enh@google.com> Switch libcore over to a long in DexFile.

Change-Id: I7f259bd14134fc6663047b8a1237b8364f10a51d
rc/main/java/dalvik/system/DexFile.java
9e3f3049f7ebb7e58020afced36fa6c3ce68c98e 07-Jan-2014 Jeff Hao <jeffhao@google.com> Add sample profiling interface to startMethodTracing.

Libcore side of this change. Also changed art and frameworks base.

Change-Id: Ie26982dfb09d4098708d701b5429fd09e710a25d
rc/main/java/dalvik/system/VMDebug.java
5063dbfbbb296800565a2b7b88a57ea9f21ba368 12-Sep-2011 Elliott Hughes <enh@google.com> Fix build harder.

Gah.

(cherry picked from commit 61e8a22b0a1a9a9dcfb9a7c492ed2e03ad1f24b6)

Change-Id: I555f3166e136dc0b84ccb6d96dc9c081e083d319
rc/main/java/dalvik/bytecode/OpcodeInfo.java
0dd244a378e633468526bbde0b9fc332a2dd4355 12-Sep-2011 Elliott Hughes <enh@google.com> Fix build.

Add a stub for dead functionality.

(cherry picked from commit e6a4f2f6cc4721273a71d9820cb2fb6d7937a57a)

Change-Id: I0e8a050c447c23aba83fcef75eb1861762d7f123
rc/main/java/dalvik/bytecode/OpcodeInfo.java
412f6c6a16dba1b3c8a9837af18b94c12936dc91 12-Sep-2011 Elliott Hughes <enh@google.com> Remove dead code.

(cherry picked from commit c7abaf1f9cd06e8511bc70dd884e57226f635da2)

Change-Id: I7ec6daec54daf04a4a5bf8196b8a4a9286216dd2
rc/main/java/dalvik/bytecode/OpcodeInfo.java
d7f6c65951b540f9ddec3f851e7228c85f07d32d 08-Oct-2013 Hui Lu <huilu@google.com> Remove zip file extension whitelists when validating dex file path.

Just assume a file is either a .dex file or one type of zip files.

Change-Id: I9da778f9cc658295d90b240afddfe5bf5af1edf8
rc/main/java/dalvik/system/DexPathList.java
413d4592ee114eac81014af4b6347e73873ce8ce 03-Sep-2013 Elliott Hughes <enh@google.com> Use the docs-approved Android x.y (Name) format consistently.

Also include the API level where the reason for mentioning the version
is an API difference (as opposed to simply a behavioral difference).

Change-Id: Idd69630fc5d6f6f0bd5d1c524cb32fd8c2fb750d
rc/main/java/dalvik/system/DexPathList.java
rc/main/java/dalvik/system/VMDebug.java
20800b2857324f8101583352b61597b22c80fb84 29-Aug-2013 Jeff Hao <jeffhao@google.com> Change IsMethodTracingActive to GetMethodTracingMode for libcore.

Bug: 9968521

Change-Id: I3e36331980a192ab783ede095955b1f71b9ca40e
(cherry picked from commit b72f49ea6dac9cc6bf46485be8f97cafa7db3dc3)
rc/main/java/dalvik/system/VMDebug.java
0d3a5adf6ee9664b076eee1eabe0be505cdb9792 27-Aug-2013 Jeff Hao <jeffhao@google.com> Add libcore support for sample profiling from traceview gui.

This change unifies the native method tracing interface between art
and dalvik, and so the two files can merged again.

(cherry picked from commit cd28c9550cbc77b5b856a13638f221f1cd9fc6ab)

Change-Id: Id834945644615c4d8d8536140842d9036f38fbeb
rc/main/java/dalvik/system/VMDebug.java
ca2c58ceaf2d35d30fe06b1676cc1436a24c4d30 13-Aug-2013 Brian Carlstrom <bdc@google.com> Share ClassLoader code

Bug: 9071417
Change-Id: Icdde3aace023d1d7509c932cdd71f203213b59d6
rc/main/java/dalvik/system/BaseDexClassLoader.java
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/DexPathList.java
2a6f23ff8690ac2f025588a360547ce96cde0943 29-Jun-2013 Elliott Hughes <enh@google.com> Add java.nio.charsets.StandardCharsets.

Bug: 3484927
Change-Id: I5820267491b850b8fcc696fa48962710de123009
rc/main/java/dalvik/system/BlockGuard.java
325ff8c68ed5e530e9e1d487b9e2e6d8f8e2bd37 25-Jun-2013 Elliott Hughes <enh@google.com> Clean up the #read javadoc.

By being more consistent in parameter naming, we can inherit more javadoc.

Also fix a couple of javadoc warnings in KnownFailure and DataInputStream.

Change-Id: I778f40469404fb50c51cdb1068970974f923180c
rc/main/java/dalvik/annotation/KnownFailure.java
5258eec89ea89263067784a9376c85f9e41bab35 07-Jun-2013 Brian Carlstrom <bdc@google.com> Move dalvik.system.VMDebug to libdvm

Change-Id: I7b218f9732b36b9cca5ebc38380f3e7ef0275f34
rc/main/java/dalvik/system/VMDebug.java
99b4489d0555c6e0e5df941cbfad4cf250c8f0b8 07-Jun-2013 Elliott Hughes <enh@google.com> Fix @deprecated javadoc orthography.

Change-Id: I6db6d91e21b8e1aca5b5338534196fd5bdef8a06
rc/main/java/dalvik/annotation/TestTarget.java
rc/main/java/dalvik/annotation/TestTargetClass.java
rc/main/java/dalvik/system/VMDebug.java
53764ee20bd97afcc5c96c79ccb2cbfcab3a4c1a 05-Jun-2013 Brian Carlstrom <bdc@google.com> Move additional files to libdvm

Change-Id: Idc1caee3a0afb61d159cd046348ecb11db3d9e10
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/VMStack.java
552f220a1c5f481293bf47b21726635a0e5df601 20-Sep-2011 Elliott Hughes <enh@google.com> Change the VMStack interface used by serialization.

(cherry picked from commit 8b44bdb6063816eeb90da6b4f8aa3ed9f38fe140)

Change-Id: I5da041caa3037a4093f05dec4e03aed4f466a21d
rc/main/java/dalvik/system/VMStack.java
895bba44ff59d2225532a1fe9842c8b9a70a9f9a 13-May-2013 Brian Carlstrom <bdc@google.com> Move some files with dalvik dependencies to libdvm

Change-Id: I04498d8d8c4b065dbda8d7b30b8b77ce53e63a77
rc/main/java/dalvik/system/BaseDexClassLoader.java
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/DexPathList.java
7cad2d4e4e00bb152b726541b62840708d1cbcb1 20-Jul-2011 Elliott Hughes <enh@google.com> Some of our helpers have moved into libnativehelpers.

(cherry picked from commit 4b5012a6cd5f7f32f33a776c9e2c94ca3f3eb1d5)

Change-Id: I8a154f8b6e39b8ed0a633fab9ba31d557b545bb5
rc/main/java/dalvik/system/DexFile.java
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
507bf840e91c141f53040cd0963ccceee3cf2ea6 12-Apr-2013 Stephen Smalley <sds@tycho.nsa.gov> Replace SEAndroid with SELinux.

Change-Id: I59183e966c79c2ba879151c3ac14ff0a86c74c86
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
rc/main/java/dalvik/system/Zygote.java
8ec83401e808bf63d4f8328f1878925f3797505e 27-Mar-2013 Elliott Hughes <enh@google.com> Fix build.

Change-Id: Ia9ec36734d275f677279225d3068e548a3d652ec
rc/main/java/org/apache/harmony/dalvik/NativeTestTarget.java
da84bf3ed3063e341ff2218d10e80172bd36ad42 30-Jun-2011 Elliott Hughes <enh@google.com> Make NativeTestTarget more useful for benchmarking.

There's a corresponding benchmark change in code.google.com/p/dalvik.

(cherry-pick of d5d401fa8869da90b7f7d167b41fa5de6a38c592, with
emptyInlineMethod added back in for now.)

Conflicts:
dalvik/src/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp

Change-Id: I9b22be15b0708bf47c599bf8ce071cd6e3899d0e
rc/main/java/org/apache/harmony/dalvik/NativeTestTarget.java
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
798f855f67b74d481346d9dc2293ba0eedd8daf9 05-Feb-2013 Nick Kralevich <nnk@google.com> Add support for Libcore.os.exec*()

Add Libcore support for execv() and execve().
This allows java programs to execute other programs
without having to write jni wrappers.

Change-Id: I82ddc069b5812ebd40f06b7f65ce173d496e0597
rc/main/java/dalvik/system/Zygote.java
444aa237703574bb9082ba1481bc0dcc208910db 17-Jan-2013 Elliott Hughes <enh@google.com> Fix typos.

Change-Id: I6a9f7d8203c91f854fef64c9acd0e0b04459724b
rc/main/java/dalvik/system/profiler/SamplingProfiler.java
81abb6fb7332dfe62ff596ffb250d8aec61895df 16-Jan-2013 Elliott Hughes <enh@google.com> More backwards compatibility for Facebook.

Another day, another private field accessed.

Bug: 7726934
Change-Id: I1cf2e9b9c9c7c53afd43642fcbf8f1a1d203bf6c
rc/main/java/dalvik/system/DexPathList.java
0cfd9bcaa70317a8c400c39b25ad42ba05c7531a 16-Jan-2013 Elliott Hughes <enh@google.com> Stop Facebook crashing with NoSuchFieldException.

The Facebook app uses reflection to access a private field of
BaseDexClassLoader, and won't start if we rename that field.

Bug: 7726934
Change-Id: I0b8febed1226655dbfeb5d1a539734b860558df4
rc/main/java/dalvik/system/BaseDexClassLoader.java
652abda3efa231d431375677363f4a36327eeda7 20-Dec-2012 Elliott Hughes <enh@google.com> Support System.loadLibrary for libraries with transitive dependencies.

Bug: 7896159
Bug: http://code.google.com/p/android/issues/detail?id=34416
Change-Id: Id1225a353b52c50bb3eedfd48e92ec85dd60134b
rc/main/java/dalvik/system/BaseDexClassLoader.java
rc/main/java/dalvik/system/DexPathList.java
c2d0a1f1bd2c6414c29dd44fe240dcf1f45e59b9 04-Dec-2012 Elliott Hughes <enh@google.com> Add detail messages to all remaining NullPointerExceptions.

I've left java.util.concurrent alone, since that's upstream code.

Change-Id: I349960aaddb78e55d4c336b58b637009db69ff98
rc/main/java/dalvik/system/VMDebug.java
rc/main/java/org/apache/harmony/dalvik/ddmc/DdmServer.java
f904678355f850a647f22e2689a836f895974fdf 04-Dec-2012 Elliott Hughes <enh@google.com> Support directories on the classpath, for resources.

This lets us run tests and legacy code that uses Class.getResource to
access resources, because we can put the resource directories on the
classpath.

I've also rewritten the toString implementation to show what path
we're _really_ using, rather than parroting back the original path we
were passed, because we won't actually look at all entries in the path,
so that can be very misleading. (It certainly confused the hell out of
me while working on this change.)

Change-Id: Iec4dca2244db9c9c793ac157e258fd61557a7a5d
rc/main/java/dalvik/system/BaseDexClassLoader.java
rc/main/java/dalvik/system/DexPathList.java
4285b5276e2d3a05294b4247f9ea82e7a033a07d 26-Nov-2012 Brian Carlstrom <bdc@google.com> Move comment to match code

Followup for change "Lazy parsing of zip files for Java resources."

Change-Id: Ic572dff0edda766400ce6cea9fb27344373c73df
rc/main/java/dalvik/system/DexPathList.java
6133a233130f3014b65b96ca92a20c2083c713f4 09-Nov-2012 Narayan Kamath <narayan@google.com> Lazy parsing of zip files for Java resources.

Central directories of zip files should be read lazily.
They are needed only to service calls to
BaseDexClassLoader#findResouce(s). Most android processes
don't use these methods since they use android resources.

bug:6797061

(cherry-picked from 8dd90ae77922eb05d46c797937620a4c69f758f7)

Change-Id: I1a5b5d03572601707e1fb1fd4424c1ae2fd2217d
rc/main/java/dalvik/system/DexPathList.java
77af18a7e74e54f91d19387bbf60d35fb7d3b3d2 06-Nov-2012 Elliott Hughes <enh@google.com> am e3b1b9eb: Merge "Gut dalvik.system.TemporaryDirectory, which has nothing to do with setting java.io.tmpdir."

* commit 'e3b1b9ebaca89b9aaa583ba9953dfce579d32a16':
Gut dalvik.system.TemporaryDirectory, which has nothing to do with setting java.io.tmpdir.
3fd7be74cccc9c830ee51c4f884425733c22ea20 05-Nov-2012 Elliott Hughes <enh@google.com> Gut dalvik.system.TemporaryDirectory, which has nothing to do with setting java.io.tmpdir.

This has been dead since at least Froyo, but shows up if you're searching
trying to find out who's really responsible for setting java.io.tmpdir.

Change-Id: I539ad9aeac4ba4556a491cddeddfb6fbc6766b5c
rc/main/java/dalvik/system/TemporaryDirectory.java
028ad9ba399b09050866e6b369f6e72879b45b3a 05-Nov-2012 Elliott Hughes <enh@google.com> am df0d0295: Merge "Make System.loadLibrary use open(2) rather than stat(2)."

* commit 'df0d029524bc6f4aa6212e8d0e337b590731c7a4':
Make System.loadLibrary use open(2) rather than stat(2).
6d17baa25d349e2659eb16fe5eef3088d48e5e22 05-Nov-2012 Elliott Hughes <enh@google.com> Make System.loadLibrary use open(2) rather than stat(2).

This will let us remove read permission from directories containing .so files.

Bug: 6485312
Change-Id: I72daa265ce54747fc91cdb9d915a05a2464041bb
rc/main/java/dalvik/system/DexPathList.java
a1efc89510647c69fc73a903e8f1af5018e10f56 11-Oct-2012 Elliott Hughes <enh@google.com> am 4e8aff78: Merge "Remove various content-free package.html files."

* commit '4e8aff7851667954f8c964829cd20c1e86288814':
Remove various content-free package.html files.
02f8123a41dfc61bb77b58b84cc0163bc4e29631 11-Oct-2012 Elliott Hughes <enh@google.com> Remove various content-free package.html files.

Change-Id: I0d8097751b8a61d202b87ed5067d38ff0802c89a
rc/main/java/dalvik/annotation/package.html
rc/main/java/dalvik/bytecode/package.html
rc/main/java/dalvik/system/package.html
ee016ac51e9ca82eb9bc92795e61af02f67ae8c8 29-Aug-2012 Jeff Sharkey <jsharkey@android.com> Access to all users' external storage.

System services holding this permission have external storage bound
one level higher, giving them access to all users' files.

Bug: 7003520
Change-Id: I8a81582f9ef07089a1fab3e8f6c3ffe657bb1c1b
rc/main/java/dalvik/system/Zygote.java
1d7a4a8f05b12e365e898a4c7639e285118643b8 17-Aug-2012 Jeff Sharkey <jsharkey@android.com> Multi-user external storage support.

Add flags for mounting external storage and pass into JNI.

Bug: 6925012
Change-Id: I3704ef1616339f9f5f854f734b58efa7a02b67a4
rc/main/java/dalvik/system/Zygote.java
75245fcfe3555e4dd06939b9bae366fd3e43b658 02-Apr-2012 Brian Carlstrom <bdc@google.com> Include library path information in BaseDexClassLoader for better error reporting in Runtime.loadLibrary

(cherry-pick of b6a576f43f1c23bb92493590a04bf9c72f092438.)

Change-Id: I6f34862327cf99d8c6f9a7e9aa3aeab47985969b
rc/main/java/dalvik/system/BaseDexClassLoader.java
3bbe5318c343b1b7c945be717cc55b4ab15874f2 25-Jan-2012 Elliott Hughes <enh@google.com> Improve the BaseDexClassLoader detail message, and make ScopedLocalRef more unique_ptr-like.

(cherry-pick of 1c459db4ea31c1f284353bc71bfd2dbc97ca53d7.)

Conflicts:

include/ScopedLocalRef.h

Change-Id: Id01cb907406cc93f6b0f6ddaa8e7fb3714d18c53
rc/main/java/dalvik/system/BaseDexClassLoader.java
63ac769acae3e1fa23aed3a6059325a9b9d91352 20-Mar-2012 Ian Rogers <irogers@google.com> Use float comparison for setTargetHeapUtilization constants.

(cherry-pick of f655188036ceab8968a510ae67455a27917546cf.)

Change-Id: I587ad497ee9ac38f4052cdfdd861e8b24dd80712
rc/main/java/dalvik/system/VMRuntime.java
8155888a2c4e7cc28596deec28433e1984cfaf11 25-Jul-2012 Brian Carlstrom <bdc@google.com> Fix HttpURLConnection CloseGuard warning due to lack of close on GZIPInputStream

java.lang.Throwable: Explicit termination method 'end' not called
at dalvik.system.CloseGuard.open(CloseGuard.java:184)
at java.util.zip.Inflater.<init>(Inflater.java:82)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:96)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81)
at libcore.net.http.HttpEngine.initContentStream(HttpEngine.java:523)
at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:831)
at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:486)
at ...

Bug: 6602529
Change-Id: I9b49cbca561f8780d08844e566820087fdffc4d7
rc/main/java/dalvik/system/CloseGuard.java
0a61dbe55af24fb837ce7372c849c047c3f95fda 21-Jun-2012 Kenny Root <kroot@android.com> am 4ee3fff2: Merge "Extend forkAndSpecialize to take further input arguments."

* commit '4ee3fff217e72eccf5d1b1d7e252a214b0233bb3':
Extend forkAndSpecialize to take further input arguments.
f0429097a74dc0341bb7e6e4825152fc36b657f0 13-Jan-2012 Stephen Smalley <sds@tycho.nsa.gov> Extend forkAndSpecialize to take further input arguments.

Extend forkAndSpecialize to take two further input arguments,
a seInfo string and the niceName for the process. These can be used
as further selectors in determining the SELinux security context for
the process.

Change-Id: If3a654070025e699b2266425f6eb8ab7e6b8c562
rc/main/java/dalvik/system/Zygote.java
990aceacaa21c9d68b6eb4646fd1746f29182be7 09-Jan-2012 Jesse Wilson <jessewilson@google.com> Merge "Refuse to write optimized dex files to a non-private directory."
5c7fa7c36acddda7b7cc392ec360116b03e09880 06-Jan-2012 Jesse Wilson <jessewilson@google.com> Refuse to write optimized dex files to a non-private directory.

It's infeasible to test if other applications can write to a
given directory, particularly since directories like /sdcard/
are accessible to named groups like sdcard_rw. Instead we take
a shortcut and just test that the optimized directory is owned
by the current process.

I tested this manually; the '/data/data/vogar.test.java.StatTest/'
app directory could be successfully used but other directories
('/data', '/sdcard', '/') throw exceptions as expected.

Bug: http://b/4609061
Change-Id: Ia72b50aa3c73051b0c03c06c0bc7c0470f76b212
rc/main/java/dalvik/system/DexFile.java
06f039b4c39bee1b0618f40d4d4af0d0f2bef2fa 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: Ia340ff04d8e9c6344df07a9f921147d06f367bfe
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
3908db51e682295bd5b76bf2555e675162922349 05-Jan-2012 Elliott Hughes <enh@google.com> Track removal of unsupported experimental opcodes.

Change-Id: Id97e603ce8dc4cc3246f99c5b215b0f862a700dd
rc/main/java/dalvik/bytecode/OpcodeInfo.java
rc/main/java/dalvik/bytecode/Opcodes.java
7e9a64c1d1abda223774d523acd1dbf895f9421b 26-Oct-2011 Jeff Sharkey <jsharkey@android.com> Only tag/untag sockets when open.

Bug: 5274621
Change-Id: Icc42a80c8cce6adb20d16ca2bb1fb51e2a8e8e1b
rc/main/java/dalvik/system/SocketTagger.java
701cca146e1ac80f3fa58c53223aa7a462078c7c 18-Aug-2011 Casey Ho <caseyho@google.com> Fix typo in Javadoc for onReadFromDisk

Change-Id: I7d8d683bd81fd96e826584cf502e418b29acab61
rc/main/java/dalvik/system/BlockGuard.java
4ee53d1e4536662d7424817baae03c14ae270acd 11-Jul-2011 Elliott Hughes <enh@google.com> Document a semantic change to setTargetSdkVersion.

(The actual change is in another project, confusingly.)

Bug: 4772166
Change-Id: Ib7c242a2d2a7d1cbf468b09319392a5b8cca2e18
rc/main/java/dalvik/system/VMRuntime.java
675351b56bf2c71b08538d29b248f229f4b3569a 08-Jul-2011 Elliott Hughes <enh@google.com> Allow an app's targetSdkVersion to be set by the zygote (libcore).

Bug: 4772166
Change-Id: I33ff94e92e8e840e2a397c34b293a25c013a2052
rc/main/java/dalvik/system/VMRuntime.java
274d3c9946d307efe642a2ab2672c0ec013239fb 07-Jul-2011 Jesse Wilson <jessewilson@google.com> resolved conflicts for merge of ba450023 to master

Change-Id: Ib8e7b68547f139b38ce2790c13a5748801faf9bd
7632f95bb9d2e0ba7f71a02ca4c33422a233283b 07-Jul-2011 Elliott Hughes <enh@google.com> Add a constant for enabling logging of third-party JNI activity.

Change-Id: I7038c894f98e713047cdc23e65c972962c75183e
rc/main/java/dalvik/system/Zygote.java
09bb615ce1da5e2e9a99f0a2ebf46beb6f71a7a9 29-Jun-2011 Jesse Wilson <jessewilson@google.com> Use a clear warning in the DexClassLoader docs.

Cherry-pick of I0cc4bb3ec86b1c3c578c548f6fc646bce9e45745
http://b/4609061

Change-Id: I8ef78c4117f67b1b517d4512b28e73533f64645c
rc/main/java/dalvik/system/DexClassLoader.java
5112325117859c7c6cd042c17f519f967c551b20 29-Jun-2011 Jesse Wilson <jessewilson@google.com> Move socket tagging to frameworks/base.

Change-Id: I6f6f840d5d5eee6ca2170fc127fd525155dd40b8
rc/main/java/dalvik/system/BlockGuard.java
rc/main/java/dalvik/system/SocketTagger.java
2b60e181ccfa98611f1e6fd3709be50f32a84540 25-Jun-2011 Jeff Sharkey <jsharkey@android.com> Migrate setThreadStatsTag() from String to int.

Also write out tag as unsigned int.

Bug: 4948913
Change-Id: I314655d0698df26e545107b4dea37ce4629be01a
rc/main/java/dalvik/system/BlockGuard.java
c8a6bcc44d723cc64e834facf9e1e8569d992308 24-Jun-2011 Elliott Hughes <enh@google.com> Remove an unused internal native.

Change-Id: I562deaf3991018a828757c87afcc27f9901942f7
rc/main/java/dalvik/system/VMStack.java
64c6c367497c7fcf88e7527022234043e4460758 21-Jun-2011 Jesse Wilson <jessewilson@google.com> Implement the finalizer watchdog.

Change-Id: Ia4aaf5f0ef5a2f5f7e6ec3e8b4c4e300c9e1b2ee
http://b/4144865
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/Zygote.java
ebda6e36c1a577cc63dfeffd710f2043221c8ca4 09-Jun-2011 JP Abgrall <jpa@google.com> blockguard: tweak netfilter cmd handling, document function.

Remove the unneeded string replace.
Add comments and function doc.


Change-Id: I69d435ca175e1a3c7a1dc28cdd2cf51c249ca8d0
rc/main/java/dalvik/system/BlockGuard.java
ada85883cf7d3f33a884847555946e5d09bf10a6 04-Jun-2011 JP Abgrall <jpa@google.com> BlockGuard: bandwidth control: enable and simplify talking to kernel.

This will let the BlockGuard attempt to set tags.
For now, it will silently do nothing if the needed
/proc/net/xt_qtaguid/ctrl
file is not available.

It distinguishes "t"agging from "u"ntagging.
For now, it does not pass down the tag as a string, but just its hash.
It doesn't attempt to control the module when nothing needs doing.


This needs the kernel with the new xt_qtaguid netfilter module.
And the new system/netd bandwidth management support that sets up the
iptables.


Change-Id: Ie20def02f8d6aa4b67249f1b46ec5aefb9396305
rc/main/java/dalvik/system/BlockGuard.java
917753d34de3aaf43bc4f3b4e851bccfe3595f82 25-May-2011 Jeff Brown <jeffbrown@google.com> am 46fc50e8: Merge "Support wrapping app processes to inject debug instrumentation. Bug: 4437846"

* commit '46fc50e810eaab93f2787b355257ab1e837d8bf7':
Support wrapping app processes to inject debug instrumentation. Bug: 4437846
46fc50e810eaab93f2787b355257ab1e837d8bf7 24-May-2011 Jeff Brown <jeffbrown@google.com> Merge "Support wrapping app processes to inject debug instrumentation. Bug: 4437846"
7047a3d4bf12a8eb33156a0abeb900b0ef95263b 17-May-2011 Jeff Brown <jeffbrown@google.com> Support wrapping app processes to inject debug instrumentation.
Bug: 4437846

Change-Id: I8d66b13f1c1dc9c30f72033f190121979a44b212
rc/main/java/dalvik/system/Zygote.java
553d98af897f7202de5e5a776287de0b5ca8fe39 19-May-2011 Elliott Hughes <enh@google.com> Expose accept(2).

The implementation of PlainSocketImpl.accept is made ugly by the fact that the
SocketImpl we mutate may share its FileDescriptor with a SocketChannel, so we
need to mutate the FileDescriptor itself, and can't simply swap in a new one.
I've raised http://b/4452981 to see if we can integrate the nio and io socket
classes more closely, to avoid this kind of mess.

Bug: 3107501
Change-Id: I4964b64c25e936a44d1e4c22504ca29bba247ab6
rc/main/java/dalvik/system/BlockGuard.java
23ec09188303a874b3b391f96ae0a29af002bff9 19-May-2011 Elliott Hughes <enh@google.com> Implement recvfrom(2).

This one's a little bit hairy because of multiple return values.

Bug: 3107501
Change-Id: I3bd35647d94bb6bc2192d6f31a39ecca07a3926e
rc/main/java/dalvik/system/BlockGuard.java
9d0f4b4b6a7dbd32706e2fd8327c481128ea234c 17-May-2011 Jeff Sharkey <jsharkey@android.com> Disable verbose socket logging.

Change-Id: I3b8a1a532b186fee81cca0c7eb9199a436570999
rc/main/java/dalvik/system/BlockGuard.java
90d96a4f168b7e56cff54dc94dca2f3cde60ebcd 17-May-2011 Elliott Hughes <enh@google.com> Add sendto(2) and reimplement all network writes in terms of it.

Note that this doesn't fix http://b/4182806.

Bug: 3107501
Change-Id: I9b56eae226389a63a12b4c0499d40d5a54a462e2
rc/main/java/dalvik/system/BlockGuard.java
214620d33caed6813676aa7463c033ee255610a2 16-May-2011 Elliott Hughes <enh@google.com> Quieten socket tagging.

This is pretty noisy, and not our problem.

Change-Id: I5fbd54ccbcbf66d089455efd68cf68e5a91aef20
rc/main/java/dalvik/system/BlockGuard.java
e27d02044ec399884bfd4343d513bf270b9b9b11 16-May-2011 Elliott Hughes <enh@google.com> Remove OSNetworkSystem.close.

For now I'm keeping AsynchronousCloseMonitor as a special case in native code.
We can see about doing something more general-purpose in a later pass.

Bug: 3107501
Change-Id: Ib79b9fc0bebfafc2d14896d957bd8591ae8e6e97
rc/main/java/dalvik/system/BlockGuard.java
5637884f8217dbf28de0913c06aceaf09c898510 14-May-2011 Jeff Sharkey <jsharkey@android.com> resolved conflicts for merge of 1e8d508f to dalvik-dev

Change-Id: Id0739d4e567b112cbea48f5ecb7dd46425da1a36
1e8d508f2d97e19f2fc8a709330ea97e1e9f203a 04-May-2011 Jeff Sharkey <jsharkey@android.com> Add Socket tagging for granular data accounting.

Changes BlockGuard to maintain a set of "tags" for the current thread,
which it communicates to kernel before each Socket use. Also changes
HttpConnectionPool to tag/untag sockets as they are recycled.

Change-Id: I33e614f1f570466bdffbf07cc5c718f18b8f3773
rc/main/java/dalvik/system/BlockGuard.java
2bad9bff258de6275bd3847e5e9f3169b0a93c61 12-May-2011 Elliott Hughes <enh@google.com> Reimplement OSNetworkSystem.isConnected in Java.

We can do this in Java now we've exposed poll(2).

Change-Id: I9f2700d09134198c1cd2681e3814fb482e8e271c
rc/main/java/dalvik/system/BlockGuard.java
70c820401677ca251ad09ac64cc23c760764e75d 12-May-2011 Elliott Hughes <enh@google.com> Expose poll(2) and reimplement java.nio.channels.Selector.

This also adds UnsafeArrayList<T>, which is like ArrayList but lets you access
the underlying array (as opposed to ArrayList.toArray which creates a copy).

Bug: 3107501
Change-Id: I8dc570a9fd7951b1435047017ea7aa19f8f8fc53
rc/main/java/dalvik/system/BlockGuard.java
a7bb29434692e01aed843b88cd042628bab74a23 11-May-2011 Elliott Hughes <enh@google.com> Clean up the select(2) implementation.

I wasn't planning on touching this code (since I want to replace it), but the
purported "fix" for http://code.google.com/p/android/issues/detail?id=6309 was
actually a regression. The supplied test fails on the RI. This patch replaces
the bogus test with new tests, and reverts the old "fix".

This was found while trying to work out what "true" and "false" return values
from OSNetworkSystem.select are supposed to mean. This patch also switches to
a more traditional int return value.

Bug: 3107501
Change-Id: Iddce55e081d440b7eb3ddcf94db7d0739dc89c70
rc/main/java/dalvik/system/BlockGuard.java
32b0fa4d1a31ef07bc4297c615f0fe50e9aa7c21 11-May-2011 Elliott Hughes <enh@google.com> DatagramSocket.disconnect is really a connect(2) of an AF_UNSPEC sockaddr.

Bug: 3107501
Change-Id: Ib04369b9ca63ff3fe7eb87dcbf2926fe704813e3
rc/main/java/dalvik/system/BlockGuard.java
996bf79565ac88402920bd826d6f85952c83be20 10-May-2011 Elliott Hughes <enh@google.com> Expose connect(2).

The new NET_FAILURE_RETRY in Posix.cpp is intended to replace the legacy one
in NetFd.h, but during the transition we need both. The new one also takes care
of the asynchronous Socket.close semantics, and changes the behavior when the
FileDescriptor is invalid on entry: that is now reported as EBADF; it's only
reported as "Socket closed" when we've been round the loop at least once,
giving us reason to believe the socket was ever open. Having had to debug this
distinction, I think the new semantics are less confusing.

Bug: 3107501
Change-Id: I243dc4fa2eddde7ba40e9b66ec8fc555bc4e80f9
rc/main/java/dalvik/system/BlockGuard.java
da15009528cc8300a6251f1d0931ac8657c9fc31 09-May-2011 Elliott Hughes <enh@google.com> Expose bind(2).

I've renamed the java.net.InetAddress to struct sockaddr conversion functions
too, after initially screwing up this patch by copy & pasting a usage of the
one that only one caller actually wants. Now the name's so ugly no-one will
be likely to use it by accident.

Bug: 3107501
Change-Id: I869a8d27fc40e462505e02bf25a67e771a403e92
rc/main/java/dalvik/system/BlockGuard.java
d6ecf9222ec65a08e99f15fcc4ec024f0fffd13a 04-May-2011 Elliott Hughes <enh@google.com> Fix non-blocking connects.

The key change here is reintroducing the boolean return value, which we need
as long as the native code treats EINPROGRESS as a special case which doesn't
throw.

The rest is just drive-by incremental cleanup of the code.

Change-Id: I761b052adbb14e912c3853a35327f8a589cd4023
rc/main/java/dalvik/system/BlockGuard.java
220c0af1763283b75617226efe3919c3e3b044c8 30-Apr-2011 Elliott Hughes <enh@google.com> Rewrite blocking connects in terms of the non-blocking primitives.

This simplifies OSNetworkSystem, getting us closer to replacing the
connect(2)-related bits with our new POSIX interface. It also lets
us remove cruft on the Java side that was resetting the socket's
blocking/non-blocking state (which should never have been touched),
which in turn fixes bug 4193212.

Detail messages for socket timeouts get better too, now we're throwing
on the Java side.

The only thing that's worse is that we used to get away with throwing
a checked exception from native code, which simplified our "throws"
clauses. Now we actually have to jump through a few hoops to make javac
happy. (Especially awkward because SocketTimeoutException isn't a
SocketException.) Stupid checked exceptions.

Bug: 4193212
Bug: 3107501
Change-Id: I00695d22094e6d785458dfbb7050fbaecf2db89f
rc/main/java/dalvik/system/BlockGuard.java
b974666d79ebc392b37ec1ae83aae57ae6331c08 06-Apr-2011 Elliott Hughes <enh@google.com> Finish setsockopt(2).

Bug: 3107501
Change-Id: I8f026dcba78acb555834bdcc594e114238f3cc52
rc/main/java/dalvik/system/BlockGuard.java
9aa53337a20c6da1e026bc1b06cd3930db49349a 06-Apr-2011 Elliott Hughes <enh@google.com> Ensure that the zygote is single-threaded before forking.

We really need to wait for the pthreads to exit.

Bug: 4235038
Change-Id: Ic0ce32be80bcdc27ff8fc6ac27fa37f7c3e17e0c
rc/main/java/dalvik/system/Zygote.java
55d86d85b3cd11461ba793cdc8ed74c87311a447 31-Mar-2011 Carl Shapiro <cshapiro@google.com> Implement reference queuing in managed code.

This change adds a thread to the core library which receives a list of
references after a garbage collection and enqueues each element. This
list is constructed by linking together the pendingNext field of cleared
references into a circular queue.

To support this change, the pendingNext field has been replaced by the
new zombie field for the purposes of providing a strongly reachable
location within a FinalizerReference class instance.

Change-Id: Id09133e44c850797e7f14c5471123a036d027c80
rc/main/java/dalvik/system/Zygote.java
0a9d1ee45a9884a9616624d747172e18734e8fe0 31-Mar-2011 Elliott Hughes <enh@google.com> Add getsockname(2) and getsockopt(2).

Bug: 3107501
Change-Id: Ibb0d5a576ecb46e51dbda6051776145eec9e7fe1
rc/main/java/dalvik/system/BlockGuard.java
645d772dfc09d9f0a384e3e9bb7894df5887de65 30-Mar-2011 Brian Carlstrom <bdc@google.com> am e9af8901: SamplingProfilerIntegration and SamplingProfiler improvements (2/3)

* commit 'e9af8901fc4ed7c05d085e2e492f5dcc857f0146':
SamplingProfilerIntegration and SamplingProfiler improvements (2/3)
e9af8901fc4ed7c05d085e2e492f5dcc857f0146 28-Mar-2011 Brian Carlstrom <bdc@google.com> SamplingProfilerIntegration and SamplingProfiler improvements (2/3)

Summary:

frameworks/base
- fix profiling to collect data beyond the first snapshot
- avoid many small files, accumulate data over process lifetime

libcore:
- add support for VM specific sampling, trying to cut down overhead
- added support for converting snapshot files to text format
- fixed race in profiler when stopping

dalvik
- added VMStack.setThreadStackTrace interface for filling a stack
trace into an existing StackTraceElement[]

Details:

frameworks/base

Changed snapshots from text to binary hprof format (bumping version to 3)
Changed from one file per snapshot to one file per process lifetime.
Restart profiling after snapshot.

core/java/com/android/internal/os/SamplingProfilerIntegration.java

Add quick test in maybeSnapshot to avoid doing work when the
SamplingProfilerIntegration is disabled. Make maybeSnapshot
private. Remove unneeded memory allocation in handleLowMemory.

core/java/android/app/ActivityThread.java

libcore

Added ThreadSampler interface. This allows VM specific thread
sampling optimizations. The portable version continues to use
Thread.getStackTrace().

dalvik/src/main/java/dalvik/system/profiler/ThreadSampler.java
dalvik/src/main/java/dalvik/system/profiler/PortableThreadSampler.java
dalvik/src/main/java/dalvik/system/profiler/SamplingProfiler.java

Add VMStack.setThreadStackTrace and use in new DalvikThreadSampler
to avoid allocating a full stack trace when only a limited depth
is desired.

dalvik/src/main/java/dalvik/system/profiler/DalvikThreadSampler.java
dalvik/src/main/java/dalvik/system/VMStack.java

Refactored BinaryHprof.readMagic out of BinaryHprofReader so it
can be used by HprofBinaryToAscii converter to probing file
types. Added magic number constant to be shared between readMagic
and BinaryHprofWriter.

dalvik/src/main/java/dalvik/system/profiler/BinaryHprof.java
dalvik/src/main/java/dalvik/system/profiler/BinaryHprofReader.java
dalvik/src/main/java/dalvik/system/profiler/BinaryHprofWriter.java
dalvik/src/main/java/dalvik/system/profiler/HprofBinaryToAscii.java

Removed unneeded HprofWriter interface. Changed to simpler static
interface to write HprofData to binary and text formats.

dalvik/src/main/java/dalvik/system/profiler/HprofWriter.java
dalvik/src/main/java/dalvik/system/profiler/AsciiHprofWriter.java
dalvik/src/main/java/dalvik/system/profiler/BinaryHprofWriter.java
dalvik/src/test/java/dalvik/system/profiler/SamplingProfilerTest.java

Added support for reading snapshot files created by
SamplingProfilerIntegration by stripping the text header to allow
easier conversion to the text format.

dalvik/src/main/java/dalvik/system/profiler/HprofBinaryToAscii.java

Fixed race between Sampler and
SamplingProfiler.stop. SamplingProfiler.stop previously simply
called the Sampler's TimerTask.cancel method, but this does not
wait for a currently running Sampler to finish. The TimerTask
documentation says the only reliable way to do this is to have the
run() cancel itself, so that is what is now done, with new code to
ensure that SamplingProfiler.stop does not return until the
Sampler has been terminated.

dalvik/src/main/java/dalvik/system/profiler/SamplingProfiler.java

dalvik

Refactored VMStack_getThreadStackTrace to create helper getTraceBuf
used to implement new VMStack_setThreadStackTrace. The new version
interface fills an existing StackTraceElement[], avoid allocating
unnecessary StackTraceElements.

vm/native/dalvik_system_VMStack.c

Refactor dvmGetStackTraceRaw to create dvmSetStackTraceRaw which
fills in an existing, potentially smaller, StackTraceElement[].

vm/Exception.c
vm/Exception.h

Change stack depths to be unsigned to avoid signed/unsigned comparison warnings.

vm/Ddm.c
vm/Exception.c
vm/Exception.h

Change-Id: Id65df6e72b7c727a0c8af15dbf6943297c591541
rc/main/java/dalvik/system/VMStack.java
rc/main/java/dalvik/system/profiler/AsciiHprofWriter.java
rc/main/java/dalvik/system/profiler/BinaryHprof.java
rc/main/java/dalvik/system/profiler/BinaryHprofReader.java
rc/main/java/dalvik/system/profiler/BinaryHprofWriter.java
rc/main/java/dalvik/system/profiler/DalvikThreadSampler.java
rc/main/java/dalvik/system/profiler/HprofBinaryToAscii.java
rc/main/java/dalvik/system/profiler/HprofWriter.java
rc/main/java/dalvik/system/profiler/PortableThreadSampler.java
rc/main/java/dalvik/system/profiler/SamplingProfiler.java
rc/main/java/dalvik/system/profiler/ThreadSampler.java
rc/test/java/dalvik/system/profiler/SamplingProfilerTest.java
454a95f6a28855aa3c88d168b15a45bf315efc99 30-Mar-2011 Elliott Hughes <enh@google.com> Add socket(2) and start adding setsockopt(2).

I've added just enough setsockopt to keep the hack from our old socket
creation code. More later (but not necessarily right away).

Bug: 3107501
Change-Id: Id57bdd3c760bc58ed79d675b268c55493cbc24c8
rc/main/java/dalvik/system/BlockGuard.java
8b15dcc5890963edad4dfcf558cc16027c7985e5 29-Mar-2011 Elliott Hughes <enh@google.com> Add sendfile(2).

This patch marks the end of OSFileSystem.

Having to support a Java "long*" for sendfile(2) gave me an opportunity to go
back and improve my ioctl(2) to use a corresponding "int*" equivalent, instead
of its previous special-case hack.

Bug: 3107501
Change-Id: I9fde4777700552263fab4fe9aeb556174163e3dc
rc/main/java/dalvik/system/BlockGuard.java
bbac92e691de7d570928ddfba639067978e55b06 29-Mar-2011 Elliott Hughes <enh@google.com> Add readv(2)/writev(2).

The old implementation would cheat if it was given non-direct buffers, copying
them into newly-allocated direct buffers. (The network Channel implementations
are worse: they copy all the data into a single buffer, and then read/write
that. I'll get to them eventually.)

Bug: 3107501
Change-Id: I1655bacb042e7ebcde7e5bc5cf2c71e7ce5e30af
rc/main/java/dalvik/system/BlockGuard.java
461d0d860814c68154d8dd06d24f94118f33d28a 29-Mar-2011 Elliott Hughes <enh@google.com> Add ioctl(2) for int*.

I'm not adding the "struct ifreq" stuff yet because that's really hairy and I
plan on rewriting the NetworkInterface implementation anyway, so it'll mainly
be based on /proc. With any luck, we won't even need those other ioctls then.

I'm not sure _this_ ioctl is a good idea, but it does seem like a slight
improvement on the old code, and we can always move it back out if/when these
APIs become more public.

Bug: 3107501
Change-Id: Iceac15e4a107c33bfc8795976a747c2ffa59a183
rc/main/java/dalvik/system/BlockGuard.java
53eaa09b3b8856efdd1441d2bdc3366e59678add 28-Mar-2011 Elliott Hughes <enh@google.com> Merge "Add write(2)." into dalvik-dev
6b89e5fc1efd78ceb178615d4d377ce506a5aa27 28-Mar-2011 Andy McFadden <fadden@android.com> Merge "Minor tweak to NativeStart" into dalvik-dev
78c7cc547101002b9f9043cf3845970719d1bda8 26-Mar-2011 Elliott Hughes <enh@google.com> Add write(2).

Note that this is a functional change, because the old code was wrong: it
assumed that short writes don't happen. I thought we'd (I'd) cleaned this
up just recently, but it looks like I must have only gone through the network
code. Embarrassing.

This also cleans up the previous read change a bit, factoring out a bit more
duplication, and taking advantage of the fact that we now get decent
exceptions thrown from invalid FileDescriptors (meaning we can remove explicit
checks).

Bug: 3107501
Change-Id: I8bd5324836c9d151dceaef5b84ec523a67391b64
rc/main/java/dalvik/system/BlockGuard.java
26c7025a7a919044771fb89031161bd26fe03032 26-Mar-2011 Elliott Hughes <enh@google.com> Add read(2).

For both byte[]s and ByteBuffers.

Bug: 3107501
Change-Id: I93b781069ade4507371c8fe8c5fda0163fbb2dbb
rc/main/java/dalvik/system/BlockGuard.java
d4ce68dc671294428f096c473f1dc3665bd4ce82 26-Mar-2011 Andy McFadden <fadden@android.com> Minor tweak to NativeStart

There's no value in pretending to be Runnable, and the VM init is a bit
cleaner if we stop.

Change-Id: Ie6043b4621ae72db1190e79769aaa1771c83197c
rc/main/java/dalvik/system/NativeStart.java
b4088b380f61a3944ea20ccd746f5ddbf223847f 25-Mar-2011 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of cfa84a2a to dalvik-dev

Change-Id: I7765cd4bf03f0b18e60848c30dcce30cbdd7c77b
cfa84a2aac159bb8a1763298882df7aa98f7fc6f 24-Mar-2011 Brian Carlstrom <bdc@google.com> Import SamplingProfiler from http://code.google.com/p/dalvik/

cp ~/android/dalvik/profiler/src/main/java/dalvik/profiler/* ~/android/master/libcore/dalvik/src/main/java/dalvik/system/profiler/
cp ~/android/dalvik/profiler/src/test/java/dalvik/profiler/* ~/android/master/libcore/dalvik/src/test/java/dalvik/system/profiler/
perl -p -i -e 's/package dalvik.profiler;/package dalvik.system.profiler;/' ~/android/master/libcore/dalvik/src/*/java/dalvik/system/profiler/*.java
perl -p -i -e 's/import dalvik.profiler./import dalvik.system.profiler./' ~/android/master/libcore/dalvik/src/*/java/dalvik/system/profiler/*.java

Change-Id: Iae3f63327f4a9dde7f037e69c22057e2ea704aaa
rc/main/java/dalvik/system/SamplingProfiler.java
rc/main/java/dalvik/system/profiler/AsciiHprofWriter.java
rc/main/java/dalvik/system/profiler/BinaryHprof.java
rc/main/java/dalvik/system/profiler/BinaryHprofReader.java
rc/main/java/dalvik/system/profiler/BinaryHprofWriter.java
rc/main/java/dalvik/system/profiler/HprofBinaryToAscii.java
rc/main/java/dalvik/system/profiler/HprofData.java
rc/main/java/dalvik/system/profiler/HprofWriter.java
rc/main/java/dalvik/system/profiler/MalformedHprofException.java
rc/main/java/dalvik/system/profiler/SamplingProfiler.java
rc/test/java/dalvik/system/SamplingProfilerTest.java
rc/test/java/dalvik/system/profiler/SamplingProfilerTest.java
fc549a0b0388987b26dea524894d75a63d14783b 25-Mar-2011 Elliott Hughes <enh@google.com> Add fcntl(2).

I initially used overloading, but that actually decreases safety in practice
because which overload you need is (uniquely) determined by the specific
command you're issuing. Forcing callers to explicitly state what they're
doing works around this. As it was, I had to use strace(1) to find my bug.

Bug: 3107501
Change-Id: Ia54b72dd6453372922f01b22f382eb93ac91aaa7
rc/main/java/dalvik/system/BlockGuard.java
e1502d64e937001636fca3d62b2552ef2a34d05f 24-Mar-2011 Elliott Hughes <enh@google.com> Add listen(2).

Bug: 3107501
Change-Id: I3677bb4ddb3f3d0e58a6833165504f47bb309630
rc/main/java/dalvik/system/BlockGuard.java
59e4744d27231f260271dbbca406e0cc39768116 24-Mar-2011 Elliott Hughes <enh@google.com> Add shutdown(2).

Bug: 3107501
Change-Id: I30354c4cc6e86a4e7b0e3f84e95719539db1d297
rc/main/java/dalvik/system/BlockGuard.java
0ac77ac8e915bff1a863e371f9b363033f9cf759 23-Mar-2011 Elliott Hughes <enh@google.com> Add open(2).

Bug: 3107501
Change-Id: I404030b4c678862465d04f723a6a324663e0af25
rc/main/java/dalvik/system/BlockGuard.java
e6ce85b954b9dd1e3bf672aa81ae845a6533e17a 22-Mar-2011 Elliott Hughes <enh@google.com> Merge "Remove more dead SecurityManager cruft." into dalvik-dev
8647680e6a884b504a9f502e0f6a24218fdf675c 22-Mar-2011 Elliott Hughes <enh@google.com> Remove more dead SecurityManager cruft.

(Requires corresponding dalvik change.)

Change-Id: I65cd76ae056d4a1ff5f1a3e168b118a47cf09ff5
rc/main/java/dalvik/system/DexFile.java
bbfadc8ae01454abba5335fccceaa1c80123ae49 21-Mar-2011 Carl Shapiro <cshapiro@google.com> Move finalization into the core library.

Change-Id: I969ecc25f2a7e655e1093855514102662846dfe1
rc/main/java/dalvik/bytecode/OpcodeInfo.java
rc/main/java/dalvik/system/SamplingProfiler.java
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/Zygote.java
dedaccdfa07c370a58cba08b096133ad9eec0ec3 18-Mar-2011 Elliott Hughes <enh@google.com> Add lseek(2).

Bug: 3107501
Change-Id: Ie27e2ae1c7d37de5f02b1d81ee2005182339f881
rc/main/java/dalvik/system/BlockGuard.java
f5333fd2094bdac4d6506177b1964b79afa64d77 18-Mar-2011 Elliott Hughes <enh@google.com> Add ftruncate(2).

The claim that "the port library" modifies the file offset appears to only ever
have been true of Harmony's Win32 implementation. Certainly, this is not the
behavior of ftruncate(2), so we can lose the cruft.

Bug: 3107501
Change-Id: I35092fd986296b78c4847c7215765f9997339f37
rc/main/java/dalvik/system/BlockGuard.java
6fc1a0e1e68dc2e0d12341548e58fa7f1c5dafc4 18-Mar-2011 Elliott Hughes <enh@google.com> Add sysconf(3).

This gives us a getpagesize(3) replacement right now, and will let us implement
Runtime.availableProcessors here rather than in the VM in a later change.

Bug: 3107501
Change-Id: I6fc1f83d36b026fbe8d37eca525550479677f2de
rc/main/java/dalvik/system/BlockGuard.java
47cb338d43f75dd998b29caaaa9446c5705217d1 18-Mar-2011 Elliott Hughes <enh@google.com> Add fstat(2), lstat(2), and stat(2).

Bug: 3107501
Change-Id: Ic36f9ffd03446d6e0189470f42abdadde57327df
rc/main/java/dalvik/system/BlockGuard.java
52724d3ebd4ccaaa4b9f5576e329d4272cde8ea9 17-Mar-2011 Elliott Hughes <enh@google.com> Add fsync(2) and fdatasync(2).

Interesting parts to this change:
* first BlockGuard support (and general delegation support).
* first rethrowing of ErrnoException as IOException.
* switching FileChannelImpl from int to FileDescriptor.

The special case in FileDescriptor.sync has been removed. Testing with the RI
showed that it doesn't treat syncing a FileDescriptor that corresponds to a
socket as a special case --- it throws SyncFailedException just like normal.

Bug: 3107501
Change-Id: I99faf120bd802aec0397a79772ed38c5e1542fed
rc/main/java/dalvik/system/BlockGuard.java
cdf7a1f942469221bcfd63d9cdf71851b011eaf0 16-Mar-2011 Elliott Hughes <enh@google.com> Expose POSIX constants.

And use them, too. This patch is a little confusing because we already had
constants in Java that were using the POSIX names but that didn't actually
correspond to the constants whose names they'd stolen. Ugh.

Bug: 3107501
Change-Id: Ib64a109c9340b0ecdf80bec91074206c001f455a
rc/main/java/dalvik/system/BlockGuard.java
3d93b50c1e9d8cb12d17a4331edd27ee2a1dc7a9 11-Mar-2011 Dan Bornstein <danfuzz@android.com> Remove the stopAtPrivileged argument.

It's superfluous now.

Change-Id: I5628797b1296a41bfe72e535efaf18cd17e12fd4
rc/main/java/dalvik/system/VMStack.java
2f03ccad590827233fcba84a8b6eafcd414e5fe7 08-Mar-2011 Elliott Hughes <enh@google.com> Use -fvisibility and clean up a little.

The visibility change isn't obviously useful, but it's a good excuse to clean
up some of our networking code a little.

Change-Id: I165b32b9c76a3707c512e07de07992f63673ab4f
rc/main/java/dalvik/system/BlockGuard.java
9ac1ed079c2ff55bedcd31ad5e219572810fbeab 04-Mar-2011 Brian Carlstrom <bdc@google.com> Clean up of test-related dalvik.annotation classes

Remove unused dalvik.annotations related to tests

dalvik.annotation.HostController
dalvik.annotation.TestInfo
dalvik.annotation.TestStatus
dalvik.annotation.Timeout
dalvik.annotation.VirtualTestTarget

Deprecate two public dalvik.annotations related to tests. While they
appear in the api xml files, they aren't show in our javadoc.

dalvik.annotation.TestTarget
dalvik.annotation.TestTargetClass

Change-Id: I2f2aa41da0941718e4717d7ee8021606910f75f2
rc/main/java/dalvik/annotation/HostController.java
rc/main/java/dalvik/annotation/TestInfo.java
rc/main/java/dalvik/annotation/TestStatus.java
rc/main/java/dalvik/annotation/TestTarget.java
rc/main/java/dalvik/annotation/TestTargetClass.java
rc/main/java/dalvik/annotation/Timeout.java
rc/main/java/dalvik/annotation/VirtualTestTarget.java
f5309a39506c967feda8766feeba7f7271a458cb 25-Feb-2011 Elliott Hughes <enh@google.com> Fix more FindBugs warnings: RR_NOT_CHECKED.

"This method ignores the return value of one of the variants of
java.io.InputStream.read() which can return multiple bytes. If the return
value is not checked, the caller will not be able to correctly handle the
case where fewer bytes were read than the caller requested. This is a
particularly insidious kind of bug, because in many programs, reads from input
streams usually do read the full amount of data requested, causing the
program to fail only sporadically."

Change-Id: I7d7c62836f2037f0cbb4bb0708bd4f034a22a2fc
rc/main/java/dalvik/system/SamplingProfiler.java
85440d169cc36eae9cff2095f1dad0997161ce2a 24-Feb-2011 Brian Carlstrom <bdc@google.com> am 2f323ffc: Merge "Move state from Sampler to SamplingProfiler that needs to be preserved across a profiler restart"

* commit '2f323ffc114d439cbeeb780845e5d1b2a88f85f9':
Move state from Sampler to SamplingProfiler that needs to be preserved across a profiler restart
ed94c622ac91edc38c9f87d5e1508bfae1b26c95 24-Feb-2011 Brian Carlstrom <bdc@google.com> Move state from Sampler to SamplingProfiler that needs to be preserved across a profiler restart

Change-Id: I39acb54cca5b98c7f147e2d9cc083c6ab4b17707
rc/main/java/dalvik/system/SamplingProfiler.java
a7ef55258ac71153487357b861c7639d627df82f 22-Feb-2011 Elliott Hughes <enh@google.com> Simplify internal libcore logging.

Expose LOGE and friends for use from Java. This is handy because it lets me use
printf debugging even when I've broken String or CharsetEncoder or something
equally critical. It also lets us remove internal use of java.util.logging,
which is slow and ugly.

I've also changed Thread.suspend/resume/stop to actually throw
UnsupportedOperationException rather than just logging one and otherwise
doing nothing.

Bug: 3477960
Change-Id: I0c3f804b1a978bf9911cb4a9bfd90b2466f8798f
rc/main/java/dalvik/system/CloseGuard.java
rc/main/java/dalvik/system/DexPathList.java
rc/main/java/dalvik/system/TemporaryDirectory.java
6aa068b481cc4cca7765ce90fdf32f3eb2b5a77c 18-Feb-2011 Elliott Hughes <enh@google.com> Fix various FindBugs warnings.

Only the ChunkHandler and ZoneInfo ones were real bugs. The former is only
called with one input value that doesn't exercise the bug, and the latter
would cause us to think that a time zone that stopped using daylight time
before 1970 was still using daylight time (which would defeat various
optimizations, but should otherwise be harmless).

The other stuff is trivia not worth individual changes.

Change-Id: Ib0752560cd16edc6538d1fc2b234451a66d48171
rc/main/java/org/apache/harmony/dalvik/ddmc/ChunkHandler.java
79859c0890404411f26b88beef4c6881e92ac99c 17-Feb-2011 Elliott Hughes <enh@google.com> Fix dalvik.system FindBugs warnings.

Change-Id: I9cb09b8b9b0b21c899b08a852cc6f277dbb67bcf
rc/main/java/dalvik/system/BlockGuard.java
rc/main/java/dalvik/system/SamplingProfiler.java
ea52753a0f80fcd70acfe9150ecb854511ff38db 10-Feb-2011 Dan Bornstein <danfuzz@android.com> Refactor DexClassLoader and PathClassLoader.

This resulted in the creation of two new classes: DexPathList contains
most of the common functionality, namely managing the two path lists
(dex/resource files and native library directories) plus all the
salient initialization and lookup code. BaseDexClassLoader provides
the ClassLoader API, mostly by making calls to a contained DexPathList
instance. The two original classes just become trivial subclasses
which take different constructor args and make correspondingly
different super() calls in their respective constructors.

I took the opportunity to remove the ability for PathClassLoader to
take directories on the dex/resource list. This functionality hadn't
ever been used, at least not since well before 1.0.

Change-Id: I92ed300417431d0e0ac4c5ecf2f10d6a9b0691c7
rc/main/java/dalvik/system/BaseDexClassLoader.java
rc/main/java/dalvik/system/DexClassLoader.java
rc/main/java/dalvik/system/DexPathList.java
rc/main/java/dalvik/system/PathClassLoader.java
296b43d6f6fc96b0b4cf16956bebed8347953a6f 11-Feb-2011 Elliott Hughes <enh@google.com> Remove the obsolete TouchDex code.

Apparently, this is how we did the first-boot dexing before we had a
package manager.

Change-Id: I6fce0fb30ab9dc2e7ebb0c4177540e92677c92b9
rc/main/java/dalvik/system/TouchDex.java
rc/main/java/dalvik/system/TouchDexLoader.java
rc/main/native/dalvik_system_TouchDex.cpp
rc/main/native/sub.mk
24923f9042b142165f7176f1aa44a797145f11a7 10-Feb-2011 Elliott Hughes <enh@google.com> Move more of the system properties handling into managed code.

Bug: 3413364
Change-Id: Ifc9b54255e11fd7df5517b88d8774dd747a7ec3d
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/TouchDexLoader.java
rc/main/java/dalvik/system/VMRuntime.java
e0375835b803ed2fa9a71b59d2857ff49b0ef3f7 10-Feb-2011 Dan Bornstein <danfuzz@android.com> am 7190be77: Restore the code for optimized file specification.

* commit '7190be77a29ad8f35b044ec591cb2b449f3ea8a1':
Restore the code for optimized file specification.
7190be77a29ad8f35b044ec591cb2b449f3ea8a1 09-Feb-2011 Dan Bornstein <danfuzz@android.com> Restore the code for optimized file specification.

This bit got removed due to a copy-paste mishap.

Bug: 3439372
Change-Id: If4653ec77bdc9b629ed4f5ba953be3eef6315b97
rc/main/java/dalvik/system/DexClassLoader.java
3af5f378b276c941cd7b0be9e4ee38029145cce0 08-Feb-2011 Carl Shapiro <cshapiro@google.com> Merge "Stub out and deprecate gcSoftReferences." into dalvik-dev
3b7c2eb86f89ea46b1ff054c478f2e85f5a458f5 08-Feb-2011 Carl Shapiro <cshapiro@google.com> Stub out and deprecate gcSoftReferences.

Change-Id: I5c4fe0bc9ed1dd4b4e1324e2c090815f97e4463f
rc/main/java/dalvik/system/VMRuntime.java
26ce8fbd8fe488cc969b08f64c56525662763dc4 08-Feb-2011 Jesse Wilson <jessewilson@google.com> resolved conflicts for merge of 6186821c to dalvik-dev

Change-Id: Ic6f0172767d6feedb188d3a5e7488a67702ef8c4
6186821cb13f4ac7ff50950c813394367e021eae 08-Feb-2011 Jesse Wilson <jessewilson@google.com> Move libcore.base classes to libcore.util and libcore.io.

Change-Id: I2340a9dbad3561fa681a8ab47d4f406e72c913e3
rc/main/java/dalvik/system/SamplingProfiler.java
e834b28074eccae1c365b1ee752511d82e2f9219 24-Jan-2011 Jesse Wilson <jessewilson@google.com> am 82c16e90: am d57cdc2f: am 766776ce: Remove broken+deprecated SamplingProfiler.writeHprofData

* commit '82c16e90fc5c1f81d6256ca05b45bc53e695316a':
Remove broken+deprecated SamplingProfiler.writeHprofData
766776ce478ca80b6381d1e3cdbbb7301d539445 23-Jan-2011 Jesse Wilson <jessewilson@google.com> Remove broken+deprecated SamplingProfiler.writeHprofData

Change-Id: I7af108e06a2708fe8d1d8ace4e02210b2cfd486b
http://b/3381260
rc/main/java/dalvik/system/SamplingProfiler.java
a8e6ab1e9bd402eb5a96b768676fc4636df9f693 19-Jan-2011 Carl Shapiro <cshapiro@google.com> am b0886c84: am d26f4e0d: am 6fcb5467: Merge "Expose an interface for clearing a heap growth limit." into honeycomb

* commit 'b0886c849bcbf547b1983bfcb09b9ea4623c70c8':
Expose an interface for clearing a heap growth limit.
c6fbb241341729f9bfdede1ece73a37daf9cbb77 19-Jan-2011 Andy McFadden <fadden@android.com> am 0d46536e: am cbd2876d: am be9c142f: Minor doc tweaks.

* commit '0d46536ec1069aa2a7181deaf839cc1ba26d45d7':
Minor doc tweaks.
27932545a7b63c7d6e3cd0bea921231ac3a4110e 19-Jan-2011 Carl Shapiro <cshapiro@google.com> Expose an interface for clearing a heap growth limit.

Change-Id: I55a9b2415a28c9365af68a5a78b0208075dfd1cd
rc/main/java/dalvik/system/VMRuntime.java
be9c142fd80574e5d15571dad2562cd6894e2c81 19-Jan-2011 Andy McFadden <fadden@android.com> Minor doc tweaks.

Bug 3347172.

Change-Id: I9954e6ae929c6e8ef5223ada02012f3909e1204e
rc/main/java/dalvik/system/DexFile.java
e3c084bb1437838a2f923cb6c465be4aee723337 15-Jan-2011 Dan Bornstein <danfuzz@android.com> am 16ed9750: am a04850bc: am 6044fd95: Synch up file opening code in PathClassLoader and DexClassLoader.

* commit '16ed9750d423f641e357d4cc8e410646f6ca32e1':
Synch up file opening code in PathClassLoader and DexClassLoader.
6044fd95ef201bbdb11c5364581bc20436233321 15-Jan-2011 Dan Bornstein <danfuzz@android.com> Synch up file opening code in PathClassLoader and DexClassLoader.

The version in PathClassLoader was more correct.

Change-Id: I92a205403d33c13378c7f392b835669cb97f6ac4
rc/main/java/dalvik/system/DexClassLoader.java
rc/main/java/dalvik/system/PathClassLoader.java
02582f076018e7ff3864e2cbe01e3edf91c5b542 13-Jan-2011 Carl Shapiro <cshapiro@google.com> am 3c61f6c5: am fb641fa5: am c4379294: Remove @cts comments from hidden classes.

* commit '3c61f6c5fa99f7558f2b0386b0365b9430ed41fd':
Remove @cts comments from hidden classes.
c43792941691fd119cf9df8e5c2c1419f3f7b92d 13-Jan-2011 Carl Shapiro <cshapiro@google.com> Remove @cts comments from hidden classes.

Change-Id: I948fc13d0fc236b07dad5864cab2e5c4eba2c06c
rc/main/java/dalvik/system/TouchDex.java
rc/main/java/dalvik/system/VMDebug.java
3a1e9804620cb02f7d93dfc931db9bba4ccdf321 13-Jan-2011 Carl Shapiro <cshapiro@google.com> am bc307281: am 2ce1fb3e: am 55fa6d07: Merge "Remove the allocation limits interfaces." into honeycomb

* commit 'bc307281679f1b9b6d223fd962c37a8160510125':
Remove the allocation limits interfaces.
3ca860a1b855ab0e30c50779d7f7eefe70a2f8b0 13-Jan-2011 Carl Shapiro <cshapiro@google.com> Remove the allocation limits interfaces.

Change-Id: I85c3b48cb11823cfccd1901cac685d0c457a74b3
rc/main/java/dalvik/system/VMDebug.java
b1d1d4c1ae831325706517d6cc248d4a078876b8 13-Jan-2011 Carl Shapiro <cshapiro@google.com> am 2d71deb0: am 651d1905: am 79214492: Fix a droid doc error caused by the erroneous inflection of @return.

* commit '2d71deb0336bf57ba74df1afe223c85e50ed5575':
Fix a droid doc error caused by the erroneous inflection of @return.
7921449288479710fddfd9873ea6608b89ae271b 12-Jan-2011 Carl Shapiro <cshapiro@google.com> Fix a droid doc error caused by the erroneous inflection of @return.

Change-Id: I61a3c8cc34d129a37c6556b9def5fa5fe0cafe46
rc/main/java/dalvik/system/VMDebug.java
698e79daa409d118c0d7ea76717a38e145cb58d6 12-Jan-2011 Carl Shapiro <cshapiro@google.com> am 706ea0b9: am 5e7fa214: am f6dbefb3: Merge "Remove method level hiding within hidden classes." into honeycomb

* commit '706ea0b90e80b9f77b178d13f3a5c6b1cf434a35':
Remove method level hiding within hidden classes.
f6dbefb3721414d0337fe61095724bcb870c74b4 12-Jan-2011 Carl Shapiro <cshapiro@google.com> Merge "Remove method level hiding within hidden classes." into honeycomb
c7d1c84d4620dd265192620a96aae7ecbe23d8b8 12-Jan-2011 Carl Shapiro <cshapiro@google.com> am 04874adf: am 36dc3b8d: am cb966aef: Remove support for setting the minimum size of the heap at runtime.

* commit '04874adf6cd82647a40fc0480e3cfe9809b46ff6':
Remove support for setting the minimum size of the heap at runtime.
fb374e129dc73d4adafc9441ca78011676a26d9f 12-Jan-2011 Carl Shapiro <cshapiro@google.com> Remove method level hiding within hidden classes.

This change also removes braces surrounding a properly placed @hide
annotation.

Change-Id: I8b7b32567068099f9081e7bcb2f30b80b71441f7
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/VMDebug.java
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/VMStack.java
rc/main/java/dalvik/system/Zygote.java
cb966aefd47938792200bb69c0d4b2bc4d26b360 12-Jan-2011 Carl Shapiro <cshapiro@google.com> Remove support for setting the minimum size of the heap at runtime.

Change-Id: I299fd6806350eb35c768d7370f11b689ab8232b8
rc/main/java/dalvik/system/VMRuntime.java
b2097e76ab184a863838017ac442b744e7bf7c23 11-Jan-2011 Elliott Hughes <enh@google.com> am 66d9e787: am cbe26f42: am c8dde40c: Merge "Get memory for direct byte buffers from the Java heap rather than the native heap." into honeycomb

* commit '66d9e787af999d3c6b26cfd46e10e0750a5f3e6e':
Get memory for direct byte buffers from the Java heap rather than the native heap.
3676bd288bce270a51b1c51f1052b76e83e71412 11-Jan-2011 Elliott Hughes <enh@google.com> Get memory for direct byte buffers from the Java heap rather than the native heap.

Since the removal of tracked external allocations, there's been no accounting
of direct byte buffers. This fixes that, and moves us to a much simpler
situation where the GC is responsible for this memory too. It also means that
we don't need finalizers: now only memory-mapped blocks need finalizers (to call
munmap(3)).

Change-Id: I6b43f74074e496eeb2a36b620af19e4926ceb8cf
rc/main/java/dalvik/system/VMRuntime.java
c3d30bfb532fc1e609a67a324d6bfb9776f88778 08-Jan-2011 Elliott Hughes <enh@google.com> Tell editors that these are Makefiles (or fragments thereof).

Change-Id: I0c5e29ac750b9605b1e8f823d6998d31a933b7a4
rc/main/native/sub.mk
d7fd1b88b89ca762afe5609d84a8eedfb611cbe1 07-Dec-2010 Brian Carlstrom <bdc@google.com> Adding binary hprof support to SamplingProfiler

SamplingProfiler refactored:
- HprofData is now a separate class, the common data structure
- SamplingProfiler uses HprofData as its runtime format
- AsciiHprofWriter refactored from profiler, takes an HprofData
- new BinaryHprofWriter to output HprofData in binary format
- new BinaryHprofReader can recreate HprofData from binary file
- new HprofBinaryToAscii command line tool to convert formats

dalvik/src/main/java/dalvik/system/SamplingProfiler.java

SamplingProfilerTest expanded to cover new HprofData class
directly. Includes testing of conversion from various hand constructed
HprofData to ascii and binary formats as well as from binary back to
HprofData with out loss of data.

dalvik/src/test/java/dalvik/system/SamplingProfilerTest.java

Change-Id: I6fe06f5dbdbf2f0bf2de228d9761f84d75290ba7
rc/main/java/dalvik/system/SamplingProfiler.java
rc/test/java/dalvik/system/SamplingProfilerTest.java
b8f9285f7e67812c435bc429e07683d6b9039b0a 22-Dec-2010 Jesse Wilson <jessewilson@google.com> Revert "Remove inline natives for an unused performance test." (libcore)

Change-Id: I7ea69f84c008c5bdbdf8af6134fb81d80f0a958e
rc/main/java/org/apache/harmony/dalvik/NativeTestTarget.java
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
rc/main/native/sub.mk
2c549add8659c3f53a4b7306d3a01262434383e9 22-Dec-2010 Jesse Wilson <jessewilson@google.com> Remove native targets for unused performance tests.

Change-Id: Ia61172cd52de031290a811c3ec73edb929f40c10
rc/main/java/org/apache/harmony/dalvik/NativeTestTarget.java
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
rc/main/native/sub.mk
1ad1fe9aa7fa705ce4441e90f46cf790ad0f758a 22-Dec-2010 Ben Cheng <bccheng@android.com> Revert "Remove native targets for unused performance tests."

This reverts commit 272a383283a974a4c32a94469b8a8b021d93a480.
rc/main/java/org/apache/harmony/dalvik/NativeTestTarget.java
rc/main/native/sub.mk
272a383283a974a4c32a94469b8a8b021d93a480 21-Dec-2010 Jesse Wilson <jessewilson@google.com> Remove native targets for unused performance tests.

See also change I5a252e31.

Change-Id: I3880a81f1f7e90247ce12860b5a2f597037123a7
rc/main/java/org/apache/harmony/dalvik/NativeTestTarget.java
rc/main/native/sub.mk
1f7938c837aedb877329d5778af3d03fedbd1680 18-Dec-2010 Carl Shapiro <cshapiro@google.com> Remove the external allocation facility.

Change-Id: Ic21a01ff1f82f6b2d22d089711a2843b5a497eda
rc/main/java/dalvik/system/VMRuntime.java
92e51d7dedadb3e8a605eb00e455faf1e3446a02 17-Dec-2010 Dan Bornstein <danfuzz@android.com> We always wantDex at this point.

So, there was no longer a need to check for it.

Cleaned up some comments and minor code convention violations while
I was in the territory.

Change-Id: I717fa74bad05cdbf02bd4f6d24108196579c451a
rc/main/java/dalvik/system/DexClassLoader.java
rc/main/java/dalvik/system/PathClassLoader.java
5fb197cf9380cfa2b740d98118c2f4b2d739eb9f 16-Dec-2010 Dan Bornstein <danfuzz@android.com> Don't bother trying to unzip a file named "*.dex".

This avoids a bit of work that would inevitably fail. I also updated
some comments to better reflect the status quo.

Change-Id: I7435ec0abd4d0a8173d61c1f4b894bfafbc6f609
rc/main/java/dalvik/system/PathClassLoader.java
8abd4e471456bc479401d652de61de7c9ba85661 15-Dec-2010 Dan Bornstein <danfuzz@android.com> Plumbing for loading byte[]-based dex files.

This is not yet complete. See related change I06af6df3 in the dalvik
project.

Change-Id: Iac4739c0e75bf95e1d5f019e946b8ddb256d3a26
rc/main/java/dalvik/system/DexFile.java
2c0ee3e91b972b1499f1fb3d0b0d8a022c09c34d 10-Dec-2010 Brad Fitzpatrick <bradfitz@android.com> Add BlockGuardPolicyException constructor with a message

Change-Id: Ied7ca5e1a1d7dbcf44d5bcf6834c04076461d605
rc/main/java/dalvik/system/BlockGuard.java
866e7ae17a3da81a02b0b144e0c9c2b3196d293a 09-Dec-2010 Elliott Hughes <enh@google.com> Fix a bunch of javac -Xlint warnings in our code.

I think "fallthrough" uncovered a couple of real bugs in the kxml code, but
other than that there's nothing very exciting here. This addresses all but
one of the non-xml warnings. I'm assuming that we'll move the xml cruft out
into external at some point (since we're deliberately not maintaining it).

Change-Id: Ice81253b019df7b19d6557e719663b7bdc11fb22
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/VMDebug.java
5f13d2214de3c5904f94462609cfd2268c9b5862 03-Dec-2010 Dan Bornstein <danfuzz@android.com> Update and clarify opcode values.

They're now represented as four hex digits, making it clear that
they are raw opcode values (and not the packed representation).

I also took this as the time to add the new opcodes and update
Opcode.MAXIMUM_VALUE.

Change-Id: If9e123b5d361ec6eed08c19886bdf2e20e12ab94
rc/main/java/dalvik/bytecode/OpcodeInfo.java
rc/main/java/dalvik/bytecode/Opcodes.java
0e7fb57b0a6c045bf15c2ada3d1c4eb3dde1cc76 03-Dec-2010 Dan Bornstein <danfuzz@android.com> Expose the "packed opcode" concept, just a bit.

Change-Id: I8427290bd5179c6cd184227083bebe7dc0f33b44
rc/main/java/dalvik/bytecode/OpcodeInfo.java
98b837cd2b647593e5948bb0363cc75b8467b54e 02-Dec-2010 Brian Carlstrom <bdc@google.com> am 5aad086b: Merge "Fix SamplingProfiler to handle null group on thread termination"

* commit '5aad086b3800a9b328f9a4b6119f7d7532c752f7':
Fix SamplingProfiler to handle null group on thread termination
9bbbf3a8bb608e986f77e304007c889e3460e0a3 02-Dec-2010 Brian Carlstrom <bdc@google.com> Fix SamplingProfiler to handle null group on thread termination

Change-Id: I7f888175fbe412b581d649c2e244ef26252a4482
rc/main/java/dalvik/system/SamplingProfiler.java
5efe91b19459d10840f5eefc1cb00d00b46ec8a2 01-Dec-2010 Dan Bornstein <danfuzz@android.com> Match comment to the new reality.

...which is the same as the slightly older reality, as it happens.

Change-Id: If9f5a33a2a97471b25141cc1e7f496cdef5a77c4
rc/main/java/dalvik/bytecode/OpcodeInfo.java
46c851854bac3535f95d0305e37aaed24893b921 30-Nov-2010 Dan Bornstein <danfuzz@android.com> Merge "Add a wee bit of libdex access." into dalvik-dev
c3d9f6e7796600ae5b183ab022b5612c82c7efa4 30-Nov-2010 Andy McFadden <fadden@android.com> Merge "Zero the cookie after close." into dalvik-dev
8def5c9e3d9b0f73beacbd4b44b966736dc04f23 30-Nov-2010 Dan Bornstein <danfuzz@android.com> Add a wee bit of libdex access.

This is going to be used in support of making the framework Debug class
not have to include vm-specific constants.

Change-Id: Ia017bbbb947d8e04192d462bb244cd085096e88d
rc/main/java/dalvik/bytecode/OpcodeInfo.java
a2dc5f83493ea8f514ff8a8df4c85dcce6093d9f 30-Nov-2010 Andy McFadden <fadden@android.com> Zero the cookie after close.

The cookie values can be re-used by the VM, so zero it out after closing
the DexFile to ensure we don't try to close again in the finalizer.

Bug 3238298

Change-Id: I2cc6a0d90ae9fbdff9c6a0f34a8031f36aa78e70
rc/main/java/dalvik/system/DexFile.java
8630242560eefb56c0481931533eb7e12d3edfee 30-Nov-2010 Dan Bornstein <danfuzz@android.com> Generate most libcore opcode-related stuff.

This brings libcore's Dalvik opcode definitions into the opcode-gen fold,
but there is still a bit more to clean up after this.

Change-Id: I199d6484f2d23f24a86ffe668739be99685a43e8
rc/main/java/dalvik/bytecode/OpcodeInfo.java
rc/main/java/dalvik/bytecode/Opcodes.java
16829a7fc923d557b7c0cd951f0251b9d53a45aa 20-Nov-2010 Dan Bornstein <danfuzz@android.com> A little opcode cleanup in dalvik.system.

OpcodeInfo is a sparse class right now, but I expect it will eventually
start to look a bit like InstrInfo.[ch] in libdex.

Change-Id: Ia446c95829515ee5f718ed80217d80a74738a09d
rc/main/java/dalvik/bytecode/OpcodeInfo.java
rc/main/java/dalvik/bytecode/Opcodes.java
f0c77ee86dbfc8ec553ca5140d63e4d8bf0d9c1a 19-Nov-2010 Brian Carlstrom <bdc@google.com> am 4d7f6230: Merge "minor CloseGuard javadoc corrections"

* commit '4d7f623096baf10fce592995cd959f28e56f4593':
minor CloseGuard javadoc corrections
1292ca6a89af2492f9c1f52f7d4a555c75462482 19-Nov-2010 Brian Carlstrom <bdc@google.com> minor CloseGuard javadoc corrections

Change-Id: I6892d1f03821032d40b2ea678b9406f464878755
rc/main/java/dalvik/system/CloseGuard.java
10ed841343bbc7946dfa0144066826ad1db4130b 15-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> am 4bfc26e9: CloseGuard: make members volatile, update comment

* commit '4bfc26e99c8044a1d690003d4bb3d75348124f57':
CloseGuard: make members volatile, update comment
4bfc26e99c8044a1d690003d4bb3d75348124f57 14-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> CloseGuard: make members volatile, update comment

Change-Id: Id348a2d523fb92631a07684050b03311a6ea2eef
rc/main/java/dalvik/system/CloseGuard.java
3feb2a07af7cecca9b8b245dd0ffaf9926996260 08-Nov-2010 Brian Carlstrom <bdc@google.com> am f7ee2365: Fix javadoc typo

* commit 'f7ee236589ca1fe73615c4dc8a536ffe29a236ff':
Fix javadoc typo
f7ee236589ca1fe73615c4dc8a536ffe29a236ff 08-Nov-2010 Brian Carlstrom <bdc@google.com> Fix javadoc typo

Change-Id: I5e24358c62e00f199c71b9825b1b533b34510f74
rc/main/java/dalvik/system/CloseGuard.java
7cf29130b51703f60cb498902f3dfa9622b0afe3 08-Nov-2010 Brian Carlstrom <bdc@google.com> am b81e1d9d: Add CloseGuard.Reporter interface to allow customization of warnings

* commit 'b81e1d9da6a4b039ffa55618fcccb013d3116261':
Add CloseGuard.Reporter interface to allow customization of warnings
b81e1d9da6a4b039ffa55618fcccb013d3116261 08-Nov-2010 Brian Carlstrom <bdc@google.com> Add CloseGuard.Reporter interface to allow customization of warnings

This will be paired with a new implementation in StrictMode to allow
more sophisticated reporting.

Change-Id: I17668b5db333c4c9b7280ac0de5dc8d9ba1aab59
rc/main/java/dalvik/system/CloseGuard.java
ee6ee465591be420db0094627deb5079bc978926 05-Nov-2010 Carl Shapiro <cshapiro@google.com> Merge "Export the assignable instance counting." into dalvik-dev
9e2e604ebd336307ab708544c8f7589bb4ae9fe7 04-Nov-2010 Carl Shapiro <cshapiro@google.com> Export the assignable instance counting.

Change-Id: I4358afbf79ac8c33448b48f4b5e1d365371bca1b
rc/main/java/dalvik/system/VMDebug.java
b3f32d4d15177a0d2c064a8116d5cf5d07a217a9 04-Nov-2010 Brian Carlstrom <bdc@google.com> Adding CloseGuard.setEnabled for StrictMode integration

Bug: 3041575
Change-Id: Ifa8f548c217210014c2aaff044fb4871629f47a7
rc/main/java/dalvik/system/CloseGuard.java
f9dc3450e8f23cab91efc9df99bb860221ac3d6c 02-Nov-2010 Jesse Wilson <jessewilson@google.com> Skip empty samples in the sampling profiler.

Without this writeHprofData crashes when trying to read the first
element from that array.

Change-Id: I6ab25a9776bbe99be2923835883fb51d4ac7ed4a
rc/main/java/dalvik/system/SamplingProfiler.java
fb3c3d6ed54b13c7dabd907b89472ddca547414b 01-Nov-2010 Brian Carlstrom <bdc@google.com> am 2e37069e: Change SamplingProfiler to use a sampling interval instead of Hz

* commit '2e37069eaff2f16a539e739ca02c770aa889ed7b':
Change SamplingProfiler to use a sampling interval instead of Hz
2e37069eaff2f16a539e739ca02c770aa889ed7b 01-Nov-2010 Brian Carlstrom <bdc@google.com> Change SamplingProfiler to use a sampling interval instead of Hz

Change-Id: Ia88ce2863dac277e071ea05d39e7b8af2568d3f4
rc/main/java/dalvik/system/SamplingProfiler.java
a75ae27f71c41509a8924493ce3b50d331d0d3cc 29-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> am 6cbbd111: Don\'t BlockGuard on INetworkSystem.isConnected w/ 0 timeout.

* commit '6cbbd111d6e7505fb0b4ad362aba0de371b893d3':
Don't BlockGuard on INetworkSystem.isConnected w/ 0 timeout.
6cbbd111d6e7505fb0b4ad362aba0de371b893d3 29-Oct-2010 Brad Fitzpatrick <bradfitz@android.com> Don't BlockGuard on INetworkSystem.isConnected w/ 0 timeout.

Change-Id: Ie75e292051f377c15f35d1823a33e4a693ebc071
rc/main/java/dalvik/system/BlockGuard.java
1209842febdde95c391548557e33c3ec8307d1fb 27-Oct-2010 Andy McFadden <fadden@android.com> am d1280478: am cb5204fe: am 09b06cc1: Set capabilities sooner.
d12804789722dc78f6833b712086d45c4af0d54d 27-Oct-2010 Andy McFadden <fadden@android.com> am cb5204fe: am 09b06cc1: Set capabilities sooner.
09b06cc1a333f64e9a508bfcc3f0bc6373f96d87 27-Oct-2010 Andy McFadden <fadden@android.com> Set capabilities sooner.

Bug 3135433.

Change-Id: Ief58bdfff2cb82d7824ef796c2c1031f525f6ee9
rc/main/java/dalvik/system/Zygote.java
2353846b64570fa5932028143a0af507d41a85c5 25-Oct-2010 Jesse Wilson <jessewilson@google.com> Close process-spawned streams when the process is destroyed.

This is consistent with the RI's behavior. I can't come up with
a reasonable approach to closing these streams if they are never
requested; that's presumably a finalizer problem anyway because
only the finalizer knows that the streams won't be needed.

This change also adds test infrastructure around CloseGuard.
My approach hooks into the logger rather than reflection because
I can't be sure where the CloseGuard instance would be in the
object hierarchy. This approach also degrades reasonably when
run on the reference implementation (where it passes).

Change-Id: I08e882494d69d4245e40fb1035edbc6d3df23fbc
http://b/3111120
rc/main/java/dalvik/system/CloseGuard.java
71c7a9d198d1c1e9d5201b503cada3c420cdabd3 22-Oct-2010 Brian Carlstrom <bdc@google.com> am 5f3c50f9: am 6a4f4c86: am 13727ea1: Fix SamplingProfiler for use in zygote

Merge commit '5f3c50f96e0ab4f84bef5e41a82471f781169daa' into dalvik-dev

* commit '5f3c50f96e0ab4f84bef5e41a82471f781169daa':
Fix SamplingProfiler for use in zygote
5f3c50f96e0ab4f84bef5e41a82471f781169daa 21-Oct-2010 Brian Carlstrom <bdc@google.com> am 6a4f4c86: am 13727ea1: Fix SamplingProfiler for use in zygote

Merge commit '6a4f4c869a9d24f104c11c49bbc3e5238975869b'

* commit '6a4f4c869a9d24f104c11c49bbc3e5238975869b':
Fix SamplingProfiler for use in zygote
13727ea1b665f82cb54f8178ea47b969edbab33b 21-Oct-2010 Brian Carlstrom <bdc@google.com> Fix SamplingProfiler for use in zygote

Two small fixes to fix SamplingProfilerIntegration:
- Fix name of Timer thread to match native code, allowing
"set prop persist.sampling_profiler 1"
to profile startup of apps.
- clone newThreads array since ThreadSet may reuse it internally
(which is the case in SamplingProfilerIntegration's use of
SamplingProfiler.newThreadGroupTheadSet)

Bug: 3117365
Change-Id: Ic8c2779b7961a39b87494253bb99c56e6e35ae15
rc/main/java/dalvik/system/SamplingProfiler.java
d46656cd3968fad7eb762187f14a6672cf88f712 19-Oct-2010 Dan Bornstein <danfuzz@android.com> am 490a5fc2: am c009f346: am b27ce0cf: Clean up the construction-time arrangements.

Merge commit '490a5fc23d6cec32b265b9782b1a73aa13779063' into dalvik-dev

* commit '490a5fc23d6cec32b265b9782b1a73aa13779063':
Clean up the construction-time arrangements.
490a5fc23d6cec32b265b9782b1a73aa13779063 19-Oct-2010 Dan Bornstein <danfuzz@android.com> am c009f346: am b27ce0cf: Clean up the construction-time arrangements.

Merge commit 'c009f346c827aad63df5d3ebec169443a0e9ebf2'

* commit 'c009f346c827aad63df5d3ebec169443a0e9ebf2':
Clean up the construction-time arrangements.
b27ce0cf1efee048fa6e4c20bc6b38e4ebad6930 16-Oct-2010 Dan Bornstein <danfuzz@android.com> Clean up the construction-time arrangements.

There was all sorts of code here that pointlessly pushed the bulk of
the constructor operation off to instance methods, which (a) could
cause confusion when there's bona fide trouble -- that is, it's better
to throw in the constructor -- and (b) didn't really help with
efficiency in any realistic scenario -- that is, while the original
code nominally avoided extra work until first use, in practice first
use occurs immediately after construction (and in the same thread,
even).

Now, all the one-time work happens in the constructor, and we get to
avoid asking "am I set up yet?" before doing anything substantive.

While I was in the territory, I also did a bit of more minor code
hygiene maintenance.

Change-Id: I41225d373e3ab481b6bc3da5b74bde89c4fd895e
rc/main/java/dalvik/system/DexClassLoader.java
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/TouchDexLoader.java
12f2d8e2760b78c673b7a187b9062b3938a03147 12-Oct-2010 Brian Carlstrom <bdc@google.com> Revised CloseGuard usage pattern

- CloseGuard.get() instants are now "unopened"
- In constructor cases, guard.open("...") is now at the end
- In metod cases, guard.open("...") is now after resource acquisition
- guard null pointer checks in finalizers in case constructor threw exception

Bug: 2645458
Change-Id: Ieb874a8c33b347768a9fa7437b3dd16f3d56d886
rc/main/java/dalvik/system/CloseGuard.java
rc/main/java/dalvik/system/DexFile.java
f7aab022dcbfcd8f27b409ab92b4bca4a84d0b8a 30-Sep-2010 Brian Carlstrom <bdc@google.com> CloseGuard: finalizers for closeable objects should log complaints

Introducing CloseGuard which warns when resources are implictly
cleaned up by finalizers when an explicit termination method, to use
the Effective Java "Issue 7: Avoid finalizers" terminology, should
have been used by the caller.

libcore classes that can use CloseGuard now do so.

Bug: 3041575
Change-Id: I4a4e3554addaf3075c823feb0a0ff0ad1c1f6196
rc/main/java/dalvik/system/CloseGuard.java
rc/main/java/dalvik/system/DexFile.java
63fcdd7e833df417cfbd60961a5167ce637f3071 29-Sep-2010 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of 53e83038 to master

Conflicts:
luni/src/main/java/java/io/FileInputStream.java
luni/src/main/java/java/io/FileOutputStream.java
luni/src/main/java/javax/crypto/ExemptionMechanism.java
luni/src/main/java/org/apache/harmony/luni/net/PlainDatagramSocketImpl.java
luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java

Change-Id: I0dd5da8e8cb1819cb90440c462ba307dffde8ed7
e2f58c9501eac730d048199906dc41fe8e4cd6e9 29-Sep-2010 Brian Carlstrom <bdc@google.com> Scrub missing calls to super.finalize()

Bug: 3024226
Change-Id: I6642cb9d4929ba72244529efe4ebdfa595ae4fa7
rc/main/java/dalvik/system/DexFile.java
bffb058e565a97f838247f1e092b0d17b26cb68e 21-Sep-2010 Elliott Hughes <enh@google.com> Stop doing unbuffered file I/O in ZoneInfoDB.

Use the new memory-mapped code for the index as well as for individual time
zones. This takes the (once-only, during boot) index-reading time down
from ~90ms to ~20ms. DataInputStream(BufferedInputStream(FileInputStream))
would have got us down to ~40ms.

Also remove duplication amongst code snippets that want to read a whole file
into a byte[].

Bug: 3014973
Change-Id: I9d8a326438663314b7f5ee0145cda32ea335f41d
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/TouchDexLoader.java
cae935ca4a6fc1454f3af9676c534d2dfbd94458 17-Sep-2010 Joe Onorato <joeo@google.com> am dbddf810: am 85805203: am 9fac1da4: Merge "In javadoc, it\'s @return, not @returns." into gingerbread

Merge commit 'dbddf810f56f34d645c500889477761ff860d3a9' into dalvik-dev

* commit 'dbddf810f56f34d645c500889477761ff860d3a9':
In javadoc, it's @return, not @returns.
5deb785a041ff89cffff2c91aeaa345762eff51e 16-Sep-2010 Joe Onorato <joeo@google.com> In javadoc, it's @return, not @returns.

Change-Id: I88a6207c93559c445d5498b41c6d345fe28e3473
rc/main/java/dalvik/system/BlockGuard.java
a53b5f7a5855e28b5e3f56f34552905732512d1f 07-Sep-2010 Elliott Hughes <enh@google.com> am 023d42f8: am 16ec93bf: am c390acc2: Don\'t throw when calling Socket.close on a closed socket.

Merge commit '023d42f83001be517b82dd91299dbab868869fda' into dalvik-dev

* commit '023d42f83001be517b82dd91299dbab868869fda':
Don't throw when calling Socket.close on a closed socket.
c390acc2461cce9edb3209caca28d95ed6aabd90 07-Sep-2010 Elliott Hughes <enh@google.com> Don't throw when calling Socket.close on a closed socket.

Bug: 2980559
Change-Id: I168573c16581a3a94b96f0ccdb458bfee76f11e0
rc/main/java/dalvik/system/BlockGuard.java
51ee38b9c39b0c36bce728a797b2c5e637be3d2c 24-Jul-2010 Brian Carlstrom <bdc@google.com> New Java-based SamplingProfiler

Summary:
- libcore: new Java based SamplingProfiler
- dalvik: remove old SamplingProfiler native bits
- frameworks/base: New placeholder SamplingProfilerIntegration
- vendor/google: remove old profiler snapshot parsing code

Details:

libcore

A new 100% Java SamplingProfiler. While it has more overhead that
the old native one, the new one can actually collect more than the
current PC and frame pointer, so you can get useful context of
where your app is spending time. It currently provides ASCII hprof
format output for use with tools like PerfAnal
dalvik/src/main/java/dalvik/system/SamplingProfiler.java

Unit test for the new SamplingProfiler
dalvik/src/test/java/dalvik/system/SamplingProfilerTest.java

Add core-tests-dalvik
JavaLibrary.mk

dalvik

Removing native code that supported the old SamplingProfiler
vm/Dvm.mk
vm/native/InternalNative.c
vm/native/dalvik_system_SamplingProfiler.c

frameworks/base

Placeholder SamplingProfilerIntegration. Later plans include
generating EventStackTrace protobufs.

New SamplingProfiler does not have a global instance, so
SamplingProfilerIntegration provides one in INSTANCE. Old binary
snapshot format is temporily replaced with ASCII hprof data.
core/java/com/android/internal/os/SamplingProfilerIntegration.java

Simplified interface for zygote profile snapshotting
core/java/com/android/internal/os/ZygoteInit.java

Current SamplingProfilerIntegration does not track event loop
explicitly, but hprof information does include thread information.
core/java/android/app/ActivityThread.java

vendor/google

Removing code for parsing old SamplingProfiler snapshot format
tools/samplingprofiler/Android.mk
tools/samplingprofiler/NOTICE
tools/samplingprofiler/profiler.iml
tools/samplingprofiler/profiler.ipr
tools/samplingprofiler/pull-snapshots.sh
tools/samplingprofiler/sorttable.js
tools/samplingprofiler/src/com/android/profiler/PrintHtml.java
rc/main/java/dalvik/system/SamplingProfiler.java
rc/test/java/dalvik/system/SamplingProfilerTest.java
bb22f75bd3380dc9ed8bd45b03ad5ddf818ad1e8 24-Jul-2010 Brian Carlstrom <bdc@google.com> New Java-based SamplingProfiler

Summary:
- libcore: new Java based SamplingProfiler
- dalvik: remove old SamplingProfiler native bits
- frameworks/base: New placeholder SamplingProfilerIntegration
- vendor/google: remove old profiler snapshot parsing code

Details:

libcore

A new 100% Java SamplingProfiler. While it has more overhead that
the old native one, the new one can actually collect more than the
current PC and frame pointer, so you can get useful context of
where your app is spending time. It currently provides ASCII hprof
format output for use with tools like PerfAnal
dalvik/src/main/java/dalvik/system/SamplingProfiler.java

Unit test for the new SamplingProfiler
dalvik/src/test/java/dalvik/system/SamplingProfilerTest.java

Add core-tests-dalvik
JavaLibrary.mk

dalvik

Removing native code that supported the old SamplingProfiler
vm/Dvm.mk
vm/native/InternalNative.c
vm/native/dalvik_system_SamplingProfiler.c

frameworks/base

Placeholder SamplingProfilerIntegration. Later plans include
generating EventStackTrace protobufs.

New SamplingProfiler does not have a global instance, so
SamplingProfilerIntegration provides one in INSTANCE. Old binary
snapshot format is temporily replaced with ASCII hprof data.
core/java/com/android/internal/os/SamplingProfilerIntegration.java

Simplified interface for zygote profile snapshotting
core/java/com/android/internal/os/ZygoteInit.java

Current SamplingProfilerIntegration does not track event loop
explicitly, but hprof information does include thread information.
core/java/android/app/ActivityThread.java

vendor/google

Removing code for parsing old SamplingProfiler snapshot format
tools/samplingprofiler/Android.mk
tools/samplingprofiler/NOTICE
tools/samplingprofiler/profiler.iml
tools/samplingprofiler/profiler.ipr
tools/samplingprofiler/pull-snapshots.sh
tools/samplingprofiler/sorttable.js
tools/samplingprofiler/src/com/android/profiler/PrintHtml.java

Change-Id: I4a7d7b86b45a806021249c83ab32e52d3d53f33c
rc/main/java/dalvik/system/SamplingProfiler.java
rc/test/java/dalvik/system/SamplingProfilerTest.java
9c1e9452456e1634744d79e61ebe265eb15c7262 28-Aug-2010 Elliott Hughes <enh@google.com> Merge "Remove the accessors hiding our IFileSystem and INetworkSystem." into dalvik-dev
3db0d1b07a79c3c871b0aa0929674adae3081b4f 28-Aug-2010 Elliott Hughes <enh@google.com> Remove the accessors hiding our IFileSystem and INetworkSystem.

These accessors aren't buying us anything, are costing us something, and have
encouraged caching of instances in fields all over the place. Lose all that
cruft.

I think we all agree that we want to merge IFileSystem and INetworkSystem at
some point, but I'll do that some other day.

Change-Id: I07696ec9650d0395ec31a71a74300e818a3fed91
rc/main/java/dalvik/system/BlockGuard.java
af7e77337d97ca5961159a7298e3f47a1c507db3 27-Aug-2010 Jesse Wilson <jessewilson@google.com> Search the application library path first.

In Froyo and earlier, we search the system library path first. This
makes it impossible for applications to provide newer versions of
native libraries when old versions are shipped on the device.

Change-Id: I0a154e32f62a28cf841b9e8d2dbd2d9cce6f3128
http://b/issue?id=2933456
rc/main/java/dalvik/system/PathClassLoader.java
2e386d4b586dba464ec59be93c0720b6b973ab96 17-Aug-2010 Carl Shapiro <cshapiro@google.com> Export the new countInstancesOfClass method.

Change-Id: I87b69b2c04cf14e0971c57633e229b02c3547375
rc/main/java/dalvik/system/VMDebug.java
24144d482dcd5deac58a5dca7042379c05b56b5e 13-Aug-2010 Elliott Hughes <enh@google.com> Clean up our final native code warnings, and turn on -Werror.

Change-Id: I54bb29e357812b089e83f3a2a831c80f5114a27a
rc/main/java/dalvik/system/BlockGuard.java
a92f883cda9e483c64f78dbba0031e6e43cd00ab 12-Aug-2010 Elliott Hughes <enh@google.com> Replace createDatagramSocket and createStreamSocket with one call.

(Continuing our policy of having native methods' names correspond to the
underlying syscall, this one sadly gets the ugly name of "socket".)

Change-Id: Icf08e4e0637ee3ae9eab673d350860181f547250
rc/main/java/dalvik/system/BlockGuard.java
7738141c52b931e103efe7ad62d32a12785bf6b1 12-Aug-2010 Elliott Hughes <enh@google.com> Remove createServerStreamSocket as a native special case.

We can do everything in Java.

Change-Id: I7451319335a647fc25bd2d2403fa98bfc6b5c038
rc/main/java/dalvik/system/BlockGuard.java
7365de1056414750d0a7d1fdd26025fd247f0d04 12-Aug-2010 Jesse Wilson <jessewilson@google.com> Sorting imports.

Change-Id: I8347bc625480a1c37a1ed9976193ddfedeb00bbc
rc/main/java/dalvik/annotation/AnnotationDefault.java
rc/main/java/dalvik/annotation/EnclosingClass.java
rc/main/java/dalvik/annotation/EnclosingMethod.java
rc/main/java/dalvik/annotation/InnerClass.java
rc/main/java/dalvik/annotation/MemberClasses.java
rc/main/java/dalvik/annotation/Signature.java
rc/main/java/dalvik/annotation/TestTargetClass.java
rc/main/java/dalvik/annotation/TestTargets.java
rc/main/java/dalvik/annotation/Throws.java
rc/main/java/dalvik/system/BlockGuard.java
rc/main/java/dalvik/system/DexClassLoader.java
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/SamplingProfiler.java
rc/main/java/dalvik/system/TouchDex.java
rc/main/java/dalvik/system/TouchDexLoader.java
036ffc75d2b7ece42bcd97f290c026e215868ba9 05-Aug-2010 Elliott Hughes <enh@google.com> Rationalize and simplify our "connect" implementations.

We don't need to copy a context structure back and forth between native code
and Java: it didn't contain anything but temporaries anyway. We don't need a
convenience method for a blocking connect with no timeout. We don't need a
separate codepath for datagram and stream sockets' connect calls.

There are further simplifications that could be made, I think. I think we
could implement "connect" in Java in terms of "connectNonBlocking" and
"isConnected" (since that's how our native implementation works anyway).
I also think we can fix the 100ms polling too, though I haven't investigated
and that may require that we fix the general "interrupt on close" problem.

Change-Id: Ib5989fa05f5dd7dd24b681fab70f856cd0bc5c56
rc/main/java/dalvik/system/BlockGuard.java
99a89dd6f0a0e1396aa9b3feebf15ea31f703d3a 04-Aug-2010 Elliott Hughes <enh@google.com> Rewrite the nio Pipe to use a Unix pipe behind the scenes.

We were using an AF_INET or AF_INET6 socket to implement the nio Pipe, which
was causing trouble for people on systems where IPv6 wasn't working yet.

This patch switches over to pipe(2). My first implementation used socketpair(2)
and retained the SocketChannelImpls, but it still seemed a bit off to be asking
for a full-duplex pipe to implement a unidirectional channel, and it required
hacks in the networking code to cope with the AF_LOCAL family, and in the
BlockGuard for the isLingeringSocket test.

This implementation uses pipe(2) and FileChannelImpl. It breaks a few tests, but
the tests are wrong, and it actually brings us closer to the RI's behavior of
throwing IOException "broken pipe" when writing to a broken pipe.

Rather than keep throwing junk into the FileSystem/NetworkSystem classes, and
resolving the question of which of those setNonBlocking belonged in (answer:
neither; this is a false Windows-style dichotomy that isn't helpful here), I've
added a new IoUtils with a few generally useful methods. The remainder of this
patch switches over existing code. We could probably make
FileDescriptor.descriptor private now I've exposed accessors, but this change
is large enough already...

Bug: 2735373
Bug: http://code.google.com/p/android/issues/detail?id=9431
Change-Id: I6b6d1e50bdddd435e71c31105a73c9d4fd135d7e
rc/main/java/dalvik/system/BlockGuard.java
4fe378672d700aaae3a50db956b693b3ed599c7d 31-Jul-2010 Elliott Hughes <enh@google.com> Remove "java.net.preferIPv4Stack" (which has been broken >= eclair).

Change-Id: I4733a0e266ff7c02c25033e79bcceff4d7357868
rc/main/java/dalvik/system/BlockGuard.java
ce48c6b9af439594bf680880e03506a0bf6445a9 31-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> am 2ceb1614: Merge commit \'1a529c16\' into manualmerge

Merge commit '2ceb16144eefd78537059f0b6ad97267e843ae57' into dalvik-dev

* commit '2ceb16144eefd78537059f0b6ad97267e843ae57':
BlockGuard: don't complain about non-linger network close()
2ceb16144eefd78537059f0b6ad97267e843ae57 31-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> Merge commit '1a529c16' into manualmerge

Conflicts:
dalvik/src/main/java/dalvik/system/BlockGuard.java

Change-Id: I13e177da1f307c0f784f783c934fa4a08f6407e0
20705dde359602364114b0cfb4135bc9fcf42038 31-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> BlockGuard: don't complain about non-linger network close()

Change-Id: I4a5d6383f821d0c161206684ed14d7fd4781938b
rc/main/java/dalvik/system/BlockGuard.java
2cd82d7111f68ff63145ef7c393bf1479ff06223 29-Jul-2010 Elliott Hughes <enh@google.com> Fix setTrafficClass.

Pass the traffic class setting down to the kernel, rather than trying to
fake it in Java and then not actually using it at all in the native code.

There are two ways to set traffic class (aka type of service, or TOS):
per-packet or per-socket. The Java API is for the per-socket style, but
the old implementation had each SocketImpl intercept calls to
SocketOptions.setOption for SocketOptions.IP_TOS, stash the traffic class
in one of the SocketImpl's private fields, skip calling native code, and
then pass the traffic class to each native method that would need it to
implement the per-packet style. Unfortunately, each of those methods was
just ignoring the traffic class.

I've removed all this interception, so we now pass the traffic class straight
to the kernel via setsockopt(2), and we don't need to pass anything to the
individual per-packet calls.

The motivation for going the per-packet route appears to have been to work
around a lack of support for the per-socket route in old versions of Linux
and other OSes. It all works now, though, so there's no point making our
lives harder (and doing more work at runtime) to work around bugs and
infelicities that no longer exist.

I tested the new code manually with tcpdump, for both IPv4 (radio) and
IPv6 (wifi), and in both cases it looks like it's doing the right thing now.
We also still pass all of our tests, though none of them are capable of
recognizing whether we're actually doing anything useful anyway...

Change-Id: Ice241e088d25037123c73733a3f2bfade976fb31
rc/main/java/dalvik/system/BlockGuard.java
4e4000ed98f9056639fba0713a3fd3caacf9746c 27-Jul-2010 Elliott Hughes <enh@google.com> Let the kernel handle network timeouts by setting SO_RCVTIMEO.

As far as I can tell, the reason other implementations use select(2)
instead of SO_RCVTIMEO is that traditionally the latter wasn't implemented.
Stevens is unusually unspecific about the portability of SO_RCVTIMEO, but
the web says that Linux didn't support it until 2.4, and Solaris was late
and buggy too. Modern versions of Linux, Mac OS, and Windows all support
SO_RCVTIMEO, though, so portability should not be a concern for us.

This patch causes a regression; several of the blocking network I/O methods
that used to be interruptible by virtue of their select(2)-based manual
implementation of timeouts are no longer interruptible. Making all network
I/O interruptible is work in progress, covered by http://b/2823977.

Bug: http://b/2512069
Change-Id: I0a2812ca1537bd171c4205343d6b3b526b72b2b2
rc/main/java/dalvik/system/BlockGuard.java
aaacdb095b10293286adbfd94af2fd83b8dae3a8 22-Jul-2010 Elliott Hughes <enh@google.com> Remove File's cached UTF-8 byte[].

This doesn't really improve File.getCanonicalPath and its helpers much, but it
improves everything else, and feels like a step in the right direction.

Benchmarking shows only a tiny difference in the uncommon case of a reused
File, and a significant increase in performance in the more likely case of
a single-use File.

Before:

benchmark us
Exists 26.14
ExistsReuse 5.08

After:

benchmark us
Exists 13.90
ExistsReuse 5.23

Bug: 2281992
Change-Id: Ibc6fd2581983ae8a57bf4b7f49196c76ad41169e
rc/main/java/dalvik/system/BlockGuard.java
93cd8207ec0f179dba60f7586ed4862301cd3670 16-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> am 21710cc5: am 42660dc4: am dcaba04c: Few tweaks to BlockGuard\'s BlockGuardPolicyException.

Merge commit '21710cc5a3a0c7e3bd40e3621c9c9f14e97bf809' into dalvik-dev

* commit '21710cc5a3a0c7e3bd40e3621c9c9f14e97bf809':
Few tweaks to BlockGuard's BlockGuardPolicyException.
21710cc5a3a0c7e3bd40e3621c9c9f14e97bf809 16-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> am 42660dc4: am dcaba04c: Few tweaks to BlockGuard\'s BlockGuardPolicyException.

Merge commit '42660dc4657a7b26014810843693e714324b4db5'

* commit '42660dc4657a7b26014810843693e714324b4db5':
Few tweaks to BlockGuard's BlockGuardPolicyException.
dcaba04c224cb5a5ed6af89251ac876ec2f48dfe 15-Jul-2010 Brad Fitzpatrick <bradfitz@android.com> Few tweaks to BlockGuard's BlockGuardPolicyException.

Needed for work on StrictMode across binder calls. Will likely be
cleaned up more in the future, removing the magical stringification.
But this is currently needed at this stage.

Change-Id: I4b2b3e6a242ac62fa9847fc969749b4f2467bc71
rc/main/java/dalvik/system/BlockGuard.java
221d0ccb4cc23ee0bf0646e9abe471fb48b3a1a8 15-Jul-2010 Elliott Hughes <enh@google.com> Simplify the network send(2) interfaces.

Similar to the change for the recv(2) code.

Unrelatedly, I've pulled out our exception-throwing helpers for reuse. This
was meant to be in a separate change, but I accidentally mixed it in.

Bug: 2823977
Change-Id: I314a4337189277b6eff65f7ccf9e897b5d0b73f2
rc/main/java/dalvik/system/BlockGuard.java
79ff4e73fd689dae6667a8137ee57137962ff13a 14-Jul-2010 Elliott Hughes <enh@google.com> Make it possible to interrupt network reads.

This patch simplifies the network I/O interface, in particular for read/recv.

The bounds checking from OSNetworkSystem.read goes, since the caller already
checks. (If we want that checking in native code, we should add it uniformly.)

We also remove supportsUrgentData (which was always returning true), and remove
the sole caller, so we just try the operation and report failures if they happen
rather than trying to predict the failure (as the original code seemed to want
to do, and which is never a good idea).

The native code gains logic to recognize when the FileDescriptor has been
closed from another thread, though this logic remains largely unused at this
point. (There's comment-out code in "close" that does a shutdown(2) to wake
us up so we can recognize this situation.) I've switched code over to using
the new NetFd class, but haven't ensured that we handle the wakeups correctly.
(The "read" implementation being the notable exception.) For now, with the
shutdown(2) commented out, this shouldn't have any visible behavioral changes.
(And our tests don't spot any.)

Code that was using malloc(3)/free(3) to allocate temporary buffers, and copying
to and from those buffers has been rewritten to use JNI-provided pointers onto
the heap, as part of the general "don't lie to the garbage collector" push.

The implementations for the various old forms of recv have been collapsed into
one.

Bug: 2823977
Change-Id: I05cf742c44827a24df3c1ff59727013ee4636233
rc/main/java/dalvik/system/BlockGuard.java
2e9ab84bafc103eb8ef467a2abde670b72b80ecb 13-Jul-2010 Andy McFadden <fadden@android.com> am 478f5f95: Allow heap dump requests with a FileDescriptor arg.

Merge commit '478f5f9576c399c30288cf79d6bbf65ca5feedfd' into dalvik-dev

* commit '478f5f9576c399c30288cf79d6bbf65ca5feedfd':
Allow heap dump requests with a FileDescriptor arg.
478f5f9576c399c30288cf79d6bbf65ca5feedfd 10-Jul-2010 Andy McFadden <fadden@android.com> Allow heap dump requests with a FileDescriptor arg.

Part of a larger change to allow "am" to initiate hprof heap dumps.

Bug 2759474.

Change-Id: I33c41e6f2ce37d2c0348ea783ecaadc0eae33d36
rc/main/java/dalvik/system/VMDebug.java
0120b34f823a06763ef7b708249abf3c4bef40ed 08-Jul-2010 Elliott Hughes <enh@google.com> Remove dead code/unused variables from OSNetworkSystem.

This has never done anything, and we've no idea what -- if anything -- it was
meant to do, and it doesn't do anything upstream either, so out it goes...

Change-Id: I33a738700fd4811fe47089f0d0373ce9f0d525de
rc/main/java/dalvik/system/BlockGuard.java
a34eaa0bf798bd8816c4a4d946e4e4878cc46abd 15-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Fix merge from Gingerbread which broke the build.

The INetworkSystem interface has changed in master.

Change-Id: I7ab850821ba5c9e98124216dd66265570afa5196
rc/main/java/dalvik/system/BlockGuard.java
d3ff6bb57d2e86bfac9bb3c958d98bb0d371714c 15-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> am 2eed1da5: am b5e5b53f: Merge "Add WrappedNetworkSystem to Blockguard for StrictMode work." into gingerbread

Merge commit '2eed1da5004c1f014c39f191a863c638a931cb66'

* commit '2eed1da5004c1f014c39f191a863c638a931cb66':
Add WrappedNetworkSystem to Blockguard for StrictMode work.
8bc336a6f9c9f17246041ed337331596dbc974ae 15-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Add WrappedNetworkSystem to Blockguard for StrictMode work.

Change-Id: Idde4b6f878fad5e8bd90fa929cb434c9a130fbcb
rc/main/java/dalvik/system/BlockGuard.java
590b99434696edf3f14843c85406eaf197dbc044 10-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> am 22437bcb: am 9aa3d668: Add BlockGuard PolicyViolation accessors.
9aa3d668f147214dafd78e37b328e19ad11c0881 10-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Add BlockGuard PolicyViolation accessors.

Change-Id: Ifc313c130024a5dac4498b0a4c92a5a16fb75b7f
rc/main/java/dalvik/system/BlockGuard.java
08b0218345e35e979cc6dd27e6862a3f7c5f035e 08-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> am 1173ba30: am 025fc4d9: BlockGuard Exception class should have been static.
025fc4d99cddafcd967fc8168224f6fb1da4ef0f 08-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> BlockGuard Exception class should have been static.

Change-Id: Ib8e3fee69684d4418f551d0a0f68916dcf2d949b
rc/main/java/dalvik/system/BlockGuard.java
9a0a73e14110bd84d0933c260c4ce1d773b83787 03-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of e916ffd2 from kraken to master

Change-Id: Ie072d918eb0607d8d713ea885cbf0d353f809332
8396b3fb62f50089cbd727250c40d3eecfcbdd71 02-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Introducing the beginning of "BlockGuard".

From the JavaDoc (even though this is a @hide class):

Mechanism to let threads set restrictions on what code is allowed
to do in their thread.

This is meant for applications to prevent certain blocking
operations from running on their main event loop (or "UI")
threads.

Note that this is all best-effort to catch most accidental
mistakes and isn't intended to be a perfect mechanism, nor provide
any sort of security.

This is just the start. Future CLs will wire this up in the framework
(giving developers some way to enable it, either via a tiny framework
API, or via their AndroidManifest.xml), add network and Binder
support, etc.

Change-Id: I212e1c8b9fa2bb9e495103e0c2fe6a998dc1f8d0
rc/main/java/dalvik/system/BlockGuard.java
bf87c56b39383f6b11c36c3cdc93df4b03fed914 28-May-2010 Brian Carlstrom <bdc@google.com> Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-master

Conflicts:
JavaLibrary.mk
luni/src/main/java/java/lang/System.java
luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/http/HttpURLConnectionImpl.java
luni/src/main/java/org/apache/harmony/xnet/provider/jsse/OpenSSLSocketImpl.java
luni/src/test/java/java/net/URLConnectionTest.java
support/src/test/java/tests/TestSuiteFactory.java
x-net/src/main/native/org_apache_harmony_xnet_provider_jsse_NativeCrypto.cpp

Change-Id: I1038f749c8c9bd640aae7ca96627810936454883
80a7fbab52b96c9fd47c72f8987d1babe2cd001d 22-May-2010 Elliott Hughes <enh@google.com> Remove more localized exception messages.

I also accidentally mixed two unrelated changes in here: replacing "".equals
and equals("") with String.isEmpty, and removing some dead code in
org.apache.harmony.luni.util.Util.

Change-Id: I0aaad43290b083085b3095b624caf096de487223
rc/main/java/dalvik/system/DexClassLoader.java
rc/main/java/dalvik/system/PathClassLoader.java
f33eae7e84eb6d3b0f4e86b59605bb3de73009f3 13-May-2010 Elliott Hughes <enh@google.com> Remove all trailing whitespace from the dalvik team-maintained parts of libcore.

Gentlemen, you may now set your editors to "strip trailing whitespace"...

Change-Id: I85b2f6c80e5fbef1af6cab11789790b078c11b1b
rc/main/java/dalvik/annotation/AndroidOnly.java
rc/main/java/dalvik/annotation/BrokenTest.java
rc/main/java/dalvik/annotation/HostController.java
rc/main/java/dalvik/annotation/KnownFailure.java
rc/main/java/dalvik/annotation/SideEffect.java
rc/main/java/dalvik/annotation/TestInfo.java
rc/main/java/dalvik/annotation/TestLevel.java
rc/main/java/dalvik/annotation/TestStatus.java
rc/main/java/dalvik/annotation/TestTarget.java
rc/main/java/dalvik/annotation/TestTargetClass.java
rc/main/java/dalvik/annotation/TestTargetNew.java
rc/main/java/dalvik/annotation/TestTargets.java
rc/main/java/dalvik/annotation/Timeout.java
rc/main/java/dalvik/annotation/VirtualTestTarget.java
rc/main/java/dalvik/bytecode/Opcodes.java
rc/main/java/dalvik/system/AllocationLimitError.java
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/PotentialDeadlockError.java
rc/main/java/dalvik/system/StaleDexCacheError.java
rc/main/java/dalvik/system/TemporaryDirectory.java
rc/main/java/dalvik/system/TouchDex.java
rc/main/java/dalvik/system/TouchDexLoader.java
rc/main/java/dalvik/system/VMDebug.java
rc/main/java/dalvik/system/VMStack.java
rc/main/java/dalvik/system/Zygote.java
rc/main/java/org/apache/harmony/dalvik/ddmc/ChunkHandler.java
ec2f5930802944b7e418bb97849071f538b2523c 08-May-2010 Brian Carlstrom <bdc@google.com> Moving most libcore .c files to .cpp

This change moves most of the libcore .c files to .cpp enough for them
to compile. This was largely motivated by the desire to avoid using
things like __attribute__ ((unused)) in .c files to supress warnings
in a recent change.

Change-Id: Ib967d9e16764ff805764e81362f945332080a06c
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.c
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
rc/main/native/sub.mk
44e0e560c92338110953ce806df475fedcdf926e 07-May-2010 Brian Carlstrom <bdc@google.com> Enable -Wall -Wextra for libcore and cleanup all but one warning

Change-Id: Ied76662c470ba878cec61189acf29f5cbbd4ccd4
rc/main/native/dalvik_system_TouchDex.cpp
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.c
873ccdf856836603f62f5e89c9dc65cba21fd8fc 05-May-2010 Dianne Hackborn <hackbod@google.com> Make API to look up library by path public.

Change-Id: Iebe6cb5e9b464330a240d77f5162479513ebadb0
rc/main/java/dalvik/system/PathClassLoader.java
c08f9fb2a3be82bb1a3f477ca1524ddcf7a1d4b8 17-Apr-2010 Elliott Hughes <enh@google.com> Move the libcore registration out of libnativehelpers and into libcore.

Bug: 754114
Change-Id: Iaa03def509c10cbaa12fd2128584b93d4be4a6b7
rc/main/native/dalvik_system_TouchDex.cpp
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.c
8f273343b7758c09822c74b4f8a0dcf7df3a78b5 02-Apr-2010 Jesse Wilson <jessewilson@google.com> Removing APIs from dalvik.system that shouldn't have been published.

These APIs were deprecated in Eclair and should disappear in Gingerbread.
See bug 2553600.
rc/main/java/dalvik/system/AllocationLimitError.java
rc/main/java/dalvik/system/PotentialDeadlockError.java
rc/main/java/dalvik/system/StaleDexCacheError.java
rc/main/java/dalvik/system/TemporaryDirectory.java
rc/main/java/dalvik/system/TouchDex.java
rc/main/java/dalvik/system/VMDebug.java
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/VMStack.java
rc/main/java/dalvik/system/Zygote.java
cd2564367d7b09f5d56542e428b192f1f81b1d36 01-Apr-2010 Andy McFadden <fadden@android.com> Mark external alloc functions as deprecated.

First step toward disabling them.

Bug 2537379.

Change-Id: I8664a5f1d7dcff11ddeb97b5e700dad76bffc723
rc/main/java/dalvik/system/VMRuntime.java
d1c610c2a641157df80aa8aefefc49393074f507 22-Mar-2010 Elliott Hughes <enh@google.com> Remove all remaining "@since Android" tags.

I've fixed a few typos, and removed a few of the more egregiously nonsensical
or incorrect comments that were nearby.

Change-Id: I35851baebd532f949cc269f4738a26eeb9b6e697
rc/main/java/dalvik/annotation/HostController.java
rc/main/java/dalvik/annotation/TestLevel.java
rc/main/java/dalvik/annotation/TestTarget.java
rc/main/java/dalvik/annotation/TestTargetClass.java
rc/main/java/dalvik/annotation/TestTargetNew.java
rc/main/java/dalvik/annotation/TestTargets.java
rc/main/java/dalvik/annotation/ToBeFixed.java
rc/main/java/dalvik/annotation/VirtualTestTarget.java
rc/main/java/dalvik/annotation/package.html
rc/main/java/dalvik/bytecode/package.html
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/package.html
28a1a648d4d092f70cad727ff7d6121c1944a484 19-Mar-2010 Dan Bornstein <danfuzz@android.com> Remove a superfluous declaration (left over from when DexClassLoader was
duplicated from PathClassLoader).

Change-Id: Iaf3e8a5b23df1a8bbf670bf6d6045fffef6c8fcb
rc/main/java/dalvik/system/DexClassLoader.java
93a06aad74de895285f006544349311f3cd3b1a1 14-Mar-2010 Ben Cheng <bccheng@android.com> am 3ed90a94: Merge "Add a native method dalvik.system.VMDebug.infopoint(int id)."

Merge commit '3ed90a94fa2eea45a423471405df5df62b187b83' into dalvik-dev

* commit '3ed90a94fa2eea45a423471405df5df62b187b83':
Add a native method dalvik.system.VMDebug.infopoint(int id).
dd60d48f45cc3c3eaf80a08e2af47b1bbebe7372 13-Mar-2010 Ben Cheng <bccheng@android.com> Add a native method dalvik.system.VMDebug.infopoint(int id).

With gdb, the JIT can use it to inspect the VM state when an instrumented line
is reached.

Change-Id: Id39ac4cd564bc1a61208cb7527c30f62b5de3e4e
rc/main/java/dalvik/system/VMDebug.java
dd9cd4097f63f1b233280fb539ff1bf2896f6f6b 11-Mar-2010 Xavier Ducrohet <xav@android.com> am f854a794: Merge "remove System.*.println when ddm dispatch fails."

Merge commit 'f854a79457ca12a18acb76070c98e622e6c660c5' into dalvik-dev

* commit 'f854a79457ca12a18acb76070c98e622e6c660c5':
remove System.*.println when ddm dispatch fails.
2a486dd9295036a65e837ce0faa35bf1946de538 10-Mar-2010 Xavier Ducrohet <xav@android.com> remove System.*.println when ddm dispatch fails.

Those messages are sometimes displayed to the user executing
the am command and can be really confusing (they are totally
benign)

Change-Id: I09c194a02ddc956ec52f19faa03ca9aa1eba604b
rc/main/java/org/apache/harmony/dalvik/ddmc/DdmServer.java
a39712548bc2b07b1c55de0d9e5345b93f7018fb 05-Mar-2010 Andy McFadden <fadden@android.com> Add instructions for volatile wide fields.

This adds four new instructions for accessing volatile wide fields (long
and double). The JLS requires that such accesses are atomic, but the
VM doesn't otherwise make guarantees about the atomicity of reads and
writes on 64-bit fields.

There are no behavioral changes. This just adds definitions for the new
instructions and a couple of tests. The current implementation is just
the non-volatile form of the instructions or a C stub, but since we're
not generating them it doesn't really matter yet.

Also:
- bumped Dalvik version to 1.3.0
- added a note to the x86-atom TODO list

For bug 1633591.
rc/main/java/dalvik/bytecode/Opcodes.java
982744ab59754d815f0a9d82ab91eb0fa6f2bf4b 23-Feb-2010 Andy McFadden <fadden@android.com> Add class init stats to alloc counters (API change).

Add calls to retrieve class initialization stats via the allocation
count mechanism.

Also: deprecate a method that is never used, and a redundantly declared
default filename that begins with "/sdcard".

For bug 2461549.
rc/main/java/dalvik/system/VMDebug.java
0022418ba0eedf71aeb9de10fd2c79923d0cab65 15-Feb-2010 Ben Cheng <bccheng@android.com> Detect system-wide safe mode and configure the VM accordingly.

Use pthread_cond_wait instead of timed wait for the system_server process to
wait on the go-ahead JIT signal. If the phone is booted under system-wide safe
mode, such signal will never come so all VM instances (including the system
server) will run in the interpreter-only mode.

Bug: 2267590
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/Zygote.java
c6e1f396d2f5f306121cbaebd02208d1f405e057 10-Feb-2010 Ben Cheng <bccheng@android.com> Merge "Support per-application switch to execute the VM in safe mode."
f399e2dbfe2814c57c2b27384c6968128da6b08b 09-Feb-2010 Ben Cheng <bccheng@android.com> Support per-application switch to execute the VM in safe mode.

This is the implementation on the VM side to consume the android:safeMode=true
attribute and force the application to run in interpreter-only mode (the
current safe mode).

Bug: 2267583
rc/main/java/dalvik/system/Zygote.java
a1df197865bf7c86448ad5434ac56e6a9020e2d1 05-Feb-2010 Brian Carlstrom <bdc@google.com> DalvikRunner can run a test as an android.app.Activity & PathClassLoader.toString change

SUMMARY:
- PathClassLoader.toString prints path
- DalvikRunner --mode activity now working
- new DalvikRunner --no-clean vs --no-clean-after behavior

DETAILS

Dalvik runtime change
Changed PathClassLoader.toString to print the class loaders path
Also fixed variable name in commented out debug code
libcore/dalvik/src/main/java/dalvik/system/PathClassLoader.java

Dalvik Runner changes

Mode is the new abstract superclass of the existing Vm
class. ActivityMode is for the new Mode of running as a Activity
on the device. Vm is now a subclass of Mode and its JavaVm and
DeviceDalvikVm still exist although some code has been refactored
into the new Environment clases (see below)

libcore/tools/runner/java/dalvik/runner/Mode.java
libcore/tools/runner/java/dalvik/runner/ActivityMode.java
libcore/tools/runner/java/dalvik/runner/DeviceDalvikVm.java
libcore/tools/runner/java/dalvik/runner/JavaVm.java
libcore/tools/runner/java/dalvik/runner/Vm.java

Environment and its subclasses EnvironmentHost and
EnvironmentDevice allow us to reuse some common code between the
two different device modes (ActivityMode and
DeviceDalvikVm). Basically code that was more about where and how
to do things based on where the code was running as opposed to how
the code was running moved to the Environment classes. For
example, prepare() logic for /sdcard/ and ADB code in general.

libcore/tools/runner/java/dalvik/runner/DeviceDalvikVm.java
libcore/tools/runner/java/dalvik/runner/Environment.java
libcore/tools/runner/java/dalvik/runner/EnvironmentDevice.java
libcore/tools/runner/java/dalvik/runner/EnvironmentHost.java
libcore/tools/runner/java/dalvik/runner/JavaVm.java
libcore/tools/runner/java/dalvik/runner/Vm.java

Adding new files
libcore/tools/runner/Android.mk

Aapt is a wrapper for "aapt" similar to Adb and Dx
libcore/tools/runner/java/dalvik/runner/Aapt.java

Added Adb.install and Adb.uninstall methods
Changed from using File.toString to File.getPath for clarity
libcore/tools/runner/java/dalvik/runner/Adb.java

CodeFinder has been extended so that Driver can ask finders what
they need to build and run, specifically through the new
getRunnerJava and getRunnerClasspath. (As part of this
NamingPatternCodeFinder's runnerClass was changed to
getRunnerClass for consistency with the superclass.) This was
important for running as an Activity because we want to minimize
what we pack into the APK file because of the "dx --dex" runtime
and not just pull in all possible runners and supporting
libraries. TestRun objects also hold onto this information from
their finders.

libcore/tools/runner/java/dalvik/runner/Driver.java
libcore/tools/runner/java/dalvik/runner/CodeFinder.java
libcore/tools/runner/java/dalvik/runner/CaliperFinder.java
libcore/tools/runner/java/dalvik/runner/JUnitFinder.java
libcore/tools/runner/java/dalvik/runner/JtregFinder.java
libcore/tools/runner/java/dalvik/runner/MainFinder.java
libcore/tools/runner/java/dalvik/runner/NamingPatternCodeFinder.java
libcore/tools/runner/java/dalvik/runner/TestRun.java

TestRunner TestRunner's className is now testClass to clarifiy it
from the runnerClass.

libcore/tools/runner/java/dalvik/runner/TestRunner.java
libcore/tools/runner/java/dalvik/runner/CaliperRunner.java
libcore/tools/runner/java/dalvik/runner/JUnitRunner.java
libcore/tools/runner/java/dalvik/runner/JtregRunner.java
libcore/tools/runner/java/dalvik/runner/MainRunner.java

Classpath now has a Collection.of and Collection.addAll that take
a Collection<File> instead if just a File...

libcore/tools/runner/java/dalvik/runner/Classpath.java

Added Command.args(File arg) to avoid a lot of
args(file.getPath())

libcore/tools/runner/java/dalvik/runner/Command.java

Option --clean has expanded to --clean-before, --clean-after, and
--clean. Now --no-clean will remove nothing as Elliot
requested. --no-clean-after is now what is useful for
DalvikRunner debuggin. Default is still to clean before and
after.

libcore/tools/runner/java/dalvik/runner/DalvikRunner.java

Moved Vm.DALVIK_RUNNER_HOME to DalvikRunner.HOME.
/tmp/<UUID> paths are now /tmp/dalvikrunner/<UUID> paths are easier cleanup.

libcore/tools/runner/java/dalvik/runner/DalvikRunner.java

Driver was changed to use a ExecutorCompletionService around the
ExecutorService so that exceptions from the execute threads could
be reported on the main thread.

libcore/tools/runner/java/dalvik/runner/Driver.java

We now build the testrunner before the test so that its classes
will be around to be packed into APK files.

libcore/tools/runner/java/dalvik/runner/Driver.java

Dx.dex now takes File arguments instread of Strings. Dx.dex also
needs to pass additional memory arguments to not run out of memory
building the big dex for the APK. The values I used where from the
build/core/definitions.mk

libcore/tools/runner/java/dalvik/runner/Dx.java

postCompile was split into postCompileTestRunner and
postCompileTest because the packaging requires are very different
in each case for ActivityMode. Specifically, the test runner is
not post-packaged seperately, but packaged in the APK with each
test.

libcore/tools/runner/java/dalvik/runner/ActivityMode.java
libcore/tools/runner/java/dalvik/runner/DeviceDalvikVm.java
libcore/tools/runner/java/dalvik/runner/JavaVm.java
libcore/tools/runner/java/dalvik/runner/Vm.java

Changed testClass to test to avoid collision with new superclass field

libcore/tools/runner/java/dalvik/runner/JtregRunner.java
libcore/tools/runner/java/dalvik/runner/MainRunner.java

Added @SuppressWarnings("unchecked")

libcore/tools/runner/java/dalvik/runner/OptionParser.java

New android.app.Activity based on Elliot's TestAPK. It encapsulates an
ActivityRunner that invokes the appropriate TestRunner based on test.properties.

libcore/tools/runner/java/dalvik/runner/TestActivity.java

New class that shared contains (old and some new) between the
DalvikRunner and the TestRunner.

libcore/tools/runner/java/dalvik/runner/TestProperties.java

Regression test script for debugging the matrix of various
DalvikRunner modes and test types:

libcore/tools/runner/test-dalvik-runner.sh
rc/main/java/dalvik/system/PathClassLoader.java
21fc59c88df7a8d28ac776cd3434e8341cabec16 29-Jan-2010 Andy McFadden <fadden@android.com> Add support for streaming hprof dumps.

This adds the dumpHprofDataDdms method, which generates the hprof dump
in RAM and then spits the whole thing at DDMS. The idea is to avoid
touching /sdcard, since not all apps have permission to do that.

This rearranges hprofShutdown() a fair bit. It used to re-use a context
struct, saving interesting bits to local variables before zapping it;
now we just create a second context struct and free both at the end.

For bug 2092855.
rc/main/java/dalvik/system/VMDebug.java
5a7d0bcbb537d6ef735c52579e7ba1fd2aec9201 29-Jan-2010 Ben Cheng <bccheng@google.com> Follow the coding style to rename startJITCompilation to startJitCompilation.
rc/main/java/dalvik/system/VMRuntime.java
4326376bd7d36db25c81d1f7a5a54c331a4be6c7 28-Jan-2010 Ben Cheng <bccheng@google.com> Add a callback for the framework to explicitly enable the JIT compiler.

Dalvik_dalvik_system_VMRuntime_startJITCompilation ()V it is.
rc/main/java/dalvik/system/VMRuntime.java
93714a1dfb4ba2ca5087448c6b5ca39dafaa6ace 23-Jan-2010 Andy McFadden <fadden@android.com> Add streaming method profiling support.

The goal is to allow DDMS to start/stop method profiling in apps that
don't have permission to write to /sdcard. Instead of writing the
profiling data to disk and then pulling it off, we just blast the whole
thing straight from memory.

This includes:

- New method tracing start call (startMethodTracingDdms).
- Rearrangement of existing VMDebug method tracing calls for sanity.
- Addition of "vector" chunk send function, with corresponding
update to the JDWP transport function.
- Reshuffled the method trace start interlock, which seemed racy.
- Post new method-trace-profiling-streaming feature to DDMS.

Also:

- Added an internal exception-throw function that allows a printf
format string, so we can put useful detail into exception messages.

For bug 2160407.
rc/main/java/dalvik/system/VMDebug.java
d3c419d0fa3183cf3297292803dc7c1fe28f9310 22-Jan-2010 Andy McFadden <fadden@android.com> Move VM feature strings (used by DDMS) into VM.

Until now, we used a place-holder in frameworks/base.

Removed cruft.
rc/main/java/dalvik/system/VMDebug.java
ea78506215fa3563afd350d29a1903e05d0a80c9 04-Dec-2009 Andy McFadden <fadden@android.com> Add new(-ish) Dalvik opcodes to Opcodes.java.

This is a public API change.
rc/main/java/dalvik/bytecode/Opcodes.java
8ffa2a36b775503d05bf41eaa245414ddb1b41bf 04-Dec-2009 Andy McFadden <fadden@android.com> am ca77c603: am a7745f97: Remove "unused" opcodes from API.

Merge commit 'ca77c6035fcce6ed9653ee1bed1753bff99e3d89'

* commit 'ca77c6035fcce6ed9653ee1bed1753bff99e3d89':
Remove "unused" opcodes from API.
b126c182b648bccfb9324022d19ddcb25cf22643 04-Dec-2009 Andy McFadden <fadden@android.com> Remove "unused" opcodes from API.

There's no need to have constants like OP_UNUSED_FF in the API. They
serve no purpose, and it makes life confusing when an opcode is defined
(does the "unused" one go away, breaking the API? do we have the real
definition and the "unused" definition simultaneously?).

Discussed / approved by API council.
rc/main/java/dalvik/bytecode/Opcodes.java
4453050e1be622cb1b5abcd00356f7a7fe40916b 24-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I410514c5

* changes:
Expose hooks for more efficient log handling in Android apps.
c99250a4d619670f2a9410df121eff04fdc9e87c 22-Oct-2009 Jesse Wilson <jessewilson@google.com> Expose hooks for more efficient log handling in Android apps.

This change introduces a new interface, DalvikLogHandler. Log
handlers that implement it opt-in to more efficient log handling
for common-case log messages. The API requires far fewer objects
to be allocated to log a message.

A related change in frameworks/base adopts this optimization
in the built-in AndroidHandler.

This optimization resulted in a 2.75x improvement on my device:
from 154ns to 56ns per message.
rc/main/java/dalvik/system/DalvikLogHandler.java
rc/main/java/dalvik/system/DalvikLogging.java
bb4b5ab9fb3bdd0be99ebc9a6e5c973c4106c84c 23-Oct-2009 Andy McFadden <fadden@android.com> Add a reference table dump call.

This adds a hidden method to android.os.Debug that causes the contents
of various reference tables to be dumped. Currently it's the local,
global, and pinned array tables from JNI.

Bug 2075355
rc/main/java/dalvik/system/VMDebug.java
39e4925eefd86d5ee6f32f9584d9467f2a7f01e5 28-Sep-2009 Jesse Wilson <jessewilson@google.com> am 2ff7a674: am 979baaea: Deprecate many of the accidentally-published APIs in dalvik.system.

Merge commit '2ff7a6741726c7f43a3cea6d30bf7c387f913e78'

* commit '2ff7a6741726c7f43a3cea6d30bf7c387f913e78':
Deprecate many of the accidentally-published APIs in dalvik.system.
04aaaf18dac85eee31b3451226daf586a455feb7 23-Sep-2009 Jesse Wilson <jessewilson@google.com> Deprecate many of the accidentally-published APIs in dalvik.system.

See bug 2021674 for discussion. I searched Google Code Search to
sample which of these APIs are being used. None of these APIs
were used by applications, so I'm quite confident that removing
them will not break applications or upset developers.

These APIs were neither formerly documented, nor intended for use
by application developers. I am deprecating them now to discourage
their use going forward. We should remove them in a future release.
rc/main/java/dalvik/system/AllocationLimitError.java
rc/main/java/dalvik/system/PotentialDeadlockError.java
rc/main/java/dalvik/system/StaleDexCacheError.java
rc/main/java/dalvik/system/TemporaryDirectory.java
rc/main/java/dalvik/system/TouchDex.java
rc/main/java/dalvik/system/VMDebug.java
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/VMStack.java
rc/main/java/dalvik/system/Zygote.java
a33a33f07cc59ed4fc7e447da395b3fc3d7b4727 16-Sep-2009 Bob Lee <crazybob@crazybob.org> resolved conflicts for merge of 3eae287e to master
bdcf27bb0da833544676b4b717be8a2521cab429 11-Sep-2009 Elliott Hughes <enh@google.com> Comment out debugging output.

The other two copies of this code have this line commented out, and I assume
it's only active here by accident.
rc/main/java/dalvik/system/DexClassLoader.java
7cc86fd0a1ef3a5d4395f6b03ffdf13555dc967b 10-Sep-2009 Bob Lee <crazybob@google.com> Addressed reviewer comments.
rc/main/java/dalvik/system/SamplingProfiler.java
6c24f973cb7b0de1069b20daf0371b6e73ca3fd1 05-Sep-2009 Bob Lee <crazybob@crazybob.org> Modified Thread.c to allow sampling profiler thread in zygote. Added a function that
queries the native thread status. Modified the profiler to sample every thread at
a fixed interval instead of adjusting the delay based on the number of threads. This
will make it easier to compare results across apps. Added ability to shut down
the profiler thread. Added code to track whether the method was a leaf or a
caller.
rc/main/java/dalvik/system/SamplingProfiler.java
80510cd99fa7335996669ff54ce5f0729f90ecf6 31-Jul-2009 Bob Lee <crazybob@google.com> A sampling profiler for Dalvik.
rc/main/java/dalvik/system/SamplingProfiler.java
cd9ef3b60c1d7500cb25dc811173f58a1607a052 31-Jul-2009 Andy McFadden <fadden@android.com> Added VMDebug.crash() (hidden).

This call prints the stack trace for the current thread, and then
crashes the VM so you can see the native stack trace too. Useful for
figuring out "how did I get here?" situations.
rc/main/java/dalvik/system/VMDebug.java
9ad964cce1c86e1493902340147fba223c52c2d7 29-Jul-2009 Jesse Wilson <jessewilson@google.com> Fixing Executors to use raw types, which is what RI v5 does.

Also fixing VMStack to hide the new API method.
rc/main/java/dalvik/system/VMStack.java
bba8d1acd6dfff06c94d761c67a30154ca5ca5df 29-Jul-2009 Jesse Wilson <jessewilson@google.com> Update concurrent module to Harmony r798021.

commit 56bcdc2a3b881883409267c3bd16294d80716859
Merge: 903691a f429dca
Author: Jesse Wilson <jessewilson@google.com>
Date: Mon Jul 27 17:33:19 2009 -0700

Merge branch 'concurrent_798021' into concurrent_dalvik

Conflicts:
libcore/concurrent/.classpath
libcore/concurrent/build.xml
libcore/concurrent/make/run-test.xml
libcore/concurrent/src/main/java/java/util/concurrent/ArrayBlockingQueue.java
libcore/concurrent/src/main/java/java/util/concurrent/BlockingQueue.java
libcore/concurrent/src/main/java/java/util/concurrent/ConcurrentHashMap.java
libcore/concurrent/src/main/java/java/util/concurrent/ConcurrentLinkedQueue.java
libcore/concurrent/src/main/java/java/util/concurrent/ConcurrentMap.java
libcore/concurrent/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java
libcore/concurrent/src/main/java/java/util/concurrent/CopyOnWriteArraySet.java
libcore/concurrent/src/main/java/java/util/concurrent/DelayQueue.java
libcore/concurrent/src/main/java/java/util/concurrent/LinkedBlockingQueue.java
libcore/concurrent/src/main/java/java/util/concurrent/PriorityBlockingQueue.java
libcore/concurrent/src/main/java/java/util/concurrent/ScheduledThreadPoolExecutor.java
libcore/concurrent/src/main/java/java/util/concurrent/Semaphore.java
libcore/concurrent/src/main/java/java/util/concurrent/SynchronousQueue.java
libcore/concurrent/src/main/java/java/util/concurrent/ThreadPoolExecutor.java
libcore/concurrent/src/main/java/java/util/concurrent/TimeUnit.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicBoolean.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicInteger.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicIntegerArray.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicLong.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicLongArray.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicLongFieldUpdater.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicReference.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicReferenceArray.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java
libcore/concurrent/src/main/java/java/util/concurrent/atomic/package.html
libcore/concurrent/src/main/java/java/util/concurrent/locks/AbstractQueuedSynchronizer.java
libcore/concurrent/src/main/java/java/util/concurrent/locks/LockSupport.java
libcore/concurrent/src/main/java/java/util/concurrent/locks/ReentrantReadWriteLock.java
libcore/concurrent/src/main/java/java/util/concurrent/locks/package.html
libcore/concurrent/src/main/java/java/util/concurrent/package.html
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/AtomicLongFieldUpdaterTest.java
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/AtomicReferenceFieldUpdaterTest.java
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/AtomicReferenceTest.java
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/ConcurrentHashMapTest.java
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/DelayQueueTest.java
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/ExecutorsTest.java
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/JSR166TestCase.java
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/LinkedBlockingQueueTest.java
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/LockSupportTest.java
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/ReentrantLockTest.java
libcore/concurrent/src/test/java/tests/api/java/util/concurrent/ReentrantReadWriteLockTest.java

commit 903691ae71cff640d5487a3d34a20e8767dbfb66
Author: Jesse Wilson <jessewilson@google.com>
Date: Mon Jul 27 16:09:58 2009 -0700

Dalvik Concurrent

commit f429dca21c408ee62e688f60d5e110718374e944
Author: Jesse Wilson <jessewilson@google.com>
Date: Mon Jul 27 16:08:25 2009 -0700

Concurrent 798021

commit b2c76fdd1056113000140bc4af57300c87469d2d
Author: Jesse Wilson <jessewilson@google.com>
Date: Mon Jul 27 16:03:45 2009 -0700

Concurrent 527399
rc/main/java/dalvik/system/VMStack.java
0fb831a410412728d6ee79ff98c465233b0803d0 11-Jul-2009 Andy McFadden <fadden@android.com> Minor class loading optimization.

In internal bug 1836311, the String.replace() in PathLoader.findClass
was identifed by traceview as 6.6% of startup time for an app. This
adds a (hidden) alternative that takes a "binary name" like the
functions in ClassLoader, and we do the slash-to-dot conversion inside
the VM as we convert it to a descriptor. (This is really how it should
have been done in the first place, but now it's part of the visible API
and engraved in stone.)

The original function now does a slash-to-dot conversion and calls the
new one.

(We may want to un-hide the method for the benefit of people writing
custom class loaders. If so, we can do that in a separate API-update
commit.)
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/PathClassLoader.java
88602190d0831dc3d857db5f753dc384b1e3e8ee 25-Jun-2009 Dianne Hackborn <hackbod@google.com> am 0f0ae023: Add FileDescriptor variation of startMethodTracing().

Merge commit '0f0ae023a3a53f7c9e254283b50a0099781acb79'

* commit '0f0ae023a3a53f7c9e254283b50a0099781acb79':
Add FileDescriptor variation of startMethodTracing().
8205fe4fab4a269a27414009b684595dcec31f4d 24-Jun-2009 Dianne Hackborn <hackbod@google.com> Add FileDescriptor variation of startMethodTracing().

This is for bug #1829561 ("am profile" with bad filename kills process), which
will allow the am command to take care of opening the file and handing the
resulting fd over to the process to be profiled.
rc/main/java/dalvik/system/VMDebug.java
0bc6f9d91c60da3377407b202124715f12444109 29-Apr-2009 Scott Main <> am 4e3cc66: am 4645b7c: AI 147732: fix broken links

Merge commit '4e3cc66298b8e6d97670d3ed0b4170fb161d36f3'

* commit '4e3cc66298b8e6d97670d3ed0b4170fb161d36f3':
AI 147732: fix broken links
e64a55a8b5c3840537fb5a94e89c43ec942458b0 29-Apr-2009 Jorg Pleumann <> am 28352aa: am 7cc0301: AI 147723: This should have been deleted a while

Merge commit '28352aafc2dba4e0f2c507649706389e1bea327e'

* commit '28352aafc2dba4e0f2c507649706389e1bea327e':
AI 147723: This should have been deleted a while ago, since
ff76528cdecbaef60cc6d7e4dc845b7146f23fe6 29-Apr-2009 Scott Main <> am 4645b7c: AI 147732: fix broken links

Merge commit '4645b7c3a461769281a0b2b846a26c79e806aaa0' into donut

* commit '4645b7c3a461769281a0b2b846a26c79e806aaa0':
AI 147732: fix broken links
c242b6cdb7fe3dac5fe54fcb88af61906de7e525 29-Apr-2009 Jorg Pleumann <> am 7cc0301: AI 147723: This should have been deleted a while ago, since

Merge commit '7cc03015bd1bcc14fcc5a0d4ad8b235b24992de2' into donut

* commit '7cc03015bd1bcc14fcc5a0d4ad8b235b24992de2':
AI 147723: This should have been deleted a while ago, since
016a87c7952b25eededfc222615e25a5a72bcdda 24-Apr-2009 Scott Main <> AI 147732: fix broken links
BUG=1810005

Automated import of CL 147732
rc/main/java/dalvik/system/VMDebug.java
04945ee39ccc25f56c96fd504d19155c47111543 24-Apr-2009 Jorg Pleumann <> AI 147723: This should have been deleted a while ago, since
it's a dupe class.
BUG=1285921

Automated import of CL 147723
rc/test/java/dalvik/annotation/BrokenTest.java
b24c3855b72e1e4e1c11629db3faf89b73be7dea 08-Apr-2009 Andy McFadden <> AI 144931: Added a (hidden) way to "pre-cache" register maps.
The 50 methods that appeared on the GC stacks of the most applications
require 13KB of native heap for their uncompressed register maps, and
the full set took 5ms to uncompress. Pre-computation doesn't represent
a significant improvement in space or time, at the cost of a big pile
of strings in ZygoteInit.
I'm leaving the method in ZygoteInit, but it's not called, and the
static final String[] of method descriptors is empty. We may want to
revisit this later.
BUG=1729570

Automated import of CL 144931
rc/main/java/dalvik/system/VMDebug.java
0d1eac37e79feebecb5523c04040e5117b71f62f 03-Apr-2009 Jorg Pleumann <> AI 144390: am: CL 144230 am: CL 144229 Modifying build of core-tests.jar version for
the RI so that the required test annotation
classes are copied over from core.jar. Means
we don't have to maintain duplicate versions
of these classes (and there will be less
verifier complaints), so these are going away
in the process.
Original author: jorgp
Merged from: //branches/cupcake/...
Original author: android-build

Automated import of CL 144390
rc/test/java/dalvik/annotation/AndroidOnly.java
rc/test/java/dalvik/annotation/KnownFailure.java
rc/test/java/dalvik/annotation/SideEffect.java
rc/test/java/dalvik/annotation/TestLevel.java
rc/test/java/dalvik/annotation/TestTargetClass.java
rc/test/java/dalvik/annotation/TestTargetNew.java
rc/test/java/dalvik/annotation/TestTargets.java
rc/test/java/dalvik/annotation/VirtualTestTarget.java
59ac99338810e4fbb3ae3749973dd3ebda2ba2af 02-Apr-2009 Jorg Pleumann <> AI 144230: am: CL 144229 Modifying build of core-tests.jar version for
the RI so that the required test annotation
classes are copied over from core.jar. Means
we don't have to maintain duplicate versions
of these classes (and there will be less
verifier complaints), so these are going away
in the process.
Original author: jorgp
Merged from: //branches/cupcake/...

Automated import of CL 144230
rc/test/java/dalvik/annotation/AndroidOnly.java
rc/test/java/dalvik/annotation/KnownFailure.java
rc/test/java/dalvik/annotation/SideEffect.java
rc/test/java/dalvik/annotation/TestLevel.java
rc/test/java/dalvik/annotation/TestTargetClass.java
rc/test/java/dalvik/annotation/TestTargetNew.java
rc/test/java/dalvik/annotation/TestTargets.java
rc/test/java/dalvik/annotation/VirtualTestTarget.java
d96739615324a1af0b53be1f26a9925462716082 02-Apr-2009 Jorg Pleumann <> AI 144229: Modifying build of core-tests.jar version for
the RI so that the required test annotation
classes are copied over from core.jar. Means
we don't have to maintain duplicate versions
of these classes (and there will be less
verifier complaints), so these are going away
in the process.
BUG=1285921

Automated import of CL 144229
rc/test/java/dalvik/annotation/AndroidOnly.java
rc/test/java/dalvik/annotation/KnownFailure.java
rc/test/java/dalvik/annotation/SideEffect.java
rc/test/java/dalvik/annotation/TestLevel.java
rc/test/java/dalvik/annotation/TestTargetClass.java
rc/test/java/dalvik/annotation/TestTargetNew.java
rc/test/java/dalvik/annotation/TestTargets.java
rc/test/java/dalvik/annotation/VirtualTestTarget.java
b434fabf38dc8e37054dbf398115703d97f8a421 31-Mar-2009 Jorg Pleumann <> AI 143680: am: CL 143649 am: CL 143464 Proposal for a TestTimeout annotation that the CTS
host (or an different test harness) should take into
account.
Original author: jorgp
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...

Automated import of CL 143680
rc/main/java/dalvik/annotation/Timeout.java
039090cec5425a94dd3c6e968f8da4630af11071 31-Mar-2009 Jorg Pleumann <> AI 143679: am: CL 143646 am: CL 143460 Adding new annotation for tests that expose or suffer from
side effecs. The test harness can isolate these in their
own process. Unfortunately we need to add the class twice.
Maybe we can find a better solution for this at a later
point.
Original author: jorgp
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...

Automated import of CL 143679
rc/main/java/dalvik/annotation/SideEffect.java
rc/test/java/dalvik/annotation/SideEffect.java
a128e3bc1eae86984b40e95aa117b9de5f3faf07 31-Mar-2009 Jorg Pleumann <> AI 143649: am: CL 143464 Proposal for a TestTimeout annotation that the CTS
host (or an different test harness) should take into
account.
Original author: jorgp
Merged from: //branches/cupcake/...

Automated import of CL 143649
rc/main/java/dalvik/annotation/Timeout.java
4af1e1cff8029a7d85fabc27cd0e78456ea710c6 31-Mar-2009 Jorg Pleumann <> AI 143646: am: CL 143460 Adding new annotation for tests that expose or suffer from
side effecs. The test harness can isolate these in their
own process. Unfortunately we need to add the class twice.
Maybe we can find a better solution for this at a later
point.
Original author: jorgp
Merged from: //branches/cupcake/...

Automated import of CL 143646
rc/main/java/dalvik/annotation/SideEffect.java
rc/test/java/dalvik/annotation/SideEffect.java
8354a6f05de4bb6dda5cae97fd72c53ebe365c96 30-Mar-2009 Jorg Pleumann <> AI 143464: Proposal for a TestTimeout annotation that the CTS
host (or an different test harness) should take into
account.
BUG=1537738

Automated import of CL 143464
rc/main/java/dalvik/annotation/Timeout.java
cf48d23fa4d6634d0fe547edad7891e3f9752107 30-Mar-2009 Jorg Pleumann <> AI 143460: Adding new annotation for tests that expose or suffer from
side effecs. The test harness can isolate these in their
own process. Unfortunately we need to add the class twice.
Maybe we can find a better solution for this at a later
point.
BUG=1285921

Automated import of CL 143460
rc/main/java/dalvik/annotation/SideEffect.java
rc/test/java/dalvik/annotation/SideEffect.java
6e9aaa7487570351360ada9630f1684d25a2183d 25-Mar-2009 Andy McFadden <> Automated import from //branches/donutburger/...@140700,140700
rc/main/java/dalvik/system/VMDebug.java
5d287a9d9768195f53e244414b465ec4a6f72625 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import //branches/master/...@140412
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/VMDebug.java
adc854b798c1cfe3bfd4c27d68d5cee38ca617da 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ODULE_LICENSE_APACHE2
rc/main/java/dalvik/annotation/AndroidOnly.java
rc/main/java/dalvik/annotation/AnnotationDefault.java
rc/main/java/dalvik/annotation/BrokenTest.java
rc/main/java/dalvik/annotation/EnclosingClass.java
rc/main/java/dalvik/annotation/EnclosingMethod.java
rc/main/java/dalvik/annotation/HostController.java
rc/main/java/dalvik/annotation/InnerClass.java
rc/main/java/dalvik/annotation/KnownFailure.java
rc/main/java/dalvik/annotation/MemberClasses.java
rc/main/java/dalvik/annotation/Signature.java
rc/main/java/dalvik/annotation/TestInfo.java
rc/main/java/dalvik/annotation/TestLevel.java
rc/main/java/dalvik/annotation/TestStatus.java
rc/main/java/dalvik/annotation/TestTarget.java
rc/main/java/dalvik/annotation/TestTargetClass.java
rc/main/java/dalvik/annotation/TestTargetNew.java
rc/main/java/dalvik/annotation/TestTargets.java
rc/main/java/dalvik/annotation/Throws.java
rc/main/java/dalvik/annotation/ToBeFixed.java
rc/main/java/dalvik/annotation/VirtualTestTarget.java
rc/main/java/dalvik/annotation/package.html
rc/main/java/dalvik/bytecode/Opcodes.java
rc/main/java/dalvik/bytecode/package.html
rc/main/java/dalvik/system/AllocationLimitError.java
rc/main/java/dalvik/system/DexClassLoader.java
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/NativeStart.java
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/PotentialDeadlockError.java
rc/main/java/dalvik/system/StaleDexCacheError.java
rc/main/java/dalvik/system/TemporaryDirectory.java
rc/main/java/dalvik/system/TouchDex.java
rc/main/java/dalvik/system/TouchDexLoader.java
rc/main/java/dalvik/system/VMDebug.java
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/VMStack.java
rc/main/java/dalvik/system/Zygote.java
rc/main/java/dalvik/system/package.html
rc/main/java/org/apache/harmony/dalvik/NativeTestTarget.java
rc/main/java/org/apache/harmony/dalvik/ddmc/Chunk.java
rc/main/java/org/apache/harmony/dalvik/ddmc/ChunkHandler.java
rc/main/java/org/apache/harmony/dalvik/ddmc/DdmServer.java
rc/main/java/org/apache/harmony/dalvik/ddmc/DdmVmInternal.java
rc/main/java/org/apache/harmony/dalvik/ddmc/README.txt
rc/main/native/dalvik_system_TouchDex.cpp
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.c
rc/main/native/sub.mk
rc/test/java/dalvik/annotation/AndroidOnly.java
rc/test/java/dalvik/annotation/BrokenTest.java
rc/test/java/dalvik/annotation/KnownFailure.java
rc/test/java/dalvik/annotation/TestLevel.java
rc/test/java/dalvik/annotation/TestTargetClass.java
rc/test/java/dalvik/annotation/TestTargetNew.java
rc/test/java/dalvik/annotation/TestTargets.java
rc/test/java/dalvik/annotation/VirtualTestTarget.java
1c0fed63c71ddb230f3b304aac12caffbedf2f21 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ODULE_LICENSE_APACHE2
rc/main/java/dalvik/annotation/AndroidOnly.java
rc/main/java/dalvik/annotation/AnnotationDefault.java
rc/main/java/dalvik/annotation/BrokenTest.java
rc/main/java/dalvik/annotation/EnclosingClass.java
rc/main/java/dalvik/annotation/EnclosingMethod.java
rc/main/java/dalvik/annotation/HostController.java
rc/main/java/dalvik/annotation/InnerClass.java
rc/main/java/dalvik/annotation/KnownFailure.java
rc/main/java/dalvik/annotation/MemberClasses.java
rc/main/java/dalvik/annotation/Signature.java
rc/main/java/dalvik/annotation/TestInfo.java
rc/main/java/dalvik/annotation/TestLevel.java
rc/main/java/dalvik/annotation/TestStatus.java
rc/main/java/dalvik/annotation/TestTarget.java
rc/main/java/dalvik/annotation/TestTargetClass.java
rc/main/java/dalvik/annotation/TestTargetNew.java
rc/main/java/dalvik/annotation/TestTargets.java
rc/main/java/dalvik/annotation/Throws.java
rc/main/java/dalvik/annotation/ToBeFixed.java
rc/main/java/dalvik/annotation/VirtualTestTarget.java
rc/main/java/dalvik/annotation/package.html
rc/main/java/dalvik/bytecode/Opcodes.java
rc/main/java/dalvik/bytecode/package.html
rc/main/java/dalvik/system/AllocationLimitError.java
rc/main/java/dalvik/system/DexClassLoader.java
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/NativeStart.java
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/PotentialDeadlockError.java
rc/main/java/dalvik/system/StaleDexCacheError.java
rc/main/java/dalvik/system/TemporaryDirectory.java
rc/main/java/dalvik/system/TouchDex.java
rc/main/java/dalvik/system/TouchDexLoader.java
rc/main/java/dalvik/system/VMDebug.java
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/VMStack.java
rc/main/java/dalvik/system/Zygote.java
rc/main/java/dalvik/system/package.html
rc/main/java/org/apache/harmony/dalvik/NativeTestTarget.java
rc/main/java/org/apache/harmony/dalvik/ddmc/Chunk.java
rc/main/java/org/apache/harmony/dalvik/ddmc/ChunkHandler.java
rc/main/java/org/apache/harmony/dalvik/ddmc/DdmServer.java
rc/main/java/org/apache/harmony/dalvik/ddmc/DdmVmInternal.java
rc/main/java/org/apache/harmony/dalvik/ddmc/README.txt
rc/main/native/dalvik_system_TouchDex.cpp
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.c
rc/main/native/sub.mk
rc/test/java/dalvik/annotation/AndroidOnly.java
rc/test/java/dalvik/annotation/BrokenTest.java
rc/test/java/dalvik/annotation/KnownFailure.java
rc/test/java/dalvik/annotation/TestLevel.java
rc/test/java/dalvik/annotation/TestTargetClass.java
rc/test/java/dalvik/annotation/TestTargetNew.java
rc/test/java/dalvik/annotation/TestTargets.java
rc/test/java/dalvik/annotation/VirtualTestTarget.java
b7926325a1c1a370c84c81db80372f59af240a53 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
rc/main/java/dalvik/annotation/TestTargetNew.java
rc/main/java/dalvik/system/DexClassLoader.java
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/VMDebug.java
a0881d052ee72e3f7e773374e9b1aa75fbd6be4c 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
rc/test/java/dalvik/annotation/AndroidOnly.java
rc/test/java/dalvik/annotation/BrokenTest.java
rc/test/java/dalvik/annotation/KnownFailure.java
rc/test/java/dalvik/annotation/TestLevel.java
rc/test/java/dalvik/annotation/TestTargetClass.java
rc/test/java/dalvik/annotation/TestTargetNew.java
rc/test/java/dalvik/annotation/TestTargets.java
rc/test/java/dalvik/annotation/VirtualTestTarget.java
dd828f42a5c83b4270d4fbf6fce2da1878f1e84a 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
rc/main/java/dalvik/annotation/AndroidOnly.java
rc/main/java/dalvik/annotation/BrokenTest.java
rc/main/java/dalvik/annotation/HostController.java
rc/main/java/dalvik/annotation/KnownFailure.java
rc/main/java/dalvik/annotation/TestInfo.java
rc/main/java/dalvik/annotation/TestLevel.java
rc/main/java/dalvik/annotation/TestTarget.java
rc/main/java/dalvik/annotation/TestTargetClass.java
rc/main/java/dalvik/annotation/TestTargetNew.java
rc/main/java/dalvik/annotation/TestTargets.java
rc/main/java/dalvik/annotation/ToBeFixed.java
rc/main/java/dalvik/annotation/VirtualTestTarget.java
rc/main/java/dalvik/annotation/package.html
rc/main/java/dalvik/bytecode/package.html
rc/main/java/dalvik/system/AllocationLimitError.java
rc/main/java/dalvik/system/DexClassLoader.java
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/PotentialDeadlockError.java
rc/main/java/dalvik/system/StaleDexCacheError.java
rc/main/java/dalvik/system/TemporaryDirectory.java
rc/main/java/dalvik/system/TouchDex.java
rc/main/java/dalvik/system/VMDebug.java
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/VMStack.java
rc/main/java/dalvik/system/Zygote.java
rc/main/java/dalvik/system/package.html
fdb2704414a9ed92394ada0d1395e4db86889465 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ODULE_LICENSE_APACHE2
rc/main/java/dalvik/annotation/AnnotationDefault.java
rc/main/java/dalvik/annotation/EnclosingClass.java
rc/main/java/dalvik/annotation/EnclosingMethod.java
rc/main/java/dalvik/annotation/InnerClass.java
rc/main/java/dalvik/annotation/MemberClasses.java
rc/main/java/dalvik/annotation/Signature.java
rc/main/java/dalvik/annotation/TestInfo.java
rc/main/java/dalvik/annotation/TestStatus.java
rc/main/java/dalvik/annotation/TestTarget.java
rc/main/java/dalvik/annotation/TestTargetClass.java
rc/main/java/dalvik/annotation/Throws.java
rc/main/java/dalvik/bytecode/Opcodes.java
rc/main/java/dalvik/system/AllocationLimitError.java
rc/main/java/dalvik/system/DexFile.java
rc/main/java/dalvik/system/NativeStart.java
rc/main/java/dalvik/system/PathClassLoader.java
rc/main/java/dalvik/system/PotentialDeadlockError.java
rc/main/java/dalvik/system/StaleDexCacheError.java
rc/main/java/dalvik/system/TemporaryDirectory.java
rc/main/java/dalvik/system/TouchDex.java
rc/main/java/dalvik/system/TouchDexLoader.java
rc/main/java/dalvik/system/VMDebug.java
rc/main/java/dalvik/system/VMRuntime.java
rc/main/java/dalvik/system/VMStack.java
rc/main/java/dalvik/system/Zygote.java
rc/main/java/org/apache/harmony/dalvik/NativeTestTarget.java
rc/main/java/org/apache/harmony/dalvik/ddmc/Chunk.java
rc/main/java/org/apache/harmony/dalvik/ddmc/ChunkHandler.java
rc/main/java/org/apache/harmony/dalvik/ddmc/DdmServer.java
rc/main/java/org/apache/harmony/dalvik/ddmc/DdmVmInternal.java
rc/main/java/org/apache/harmony/dalvik/ddmc/README.txt
rc/main/native/dalvik_system_TouchDex.cpp
rc/main/native/org_apache_harmony_dalvik_NativeTestTarget.c
rc/main/native/sub.mk