OSDN Git Service
Jesse Wilson [Tue, 21 Jun 2011 03:26:56 +0000 (20:26 -0700)]
am
0c632a84: Merge "Add isDebuggerActive API for the finalizer watchdog."
* commit '
0c632a8484839ceeffc6fdf04c310c02c7531530':
Add isDebuggerActive API for the finalizer watchdog.
Jesse Wilson [Tue, 21 Jun 2011 02:55:27 +0000 (19:55 -0700)]
Merge "Add isDebuggerActive API for the finalizer watchdog."
Jesse Wilson [Mon, 20 Jun 2011 22:09:16 +0000 (15:09 -0700)]
Add isDebuggerActive API for the finalizer watchdog.
Change-Id: Ib0afcd15327c0a3dd8c565036a8f010e318adc9e
http://b/
4144865
Elliott Hughes [Mon, 20 Jun 2011 18:53:41 +0000 (11:53 -0700)]
Don't be too specific in reference table summaries.
Implying that the examplar Class' specific type was true of all
the classes was misleading; we should just say "Class" in the
summary:
W/dalvikvm( 801): JNI local reference table summary (23 entries):
W/dalvikvm( 801): 20 of java.lang.Class (19 unique instances)
W/dalvikvm( 801): 2 of java.lang.String (2 unique instances)
W/dalvikvm( 801): 1 of java.lang.String[] (2 elements)
Change-Id: Ia961cfc689aa390c84ecbc96e44bdd64448ac051
Elliott Hughes [Mon, 20 Jun 2011 17:46:08 +0000 (10:46 -0700)]
Remove incorrect comment.
Change-Id: I3d1d84f8d36b8ee3d07e0af7e29faa72f3615e92
Elliott Hughes [Fri, 17 Jun 2011 23:57:49 +0000 (16:57 -0700)]
Fix build: rebase went wrong.
Change-Id: I390edcb3ddd52d2fb9285d2de42617dff68fdcf2
Elliott Hughes [Fri, 17 Jun 2011 22:59:16 +0000 (15:59 -0700)]
Make some of the StringObject functions member functions.
Change-Id: I72ed13c16f0cb24498772c453ba268a0f65f208a
Elliott Hughes [Fri, 17 Jun 2011 20:55:27 +0000 (13:55 -0700)]
Add and use StringAppendF.
I've also removed the dvm prefix from the existing StringPrintf.
Change-Id: I3d01f676c876957b6c6e032c674e1a06c3670021
Elliott Hughes [Fri, 17 Jun 2011 17:33:10 +0000 (10:33 -0700)]
Merge "Improve reference table dumping." into dalvik-dev
Elliott Hughes [Thu, 16 Jun 2011 23:55:24 +0000 (16:55 -0700)]
Improve reference table dumping.
1. Show the newest entry first; I always assume the top is the newest.
2. Use human-readable type names.
3. Improve the human-readable type name code to show _which_ Class (i.e.
java.lang.Class<java.lang.String> rather than just java.lang.Class).
4. Make it clear when we're reporting the number of elements in an array.
5. Show the first few characters of a string.
6. Show the length of a string if we truncate it.
(I've also removed some redundant casts and improved const-correctness.)
Example:
Last 10 entries in JNI local reference table:
16: 0x40f8ec70 java.lang.String "android.permissi... (41 chars)
15: 0x40f8d450 android.os.Parcel
14: 0x40f8eb90 java.lang.String "BlackSurface"
13: 0x408caca0 android.view.SurfaceSession
12: 0x40f8eb60 android.view.Surface
11: 0x406bc6f0 java.lang.Class<com.android.server.SystemServer>
10: 0x406c0278 java.lang.String "com/android/serv... (31 chars)
9: 0x4015d488 dalvik.system.PathClassLoader
8: 0x40148de8 java.lang.Class<java.lang.ClassLoader>
7: 0x406bc560 java.lang.String[]
JNI local reference table summary (17 entries):
6 of java.lang.Class<com.android.server.SystemServer> (5 unique instances)
5 of java.lang.String (5 unique instances)
1 of java.lang.String[]
1 of java.lang.String[] (2 elements)
1 of dalvik.system.PathClassLoader
1 of android.os.Parcel
1 of android.view.SurfaceSession
1 of android.view.Surface
Change-Id: I56494104cd0daada3ecc1e610f1c94df1e11c640
Elliott Hughes [Thu, 16 Jun 2011 21:04:10 +0000 (14:04 -0700)]
am
a7ab2182: Fix unbundled apps on pre-ICS devices.
* commit '
a7ab2182266fb9ea1e4e8d1347fc6d6da35760d4':
Fix unbundled apps on pre-ICS devices.
Elliott Hughes [Thu, 16 Jun 2011 19:56:27 +0000 (12:56 -0700)]
Fix unbundled apps on pre-ICS devices.
Change-Id: I4aa58b5395423ec2f05be3dcb1783d0e35eabb2c
Elliott Hughes [Wed, 15 Jun 2011 18:12:05 +0000 (11:12 -0700)]
Break a dependency on frameworks/base when building a host VM.
These aren't necessarily good abstractions, but they're no worse than what
we had, and having them factored out is a step in the right direction.
Change-Id: I5b839608317d2ca1ca54d8a38624fb686f2c37de
Elliott Hughes [Wed, 15 Jun 2011 16:31:44 +0000 (09:31 -0700)]
Better comments for yesterday's change.
Change-Id: I1e05fb0e209d44874101b5ca8b7c8efec6810d5f
Carl Shapiro [Wed, 15 Jun 2011 05:08:41 +0000 (22:08 -0700)]
am
cd10c009: am
f682dd64: (-s ours) am
1dd6e412: am
a028d87f: Always grow the limit address of the a heap along with its size.
* commit '
cd10c0092f7056f4d0b42bf734f8badf75d84fb9':
Always grow the limit address of the a heap along with its size.
Carl Shapiro [Wed, 15 Jun 2011 05:02:07 +0000 (22:02 -0700)]
am
f682dd64: (-s ours) am
1dd6e412: am
a028d87f: Always grow the limit address of the a heap along with its size.
* commit '
f682dd646a92f53221981a434abc06da5d249404':
Always grow the limit address of the a heap along with its size.
Carl Shapiro [Wed, 15 Jun 2011 04:59:05 +0000 (21:59 -0700)]
am
1dd6e412: am
a028d87f: Always grow the limit address of the a heap along with its size.
* commit '
1dd6e4124b5ec8b7392163cb055028678aaf042d':
Always grow the limit address of the a heap along with its size.
Carl Shapiro [Wed, 15 Jun 2011 04:56:54 +0000 (21:56 -0700)]
am
a028d87f: Always grow the limit address of the a heap along with its size.
* commit '
a028d87fb310eae8cac821183aa91567ec8cb0f9':
Always grow the limit address of the a heap along with its size.
Carl Shapiro [Wed, 15 Jun 2011 03:51:45 +0000 (20:51 -0700)]
Always grow the limit address of the a heap along with its size.
Previously, clearing the growth limit only updated the maximumSize of
the unlimited heap without updating the limit value. This caused any
operations iterated over the extent of the heap to ignore allocations
beyond the original heap size. With this change the limit is always
kept in agreement with the maximumSize.
Bug:
4539441
Change-Id: I08c8004e724549d196e1fd5d6ad22efc85b0c8d2
Carl Shapiro [Wed, 15 Jun 2011 03:31:24 +0000 (20:31 -0700)]
Normalize the include guard style.
An leading underscore followed by a capital letter is a reserved
name space in C and C++.
This change also moves any #include directives within the include
guard in some of the compiler/codegen/arm header files.
Change-Id: I9715e2c5301699d31886e61d0fe6e29483555a2a
jeffhao [Tue, 14 Jun 2011 23:37:22 +0000 (16:37 -0700)]
Dx defaults to emitting dexfiles without jumbo opcodes.
There's compatibility issues with going back and forth between versions,
and it's best to have dx default to a stable point and allow
optimizations to be controlled by switches. For jumbo opcodes to be
enabled, dx can be given the switch "--target-api=14".
Change-Id: I824092c795638ca329325b14c435bc41c1ab56d5
Elliott Hughes [Tue, 14 Jun 2011 20:51:55 +0000 (13:51 -0700)]
Allow native methods to declare they don't need a JNIEnv*.
Bug:
3069458
Change-Id: Ic9a6c562c5abf9607dd4c8a71b0d1e389e6d340b
Carl Shapiro [Tue, 14 Jun 2011 03:10:18 +0000 (20:10 -0700)]
Merge "Fix an issue regarding FindClass and threads without native methods." into dalvik-dev
Carl Shapiro [Fri, 10 Jun 2011 19:54:06 +0000 (12:54 -0700)]
Merge "Always grow the limit address of the a heap along with its size." into dalvik-dev
Carl Shapiro [Fri, 10 Jun 2011 06:45:49 +0000 (23:45 -0700)]
Do not initiate a concurrent collection if one is already running.
It is possible to cause a recursive garbage collection by writing a
program that triggers a concurrent garbage collection and initiates a
concurrent garbage collection before the garbage collection thread is
scheduled. For example
for (;;) { new byte[16 << 20]; System.gc(); }
When this condition occurs a warning is logged although such warnings
ought to be upgraded to fatal errors. With this change, when the
garbage collection thread is scheduled it first checks to see if there
is a running collection before calling down to start the collection.
Change-Id: Ia7baf5eba245bbf3fe053d3bad3f90876cad2459
Carl Shapiro [Fri, 10 Jun 2011 06:07:37 +0000 (23:07 -0700)]
Always grow the limit address of the a heap along with its size.
Previously, clearing the growth limit only updated the maximumSize of
the unlimited heap without updating the limit value. This caused any
operations iterated over the extent of the heap to ignore allocations
beyond the original heap size. With this change the limit is always
kept in agreement with the maximumSize.
Bug:
4539441
Change-Id: I08c8004e724549d196e1fd5d6ad22efc85b0c8d2
Carl Shapiro [Fri, 10 Jun 2011 05:03:57 +0000 (22:03 -0700)]
Fix an issue regarding FindClass and threads without native methods.
Chapter 4 of the JNI specification states that when FindClass is called
through the Invocation Interface and there is no associated method, the
result of ClassLoader.getBaseClassLoader() is used as the class loader.
Previously, the case where FindClass is called from a main thread was
special cased to ensure this behavior. However, threads which attach to
the VM but are not the main thread require similar treatment. With this
change those threads are similarly treated as a special case.
Change-Id: Idbe33e02a10d248262b9e9f089b033ffe05c4706
Carl Shapiro [Thu, 9 Jun 2011 07:33:49 +0000 (00:33 -0700)]
Merge "Fix a minor leaks caused by failed initializations." into dalvik-dev
Carl Shapiro [Thu, 9 Jun 2011 01:35:26 +0000 (18:35 -0700)]
Fix a minor leaks caused by failed initializations.
Change-Id: Ie0939bce7422b224f4cfde9781470f2237ede497
Elliott Hughes [Wed, 8 Jun 2011 22:54:05 +0000 (15:54 -0700)]
Tidy up some includes.
Change-Id: I5abd4f8ab06db0c77fa369fcd97d8f1259b343df
Carl Shapiro [Wed, 8 Jun 2011 20:07:44 +0000 (13:07 -0700)]
Merge "Favor Object* over void* for the heap bitmap interfaces." into dalvik-dev
Carl Shapiro [Wed, 8 Jun 2011 04:42:44 +0000 (21:42 -0700)]
Fix two issues with the card table.
Several tricks are used to adjust the base of the card table to save
instructions in the write barrier. This change corrects two
situtations where the card table did not properly account for the
effects of these tricks.
First, the card table is over allocated to ensure that the start
address can be magically aligned. When releasing the allocation these
additional bytes were not supplied to munmap creating a potential
leak.
Second, the valid card check did not use the right base address for a
containment check. The check used the allocation base which is may be
lower than the actual starting address. This would cause valid cards
at the high end of the heap to be considered invalid and invalid cards
at the low end of the heap to be considered valid.
Change-Id: I83bf4167b7c081c8626b6ff504342f42d0e776a2
Elliott Hughes [Wed, 8 Jun 2011 00:38:12 +0000 (17:38 -0700)]
Fix regular exit.
Change-Id: I653658f3b6e533a235f1108d0b625b9bdff7630c
Carl Shapiro [Wed, 8 Jun 2011 00:32:01 +0000 (17:32 -0700)]
Favor Object* over void* for the heap bitmap interfaces.
Change-Id: I615dbff3e81a1128dc3ba43d6d426c370ae3abcf
Elliott Hughes [Tue, 7 Jun 2011 23:39:20 +0000 (16:39 -0700)]
Improve "waiting on"/"waiting to lock" SIGQUIT dump info.
In particular, when we're waiting on a Class, say which class:
I(16573) - waiting on <0xf5ed54f8> (java.lang.Class<java.lang.ref.ReferenceQueue>)
versus:
I(16573) - waiting on <0xf5feda38> (a java.util.LinkedList)
Bug: http://code.google.com/p/android/issues/detail?id=17349
Change-Id: I844d02c008b1499adb02995ff3da25ba8cad0e0a
Elliott Hughes [Tue, 7 Jun 2011 22:56:08 +0000 (15:56 -0700)]
Fix gunit test build.
Change-Id: I409e75202cc6af0b0a48b81602f2ac322da7f404
Elliott Hughes [Tue, 7 Jun 2011 21:24:45 +0000 (14:24 -0700)]
Switch dvmHumanReadableDescriptor over to std::string.
(Prep work before making a change to stack dumps.)
Change-Id: I0af49b920f450fd2611e4b96e717a637483122d6
Elliott Hughes [Tue, 7 Jun 2011 17:07:11 +0000 (10:07 -0700)]
Use std::string rather than malloc/free for saneDirName.
Also use std::vector instead of the cutils/array cruft.
Change-Id: I273147335cafbac5d336955f53b0b29d015f0589
Dan Bornstein [Mon, 6 Jun 2011 18:14:07 +0000 (11:14 -0700)]
Note a possible improvement.
This section of code was left commented out because of a bug in
dx. Since the dex format version has since changed, we can now
use detection of the format version to enable the code. This
patch just notes that fact for the record.
Change-Id: I9129bc4420c17fb8c703b424a0bac9437f796210
Dan Bornstein [Thu, 2 Jun 2011 19:24:11 +0000 (12:24 -0700)]
Add some error checking and clean out some cruft.
Error checking #1: When a cached dex file can't be created, do extra
analysis to figure out (and report) why.
Error checking #2: When opening classpath entries, become sensitive
to the file extension, only trying to open files with the right
extensions and complaining explicitly if it's unrecognized.
Cruft cleaning: We've never supported finding class files in directory
hierarchies in Dalvik. Fix some related comments and clean out some
code that tried (in vain) to implement a piece of that.
Bug:
4523201
Change-Id: I05b7a8570f147955cd62229fca72b50d36703752
Brian Carlstrom [Fri, 27 May 2011 06:49:07 +0000 (23:49 -0700)]
Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-master
Dan Bornstein [Thu, 26 May 2011 19:01:03 +0000 (12:01 -0700)]
More LOG newline cleanup.
This changes all the places I could find where the log string was on the
line after its LOG call.
Change-Id: Iac6a9fcc64f46631fb093824ab60237dce1a5241
Dan Bornstein [Thu, 26 May 2011 17:46:25 +0000 (10:46 -0700)]
Prefer printf format "%#x" over "0x%x".
I exist to serve.
Change-Id: I8e2880b20eefd466da8515d5b6b0c5cb75d56169
Dan Bornstein [Thu, 26 May 2011 17:11:58 +0000 (10:11 -0700)]
Further conservation of newlines.
Friends don't let friends end LOG() strings with newlines.
Change-Id: I5a18c766c90c4ab5f03caa6acd601d34d91beb00
Dan Bornstein [Thu, 26 May 2011 05:23:29 +0000 (22:23 -0700)]
One more dex magic update.
I missed the dexdeps tool in my earlier change. This fixes it
to recognize both supported dex version numbers.
Change-Id: Ia6a26539f2ab6369ecbf3697b01b7d62a1e836b8
Dan Bornstein [Thu, 26 May 2011 05:10:37 +0000 (22:10 -0700)]
Merge "Conservation of newlines in libdex." into dalvik-dev
buzbee [Thu, 26 May 2011 01:16:51 +0000 (18:16 -0700)]
am
90f276bc: Pack interpSave struct to fix x86 & Arm diffs
* commit '
90f276bc5b8e4eeda1c4a35b2a116cbf6593d95d':
Pack interpSave struct to fix x86 & Arm diffs
buzbee [Thu, 26 May 2011 00:53:00 +0000 (17:53 -0700)]
Pack interpSave struct to fix x86 & Arm diffs
On x86, the double in JValue forces 8-byte alignment, which causes
a problem for our asm-constants. Pack it.
Change-Id: Ia53c3928a47a127fdfbb12a958111c475f83fbde
buzbee [Thu, 26 May 2011 00:40:37 +0000 (17:40 -0700)]
Merge "Pack interpSave struct to fix x86 & arm align diff" into dalvik-dev
buzbee [Thu, 26 May 2011 00:37:09 +0000 (17:37 -0700)]
Pack interpSave struct to fix x86 & arm align diff
On x86, the double in JValue forces 8-byte alignment, which causes
a problem for our asm-constants. Pack it.
Change-Id: Ie9e8bef7bb1b0ae3a502bd6fe12e831092a38812
Carl Shapiro [Thu, 26 May 2011 00:17:54 +0000 (17:17 -0700)]
Merge "Eliminate the dvmHeapSourceGetPtrFlag interface." into dalvik-dev
Dan Bornstein [Wed, 25 May 2011 23:58:39 +0000 (16:58 -0700)]
Conservation of newlines in libdex.
The log facility adds newlines automatically, and the prevailing
convention is now to omit them.
Change-Id: I14762ea4a7c24eea333f778724a0e4b6b65bae2b
Dan Bornstein [Wed, 25 May 2011 23:29:02 +0000 (16:29 -0700)]
Merge "Update dex file magic number." into dalvik-dev
Carl Shapiro [Wed, 25 May 2011 23:26:25 +0000 (16:26 -0700)]
Eliminate the dvmHeapSourceGetPtrFlag interface.
This routine served answering questions about object addresses. While
it was private to the garbage collector, its remaining use was inside
the heap profiler. Within the heap profiler, a single path was
executed to tested a pointer for containment within the zygote. In
its place, a new function, dvmIsZygoteObject, has been added to the GC
interface superseding the only use of dvmHeapSourceGetPtrFlag.
Change-Id: I347c9adb293bd6c196bbac3765015453133dc492
Dan Bornstein [Wed, 25 May 2011 20:15:47 +0000 (13:15 -0700)]
Update dex file magic number.
Even though the dex format was technically resilient with respect to
the addition of new opcodes, consensus is that the errors one sees
when trying to use a new dex file on an old build were sufficiently
inscrutable that it was worth the effort to update the version number
embedded in the dex format magic.
This change updates dx to produce the new version number when extended
opcodes are enabled (which is the default, but may be overridden by
targeting an older API level).
This also updates the vm to recognize and accept both the new current
version number as well as the immediately previous one. Note: It won't
reject an old-version file if it happens to use the new opcodes; that
would just be a gratuitous and pointless failure.
Bug:
4364986
Change-Id: If8febbb0b91c1719df4247bf69c511251362d91f
buzbee [Wed, 25 May 2011 23:00:22 +0000 (16:00 -0700)]
am
cf4a20cf: Interpreter/Debugger fix #
4479968
* commit '
cf4a20cf0cbc53f03a5b16c7152bbb29907f7108':
Interpreter/Debugger fix #
4479968
buzbee [Wed, 25 May 2011 21:21:14 +0000 (14:21 -0700)]
Interpreter/Debugger fix #
4479968
This one was tricky to track down. The underlying problem arose
with the consolidation of InterpState with Thread. Rather than
having a state structure for each instance of the interpreter, we
moved to a model that had a single thread-local struct shared by all
interpreter instances running on that thread. A portion of interpreter
state can't be shared - and thus was saved and restored on nested
invocations of the interpreter.
The bug here was that the storage for method return values was not
included in the state that needed save/retore. In normal operation,
it doesn't need to be saved - that storage isn't live across an
invoke that could trigger a nested interpreter activation. However,
when debugging, the debugger itself may hijack threads and create
new interpreter instances for its own purposed - and there is a small
window in which live retval can be trashed.
The fix is simply to move retval into the InterpSave struct.
Change-Id: Ib621824b799c5caa16fdfa8f5689a181159059df
Jeff Brown [Tue, 24 May 2011 22:08:58 +0000 (15:08 -0700)]
am
9522632b: Merge "Support wrapping app processes to inject debug instrumentation. Bug:
4437846"
* commit '
9522632b57b4df3249e4ee5fee3c1cfec8440e57':
Support wrapping app processes to inject debug instrumentation. Bug:
4437846
Jeff Brown [Tue, 24 May 2011 21:26:29 +0000 (14:26 -0700)]
Merge "Support wrapping app processes to inject debug instrumentation. Bug:
4437846"
Elliott Hughes [Mon, 23 May 2011 23:43:01 +0000 (16:43 -0700)]
Merge "Minor documentation changes." into dalvik-dev
Elliott Hughes [Mon, 23 May 2011 23:37:23 +0000 (16:37 -0700)]
Minor documentation changes.
Change-Id: I487f915a55158e59533cd70cb030f127979864a8
buzbee [Mon, 23 May 2011 19:01:53 +0000 (12:01 -0700)]
am
97b22b8d: Fix alt handling for Jumbo ops
* commit '
97b22b8d41742fa84812f46d1125e9735420782a':
Fix alt handling for Jumbo ops
buzbee [Mon, 23 May 2011 17:59:33 +0000 (10:59 -0700)]
Fix alt handling for Jumbo ops
The mterp alt mechanism allows us to break out of the fast
interpreter loop to handle debugging, JIT trace selection and
other non-standard behavior. It does this by replacing the
base pointer to the instruction handlers with an alternate
base that references a set of dummy handlers that first call
out the dvmCheckBefore() to handle special actions before
routing control to the real handlers.
This mechanism was slightly broken for the Jumbo ops - which
have a first opcode byte of 0xFF (Dispatch), followed by the
Jumbo opcode byte. In short, when the altHandlerBase was active
dvmCheckBefore() was getting called for both the dispatch opcode
byte and the Jumbo byte.
This change adds special ALT_OP_DISPATCH_FF handlers which skip
the dvmCheckBefore() call.
Change-Id: If57c298a33404cdaca7456bc8fe1159c70240bea
Jeff Brown [Tue, 17 May 2011 00:05:02 +0000 (17:05 -0700)]
Support wrapping app processes to inject debug instrumentation.
Bug:
4437846
Change-Id: I0de4dbf4d3a9239aedf6b52610bfe0f81f3b5b95
Dan Bornstein [Tue, 17 May 2011 18:10:10 +0000 (11:10 -0700)]
Merge "Address CVE-2011-1090." into dalvik-dev
Dan Bornstein [Fri, 13 May 2011 20:55:32 +0000 (13:55 -0700)]
Address CVE-2011-1090.
This adds a credentials check after connecting to the (alleged)
ADB control socket, to make sure that the other side really is
the system and not a malicious non-system process.
Since I was in the territory, I also did some minor comment
cleanup / correction (at the top of the file).
This change relies on a related change in system/core.
Change-Id: Iecbc4383cf285444f9d5a0414986951593777fa3
Elliott Hughes [Fri, 13 May 2011 23:01:25 +0000 (16:01 -0700)]
Dump the pending exception before aborting in FindClass.
CheckJNI already does this, but since we're about to abort, we should do this
even without CheckJNI.
Bug: http://code.google.com/p/android/issues/detail?id=16758
Change-Id: Ief5e8d836ad16d342eead8db9e44ae5af7983c3a
Elliott Hughes [Thu, 12 May 2011 19:17:00 +0000 (12:17 -0700)]
Improve diagnostics when an invalid reference is given to Get/Set*Field functions.
It may be worth treating NULL as a special case of "invalid" for an even
clearer diagnostic, but this is a huge leap forward from just crashing inside
CheckJNI:
W( 4443) JNI ERROR: field operation on invalid reference ((nil)) (dalvikvm)
E( 4443) VM aborting (dalvikvm)
Change-Id: Ied7090a57becb10ca7c8cb4be56cd7c1f109add5
Ben Cheng [Thu, 12 May 2011 06:25:53 +0000 (23:25 -0700)]
am
fe108f77: Fix a Thumb vs Thumb2 codegen bug.
* commit '
fe108f779db4fb3bc720a92e69e58177983088c1':
Fix a Thumb vs Thumb2 codegen bug.
Carl Shapiro [Thu, 12 May 2011 01:08:21 +0000 (18:08 -0700)]
Fix a comment and remove some horizontal white space.
Change-Id: Id0a9c4f8ee073e8260571a0f48605ae1f9b04219
Carl Shapiro [Thu, 12 May 2011 01:28:01 +0000 (18:28 -0700)]
Various code clean-ups.
* Combine definitions with initialization. This had to be foregone in
two instances where that would have otherwise caused an unused variable
warning.
* Move the HS_BOILERPLATE macro to the top of the calling function. This
macro checks that certain globals are initialized. It should be removed
after the callers become members functions of a class.
* A few cases of inconsistent function declaration styles have been brought
in line with the rest of the file. These were overlooked in a previous
clean-up.
* The unused heap source debugging macros and tracing code have been
removed.
* One stale comments has been removed and another has been updated.
Change-Id: I20bf4b78161096310b79d7dd294d7636e6bb6f48
Ben Cheng [Wed, 11 May 2011 23:55:48 +0000 (16:55 -0700)]
Fix a Thumb vs Thumb2 codegen bug.
A Thumb2 pc-relative load is slipped into the codegen stream even though
the selected platform is armv5te (eg the emulator).
Bug:
4399358
Change-Id: I61dd6853cad6c82de43f384814c903dd9f3ae302
Carl Shapiro [Wed, 11 May 2011 20:38:44 +0000 (13:38 -0700)]
Merge "Normalize declaration style." into dalvik-dev
Carl Shapiro [Wed, 11 May 2011 20:15:32 +0000 (13:15 -0700)]
Normalize declaration style.
Change-Id: Iae4e3d22bc185060b3a0b4c080eafaa2ec824ac2
Carl Shapiro [Wed, 11 May 2011 20:00:41 +0000 (13:00 -0700)]
Remove dead code.
Change-Id: I3093925668eef9a839fc9fc490fc8260c001b777
Ben Cheng [Wed, 11 May 2011 19:03:31 +0000 (12:03 -0700)]
am
313d430d: Another single-stepping fix in JIT self-verification mode.
* commit '
313d430d5b3b96b45370ccddee52a6d88a799f35':
Another single-stepping fix in JIT self-verification mode.
Ben Cheng [Wed, 11 May 2011 17:58:52 +0000 (10:58 -0700)]
Another single-stepping fix in JIT self-verification mode.
The counted single stepping check should be based on the
kSubModeCountedStep submode instead.
Also since the NPC value is cleared when exceptions are thrown, we can
single-step instructions that can throw as well.
Change-Id: Idbc1307ae0956016ef76186aebc6e3b89b119d9d
Carl Shapiro [Tue, 10 May 2011 23:42:41 +0000 (16:42 -0700)]
Explicitly initialize a condition variable in the VM globals.
Change-Id: I3192d957ebace59a3b8f8330591f05d403280d1f
Carl Shapiro [Tue, 10 May 2011 19:22:32 +0000 (12:22 -0700)]
Merge "Remove an invalid assertion." into dalvik-dev
Carl Shapiro [Tue, 10 May 2011 19:21:54 +0000 (12:21 -0700)]
Merge "Fixes to allow the debug VM configuration to build." into dalvik-dev
Ben Cheng [Tue, 10 May 2011 17:42:44 +0000 (10:42 -0700)]
am
e346f7d8: Fix a couple debugging issues involving JIT single-stepping mode.
* commit '
e346f7d8f0a79f5fc53fd02c288cb7c12e23b40a':
Fix a couple debugging issues involving JIT single-stepping mode.
Ben Cheng [Mon, 9 May 2011 23:34:45 +0000 (16:34 -0700)]
Fix a couple debugging issues involving JIT single-stepping mode.
1) Declare the jitop mask array using a defined length.
2) Fix a spurious divergence when the first instruction in the trace is
single-stepped.
Change-Id: Ic7925acbda70ddd5591a4bb51d42a74d027674e5
Carl Shapiro [Tue, 10 May 2011 07:50:35 +0000 (00:50 -0700)]
Remove an invalid assertion.
There are three situtations where insertions are performed into one of
the intern tables. Two cases perform an insertion when an key value
pair is known to be absent. One case performs an insert when a key
value pair might be present. An assertion was added that errantly
checked that an insertion occured in the might be present case. This
change leaves an assert in place for the absent cases and removes the
assert in the might be present case.
In addition, a comment has been improved to reinforce the condition of
the might be present insertion.
Change-Id: I84a9090a9ca338e164898e1d6893b2a23d74f5bc
Carl Shapiro [Tue, 10 May 2011 07:07:23 +0000 (00:07 -0700)]
Fixes to allow the debug VM configuration to build.
Change-Id: Ifbe6acf84beb75014303152d20153072e7e50c55
Carl Shapiro [Sat, 7 May 2011 01:27:32 +0000 (18:27 -0700)]
Remove dead code and a stale comment.
Change-Id: I0e6f01def84d8d1b03e8c67c5dc5cebb8f7c7f31
Carl Shapiro [Sat, 7 May 2011 00:02:43 +0000 (17:02 -0700)]
Establish a subclass relationships among the field types.
Change-Id: Id349b359489bb6b1bbb4ab78d29d85c0e6b33799
Carl Shapiro [Fri, 6 May 2011 21:57:43 +0000 (14:57 -0700)]
Establish a subclass relationship between ClassObject and Object.
Change-Id: I9fb5d33f23ec7aeb2b9a3908d4125b34be0599ae
Carl Shapiro [Thu, 5 May 2011 23:01:26 +0000 (16:01 -0700)]
Make interned strings non-movable.
At present objects referenced from dex files must have stable reference
values. With this change, only non-moving strings are interned. If a
user interns a movable string a non-moving copy is made and the copy is
added to the intern table.
As part of this change, the internal string hash code access routine will
update the hash code slot of a string object. In addition, StringObject
has been made a subclass of Object eliminating various down-casts that
would otherwise be explicitly required.
Change-Id: I6b015b972aac44948470c0034ad17e5eef456aeb
Brian Carlstrom [Thu, 5 May 2011 22:26:41 +0000 (15:26 -0700)]
Fix Mac build by restoring old conditional endian handling removed in
ae188c676c681e47a93ade7fdf0144099b470e03
Change-Id: I64d024cc36a1530ba34579a45688969d18a4a9e5
Brian Carlstrom [Thu, 5 May 2011 07:01:58 +0000 (00:01 -0700)]
Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-master
Change-Id: I99c4289bd34f63b0b970b6ed0fa992b44e805393
Jesse Wilson [Wed, 4 May 2011 22:34:36 +0000 (15:34 -0700)]
Merge "Use 'dalvikvm' only to test dx." into dalvik-dev
Carl Shapiro [Wed, 4 May 2011 00:59:35 +0000 (17:59 -0700)]
Establish a subclass relationship between ArrayObject and Object.
Change-Id: I9f9fe52bd4ceebb6dde48251a89190ba6bb00ce4
buzbee [Tue, 3 May 2011 21:59:21 +0000 (14:59 -0700)]
am
00ceb87d: Fix for double breakpoint (issue
4378296)
* commit '
00ceb87d1c57ccee59966be4deef1292a049285c':
Fix for double breakpoint (issue
4378296)
buzbee [Tue, 3 May 2011 19:55:14 +0000 (12:55 -0700)]
Fix for double breakpoint (issue
4378296)
Breakpoints are given special handling in the interpreter. They
are first interpreted as a breakpoint (with notification to the
debugger), and then the actual instruction associated with the
breakpoint location is interpreted.
The bug here was that the "dvmCheckBefore()" handler was invoked
prior to both "interpretations" - rather than just the first.
Note that this defect appears only in the Arm mterp, the portable
interpreter and x86 mterp did the right thing.
Change-Id: Ied957edc0c248b5d4d94910beb7af6c03ffe885d
Carl Shapiro [Tue, 3 May 2011 03:01:42 +0000 (20:01 -0700)]
Establish a subclass relationship between DataObject and Object.
Change-Id: Ifd0e364f7789d9e13f769f8d6a65c3c573915fd3
Carl Shapiro [Mon, 2 May 2011 23:49:18 +0000 (16:49 -0700)]
Merge "Add a cast required for assigning a ClassObject* to and Object*." into dalvik-dev
Carl Shapiro [Mon, 2 May 2011 23:38:40 +0000 (16:38 -0700)]
Add a cast required for assigning a ClassObject* to and Object*.
Change-Id: Iab995725ad5a97e0dc0a76de571cfe34bbd057c8
buzbee [Mon, 2 May 2011 23:13:44 +0000 (16:13 -0700)]
Merge "x86 interpreter fix" into dalvik-dev
buzbee [Mon, 2 May 2011 23:06:04 +0000 (16:06 -0700)]
x86 interpreter fix
Correct the ordering of FP save prior to special subMode handling.
Also added a stress test mode to help catch this sort of problem in
the future.
Change-Id: I5bcd325858fa63023498bfd47e910aaf1530d6bb
Carl Shapiro [Mon, 2 May 2011 22:59:04 +0000 (15:59 -0700)]
Merge "Type the reference member of JValue as an Object pointer." into dalvik-dev