OSDN Git Service
Barry Hayes [Wed, 20 May 2009 19:10:36 +0000 (12:10 -0700)]
Change strategy for freeing objects in the sweep.
dlfree() in dlmalloc.c is fairly expensive. It checks the previous and
next block to see if the curent block can be merged into one of the
free blocks, and if it does merge, that involves manipulating the
internal free lists.
The sweep phase of the GC is already visiting free objects in address
order, and has a list of objects to be freed. The new strategy is:
Loop over the list of objects to be freed, merging when possible, and
only calling free() when a either the list has run out or a
non-adjacent free object is found.
Jean-Baptiste Queru [Mon, 3 Aug 2009 14:45:27 +0000 (07:45 -0700)]
merge from donut
Jesse Wilson [Tue, 28 Jul 2009 23:49:40 +0000 (16:49 -0700)]
Fix an issue where we're adding 4x the intended offset.
We were doing pointer arithmetic of mixed types (jint* and jint),
and the type conversion ended up causing the offset to be converted
an extra time.
Jean-Baptiste Queru [Wed, 29 Jul 2009 21:56:48 +0000 (14:56 -0700)]
merge from donut
Urs Grob [Wed, 22 Jul 2009 18:06:03 +0000 (20:06 +0200)]
Removing MD2
Jean-Baptiste Queru [Sun, 26 Jul 2009 03:35:55 +0000 (20:35 -0700)]
Merge korg/donut into korg/master
Conflicts:
libcore/luni/src/main/java/org/apache/harmony/luni/platform/PlatformAddressFactory.java
vm/oo/Class.c
Andy McFadden [Fri, 24 Jul 2009 22:28:16 +0000 (15:28 -0700)]
JNI direct buffer function speedup, part 3.
This caches the effective address in a new field in the base Buffer
object. The first time something calls through one of the various
getEffectiveAddress calls, the value is set. (This seemed easier than
chasing down the constructors and factories, and also prevents bit rot
on the "slow path" in the VM.)
Andy McFadden [Fri, 24 Jul 2009 00:47:18 +0000 (17:47 -0700)]
JNI direct buffer function speedup, part 2.
This converts the three direct buffer functions from JNI to internal VM
calls. As a bonus, we grab PlatformAddress.osaddr directly instead of
retrieving it with PlatformAddress.toLong().
We're still calling through getEffectiveAddress(), which is where most
of the complexity lies.
Nudged a couple of comments.
Android (Google) Code Review [Wed, 22 Jul 2009 22:34:57 +0000 (15:34 -0700)]
Merge change 8258 into donut
* changes:
Minor fixes to CheckJNI.
Andy McFadden [Wed, 22 Jul 2009 22:20:08 +0000 (15:20 -0700)]
Minor fixes to CheckJNI.
We weren't always switching to "running" mode before playing with
objects. Now checkObject() always changes modes, and things that called
checkObject while in "running" mode now do so after switching back to
"native" (which shouldn't matter now, but I don't want to require nested
switching to work if I don't have to).
Vaguely related to internal bug
1943379, since I think we want to do
some updates to CheckJNI there.
Andy McFadden [Wed, 22 Jul 2009 22:07:27 +0000 (15:07 -0700)]
JNI direct buffer function speedup, part 1.
This is a fairly straightforward improvement to GetDirectBufferAddress,
caching classes and methodIDs instead of looking them up on every call.
This is the best we can do without making the function more vulnerable
to internal changes to Harmony's NIO implementation.
It looks like we need to take this farther, but this way we have a
relatively fast and relatively safe version to fall back on.
For internal bug
1943379.
Android Code Review [Mon, 20 Jul 2009 23:07:43 +0000 (16:07 -0700)]
Merge change 10723
* changes:
Fix variable names related to bytecode tracing.
Brian McKenna [Sun, 19 Jul 2009 10:49:26 +0000 (20:49 +1000)]
Fix mangling to translate dollar signs (to allow Scala methods).
Mike Lockwood [Wed, 8 Jul 2009 16:39:37 +0000 (12:39 -0400)]
Fix variable names related to bytecode tracing.
Signed-off-by: Tony Yokoyama <chuuoudai@gmail.com>
The compile errors, encountered in the case that macro LOG_INSTR is
turned on, are fixed.
On branch log_instr
Changes to be committed:
modified: vm/mterp/armv5te/debug.c
modified: vm/mterp/c/gotoTargets.c
modified: vm/mterp/out/InterpC-allstubs.c
modified: vm/mterp/out/InterpC-armv4.c
modified: vm/mterp/out/InterpC-armv5te.c
modified: vm/mterp/out/InterpC-portdbg.c
modified: vm/mterp/out/InterpC-portstd.c
modified: vm/mterp/out/InterpC-x86.c
modified: vm/mterp/portable/debug.c
modified: vm/oo/Class.c
Android (Google) Code Review [Wed, 15 Jul 2009 21:18:58 +0000 (14:18 -0700)]
Merge change 7410 into donut
* changes:
Fix bug: Arrays.deepToSting renders "[null]" as "null"; "[[]]" as "[]"; etc.
Joshua Bloch [Wed, 15 Jul 2009 18:29:28 +0000 (11:29 -0700)]
Fix bug: Arrays.deepToSting renders "[null]" as "null"; "[[]]" as "[]"; etc.
Andy McFadden [Tue, 16 Jun 2009 19:10:04 +0000 (12:10 -0700)]
Don't init class during reflection signature scan.
Do not merge to master -- this is
57ea16e8 from there.
When processing Class.getDeclaredMethods() we create Method objects.
These have arrays of classes that indicate the method parameter types.
While generating the array we were initializing the classes we found,
which isn't necessary and led to some unpleasantness described in
external bug 3005.
Andy McFadden [Fri, 10 Jul 2009 00:01:04 +0000 (17:01 -0700)]
Remove races from JNI_OnLoad invocation.
Do not merge to master. (This was copied from there to donut.)
The current implementation just calls JNI_OnLoad and returns a failure
result if that goes badly. If a second load attempt is made after
dlopen() finishes but before JNI_OnLoad completes, it will succeed
immediately.
This is bad because (a) we might not have finished the initialization
steps in JNI_OnLoad, and (b) it's possible JNI_OnLoad will fail. We now
wait for an in-progress JNI_OnLoad to complete before returning. (This
also requires recognizing and handling recursive invocation.)
Android (Google) Code Review [Fri, 10 Jul 2009 10:36:41 +0000 (03:36 -0700)]
Merge change 4595 into donut
* changes:
Reactivating test that failed with a extensive gref count increase
Mike Lockwood [Wed, 8 Jul 2009 16:39:37 +0000 (12:39 -0400)]
Fix typo introduced in previous change.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Android Code Review [Thu, 2 Jul 2009 21:02:02 +0000 (14:02 -0700)]
Merge change 10482
* changes:
Add a bit-map encoding of Object-reference field offsets to ClassObject.
Android (Google) Code Review [Thu, 2 Jul 2009 18:42:32 +0000 (11:42 -0700)]
Merge change 6098 into donut
* changes:
Commented out invalid test.
crazybob [Thu, 2 Jul 2009 18:35:18 +0000 (13:35 -0500)]
Commented out invalid test.
Android (Google) Code Review [Thu, 2 Jul 2009 17:17:51 +0000 (10:17 -0700)]
Merge change 5967 into donut
* changes:
Modifies OpenSSLSocketImpl to use a different lock for the instance count. It was using the same lock when use around native methods meaning that the finalizer could be blocked unnecessarily resulting in a VM crash.
Android (Google) Code Review [Thu, 2 Jul 2009 16:41:19 +0000 (09:41 -0700)]
Merge change 5991 into donut
* changes:
Reduce VM aborts during high CPU stress.
Android (Google) Code Review [Thu, 2 Jul 2009 16:41:09 +0000 (09:41 -0700)]
Merge change 5990 into donut
* changes:
Pull 138592-p9 from master to donut.
Andy McFadden [Wed, 17 Jun 2009 23:29:30 +0000 (16:29 -0700)]
Reduce VM aborts during high CPU stress.
(This was cherry-picked from master
2aa43610 for internal bug
1952616.)
The VM has some timeouts that are meant to kill the current process if
something gets stuck (e.g. a thread grabs a lock and then manages to die
while the rest of the process continues on). These were tripping a
little too easily during some high-load situations.
This changes the order of operations so that we now unlock the "thread
suspend" lock before sending a wakeup broadcast to the condition variable
that threads sleep on. This should make it less likely for a thread to
be running for an extended period while the lock is held. (Relates to
internal bug
1664687.)
This also wraps a couple of things (pthread_create, dlopen) with a state
change to VMWAIT. During high load situations these can take a while to
complete, and we would (with the K-Means Visualizer load generator
running) very occasionally time out.
Augmented the debug output in a couple of minor ways. Updated comments.
Andy McFadden [Wed, 1 Jul 2009 21:52:13 +0000 (14:52 -0700)]
Pull 138592-p9 from master to donut.
Switch from VMWAIT to RUNNING when executing code on behalf of the
debugger. Reset the thread-suspend lock timeout if we have to suspend
while trying to acquire it.
Also, clear any pending exception before calling interpreted code.
Reworked some log messages to make them easier to decipher.
(For internal bug
1952616.)
crazybob [Wed, 1 Jul 2009 20:30:58 +0000 (15:30 -0500)]
Modifies OpenSSLSocketImpl to use a different lock for the instance count. It was using the same lock when use around native methods meaning that the finalizer could be blocked unnecessarily
resulting in a VM crash.
crazybob [Thu, 18 Jun 2009 22:19:04 +0000 (17:19 -0500)]
Fixes deadlock in Runtime.exec(). We can't malloc() or free() after fork() because the heap lock may be held by a thread that is no longer running.
San Mehat [Fri, 26 Jun 2009 15:36:16 +0000 (08:36 -0700)]
dalvik: thread: Set the control group of a thread to the background group
if the priority is logically-lower than ANDROID_PRIORITY_BACKGROUND
Signed-off-by: San Mehat <san@google.com>
Barry Hayes [Mon, 22 Jun 2009 18:45:20 +0000 (11:45 -0700)]
Add a bit-map encoding of Object-reference field offsets to ClassObject.
Class.c populates a new field with a bit for each of the first 32 instance
fields, to show if it is a reference or not, and an escape value if there is a
reference field beyond 32.
The GC uses the encoded bitmap -- if available -- to extract Object refererences
from DataObjects.
Android (Google) Code Review [Thu, 25 Jun 2009 14:23:43 +0000 (07:23 -0700)]
Merge change 5286 into donut
* changes:
Check for failure in GetDirectBufferAddress.
Andy McFadden [Wed, 24 Jun 2009 23:56:06 +0000 (16:56 -0700)]
Check for failure in GetDirectBufferAddress.
We now check for a null result or a pending exception in the JNI
GetDirectBufferAddress function. This prevents a VM crash when somebody
tries to get the address of a non-direct buffer.
For internal bug
1926596.
Dianne Hackborn [Wed, 24 Jun 2009 02:21:10 +0000 (19:21 -0700)]
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.
Andy McFadden [Tue, 23 Jun 2009 23:27:45 +0000 (16:27 -0700)]
Merge 137552-p9 to donut.
Since we're apparently using these calls now, we probably ought to pull
the bug fix over. It's been in master for more than 3 months so it
should be safe. It'll also make future merges easier.
Prequel to fix for internal bug #
1926596.
Shin-ichiro KAWASAKI [Tue, 23 Jun 2009 05:00:12 +0000 (14:00 +0900)]
added/modified to support SuperH architecture
modified: README.txt
modified: vm/Android.mk
new file: vm/arch/sh/CallSH4ABI.S
Urs Grob [Thu, 18 Jun 2009 12:09:08 +0000 (14:09 +0200)]
Reactivating test that failed with a extensive gref count increase
The cause for this failure was fixed. So this test can be reactivated.
BUG=
1814539
Android (Google) Code Review [Tue, 16 Jun 2009 21:36:31 +0000 (14:36 -0700)]
Merge change 4334 into donut
* changes:
Modified Thread to copy the context class loader from parent to child threads. Re-enabled test that covers this. Removed security-related code from test since it was invalid (the security check doesn't occur if the calling code's class loader is an ancestor of the context class loader).
crazybob [Tue, 16 Jun 2009 17:01:05 +0000 (12:01 -0500)]
Modified Thread to copy the context class loader from parent to child threads. Re-enabled test that covers this. Removed security-related code from test since it was invalid (the security check
doesn't occur if the calling code's class loader is an ancestor of the context class loader).
Nagendra Modadugu [Mon, 15 Jun 2009 20:34:41 +0000 (13:34 -0700)]
Adding:
QuoVadis Root Certification Authority
QuoVadis Root CA 2
QuoVadis Root CA 3
Lorenzo Colitti [Sat, 13 Jun 2009 00:54:23 +0000 (17:54 -0700)]
Copy the correct number of bytes for IPv6 addresses in InetAddress_gethostbyaddr
Jesse Wilson [Fri, 12 Jun 2009 00:35:12 +0000 (17:35 -0700)]
Test and fix for the ArrayList.addAll(), bug 2954.
Dan Bornstein [Wed, 10 Jun 2009 20:05:51 +0000 (13:05 -0700)]
Fix internal issue #
1898791 ("PlatformAddressFactory PlatformAddress cache
causes memory to not be freed in a timely manner.").
The change makes the two PlatformAddressFactory.alloc() methods always
allocate separate PlatformAddress objects instead of looking for them
in the cache. This means that, should they have auto-free turned on,
there won't be a reference in the cache that prevents the freeing from
happening. And since we're talking about freshly-allocated memory anyway,
it would be surprising that either a matching address would be found in
cache *or* that a subsequent call to on() would ever happen with the
same address. So, it's a win on several fronts.
Andy McFadden [Fri, 5 Jun 2009 20:36:44 +0000 (13:36 -0700)]
Fix JNI GetDirectBufferAddress.
The GetDirectBufferAddress JNI function was using the buffer's base
address, rather than it's "effective" base address. The difference
becomes important when you create a direct buffer by "slicing" it off
of another at a nonzero offset.
For internal bug
1898762.
Android Code Review [Thu, 4 Jun 2009 18:58:27 +0000 (11:58 -0700)]
Merge change 10263
* changes:
dx incorrectly writes registers as a signed leb128 in the dex debug info
Ben Gruver [Thu, 4 Jun 2009 02:28:35 +0000 (21:28 -0500)]
Fix field names for annotation_directory_item in documentation (dex-format.html)
The names of the annotated_methods_off and annotated_parameters_off fields aren't
consistent with their purpose. _size is consistent with how "count of" type fields
are named elsewhere in the file
Ben Gruver [Thu, 4 Jun 2009 02:06:34 +0000 (21:06 -0500)]
dx incorrectly writes registers as a signed leb128 in the dex debug info
This has no functional effect, because reading the signed leb128 value
as an unsignedleb128 still produces the same value. But the encoding is
1 byte longer in some cases.
Android (Google) Code Review [Wed, 3 Jun 2009 09:06:49 +0000 (02:06 -0700)]
Merge change 2454 into donut
* changes:
Reactivating tests disabled because of ClassLoader loop
Android (Google) Code Review [Mon, 1 Jun 2009 23:36:01 +0000 (16:36 -0700)]
Merge change 2619 into donut
* changes:
InetAddress: Stop logging DNS lookups to logcat.
Mike Lockwood [Thu, 28 May 2009 14:19:17 +0000 (10:19 -0400)]
InetAddress: Stop logging DNS lookups to logcat.
Logging all DNS lookups system wide raises privacy concerns to me
and might make people less likely to include logs in their bug reports.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Urs Grob [Wed, 29 Apr 2009 15:01:24 +0000 (17:01 +0200)]
Reactivating tests disabled because of ClassLoader loop
Since ClassLoader.isAncestorOf has been fixed these tests now succeed.
So they can be reactivated.
BUG=
1732214
Mihai Preda [Mon, 25 May 2009 20:00:34 +0000 (22:00 +0200)]
Bug
1844104: Fix buffer overwrite bugs in CharsetEncoderICU and CharsetDecoderICU.
And add unit test.
t.mehrvarz [Sat, 28 Feb 2009 06:25:46 +0000 (07:25 +0100)]
Code to reuse PlatformAddress objects. Minimizing garbage creation on the framework level and reducing the number of runtime GC-hiccups for OpenGL apps and animations.
2nd version: complete rewrite using 8 bit hash, up to 5 probes, cycle through probes cache replacement. (Thank you MichaelDt for your help.)
- 1st amend: applied requested modifications
- 2nd amend: comment openers, curly bracket
Android (Google) Code Review [Wed, 20 May 2009 00:33:25 +0000 (17:33 -0700)]
Merge change 1987 into donut
* changes:
Add tracing of native function calls to Dalvik.
Jack Veenstra [Tue, 19 May 2009 21:36:48 +0000 (14:36 -0700)]
Add tracing of native function calls to Dalvik.
Dalvik already traces Java method calls but it doesn't trace JNI calls.
This adds new trace records for JNI calls.
Andy McFadden [Fri, 15 May 2009 20:44:29 +0000 (13:44 -0700)]
Increase the number of entries set aside for zygote initiating loader lists.
The number of classes that are present when the zygote finishes
initializing increased in donut/master, above the 2000 we currently
plan for. Exceeding the limit reduces zygote sharing efficiency, so
this change raises the limit.
Andy McFadden [Thu, 14 May 2009 17:03:45 +0000 (10:03 -0700)]
Wrote Dalvik "porting guide".
Andy McFadden [Wed, 13 May 2009 17:43:08 +0000 (10:43 -0700)]
Fix handling of "--dev" argument in dalvik tests.
This was originally part of p9-144240, which was only made in "master".
Android (Google) Code Review [Mon, 11 May 2009 21:49:39 +0000 (14:49 -0700)]
Merge change 1400 into donut
* changes:
Increase default stack size from 8K to 12K.
Andy McFadden [Mon, 11 May 2009 21:39:13 +0000 (14:39 -0700)]
Increase default stack size from 8K to 12K.
For internal bug
1844105.
Andy Stadler [Mon, 11 May 2009 21:15:32 +0000 (14:15 -0700)]
am
64b928e: AI 148694: Manually copied from cupcake_dcm CL 148669-p9. W
Merge commit '
64b928e82a3b91b339ff9ee980c4a0c020daa251' into donut
* commit '
64b928e82a3b91b339ff9ee980c4a0c020daa251':
AI 148694: Manually copied from cupcake_dcm CL 148669-p9. When resetting the
Andy Stadler [Mon, 11 May 2009 21:03:58 +0000 (14:03 -0700)]
AI 148694: Manually copied from cupcake_dcm CL 148669-p9. When resetting the
mode of the encoder, clear the leftover input & output buffers.
This claims to fix buffer overwriting we're seeing during account
sync and message download.
BUG=
1822859
Automated import of CL 148694
Dan Bornstein [Mon, 11 May 2009 20:40:57 +0000 (13:40 -0700)]
am
974cdcd: AI 148692: Merge change #148679 into Cupcake, since we proba
Merge commit '
974cdcdc22ce05a0574bf7f2559a175c8d9434e9' into donut
* commit '
974cdcdc22ce05a0574bf7f2559a175c8d9434e9':
AI 148692: Merge change #148679 into Cupcake, since we probably want to
Dan Bornstein [Mon, 11 May 2009 20:39:31 +0000 (13:39 -0700)]
AI 148692: Merge change #148679 into Cupcake, since we probably want to
take it for rel if there's an opportunity. Original
description:
Fix InputStreamReader to not drop input on buffer boundaries.
This fix takes the salient code from Harmony tip-of-tree,
though it's not a wholesale replacement of the file. In
particular, I left in the old encoding name handling as well
as one remaining "FIXME" that I don't think would have been
addressed.
BUG=
1836908
Automated import of CL 148692
Android (Google) Code Review [Mon, 11 May 2009 17:46:25 +0000 (10:46 -0700)]
Merge change 1369 into donut
* changes:
Updated a comment.
Andy McFadden [Mon, 11 May 2009 17:44:52 +0000 (10:44 -0700)]
Updated a comment.
Jorg Pleumann [Mon, 11 May 2009 17:12:32 +0000 (10:12 -0700)]
am
2de2459: AI 148670: More tests that need to be marked broken, since
Merge commit '
2de2459caf88698400b7bcadaf87b5767b22f81e' into donut
* commit '
2de2459caf88698400b7bcadaf87b5767b22f81e':
AI 148670: More tests that need to be marked broken, since
Jorg Pleumann [Mon, 11 May 2009 17:10:42 +0000 (10:10 -0700)]
AI 148670: More tests that need to be marked broken, since
they behave differently in CTS and plain VM.
Hopefully the last ones...
BUG=
1285921
Automated import of CL 148670
Andy McFadden [Fri, 8 May 2009 22:26:33 +0000 (15:26 -0700)]
Pull the useful part of p9-132414 over to "donut".
This was inspired by some valgrind complaints marcone noticed. The change
is already part of "master".
(I just noticed that the comment isn't quite right, but hopefully if I leave
it alone it'll merge trivially and I can fix it up in a subsequent change.)
Jorg Pleumann [Thu, 7 May 2009 16:25:18 +0000 (09:25 -0700)]
am
c423b40: AI 148447: Marking some more tests as broken, because they
Merge commit '
c423b4096a09b1c1eae05b8ef37e7e3c428e0b92' into donut
* commit '
c423b4096a09b1c1eae05b8ef37e7e3c428e0b92':
AI 148447: Marking some more tests as broken, because they
Jorg Pleumann [Thu, 7 May 2009 16:22:59 +0000 (09:22 -0700)]
AI 148447: Marking some more tests as broken, because they
don't work properly in the CTS environment for
some reason.
BUG=
1285921
Automated import of CL 148447
Jorg Pleumann [Thu, 7 May 2009 08:36:27 +0000 (01:36 -0700)]
am
2f563a4: AI 148431: Marking as broken a couple of tests
Merge commit '
2f563a4590c4a0e54177906c47d50f4ef454eba5' into donut
* commit '
2f563a4590c4a0e54177906c47d50f4ef454eba5':
AI 148431: Marking as broken a couple of tests
Jorg Pleumann [Thu, 7 May 2009 08:35:52 +0000 (01:35 -0700)]
AI 148431: Marking as broken a couple of tests
that tend to fail in the CTS host.
BUG=
1285921
Automated import of CL 148431
Android (Google) Code Review [Wed, 6 May 2009 23:38:16 +0000 (16:38 -0700)]
Merge change 1003 into donut
* changes:
Add support for tracing Java method entry/exit in emulator.
Jack Veenstra [Tue, 5 May 2009 18:29:51 +0000 (11:29 -0700)]
Add support for tracing Java method entry/exit in emulator.
This is part of a larger change and depends on changes to the
kernel and the emulator tracing code. The code used to work by
by writing to a "magic page" which the emulator would notice
because it watches every load and store. But the emulator lost
the ability to watch every load and store with the latest update
to qemu. So the new code sets up a memory-mapped page that the
emulator watches. This is cleaner and more efficient anyway.
Android (Google) Code Review [Wed, 6 May 2009 18:41:05 +0000 (11:41 -0700)]
Merge change 1055 into donut
* changes:
Fix issue
1687880.
Jing Yu [Wed, 6 May 2009 03:34:38 +0000 (20:34 -0700)]
Fix issue
1687880.
Change argument va_list to a standard representation.
Andy McFadden [Tue, 5 May 2009 23:52:10 +0000 (16:52 -0700)]
Added XML output mode for dexdump.
This adds an output mode that looks similar to the "current.xml" we
generate for our public APIs. There are a number of differences in
content. The original ("plain") output has not been altered.
I pulled in the bad checksum handling change (internal 142686) since
it's small, has turned out to be useful, and might make the merge of
this to master slightly easier.
This also renames a buffer in the ongoing temp file variable saga.
Android (Google) Code Review [Tue, 5 May 2009 18:15:46 +0000 (11:15 -0700)]
Merge change 993 into donut
* changes:
Pull fix from master branch, and correct filename juggling.
Andy McFadden [Tue, 5 May 2009 17:45:51 +0000 (10:45 -0700)]
Pull fix from master branch, and correct filename juggling.
The original fix was in p4 144906. This also corrects some problems that
arise when the temp file is specified.
Android (Google) Code Review [Mon, 4 May 2009 20:32:58 +0000 (13:32 -0700)]
Merge change 945 into donut
* changes:
Moved the context class loader init down a bit to ensure proper init.
Andy McFadden [Mon, 4 May 2009 20:29:30 +0000 (13:29 -0700)]
Moved the context class loader init down a bit to ensure proper init.
Since we're executing interpreted code it's best if we set the context
class loader as late as possible in this function. I also updated a few
comments while I was in there.
Android (Google) Code Review [Mon, 4 May 2009 19:58:07 +0000 (12:58 -0700)]
Merge change 944 into donut
* changes:
Set the main thread's context class loader to the system class loader.
Andy McFadden [Mon, 4 May 2009 19:52:57 +0000 (12:52 -0700)]
Set the main thread's context class loader to the system class loader.
Andy McFadden [Mon, 4 May 2009 19:28:51 +0000 (12:28 -0700)]
Test for null object in the Get<Type>Field and Set<Type>Field JNI functions.
Also adds some "return" calls after abortMaybe(), since it won't actually
abort if "warnonly" is set.
Android (Google) Code Review [Fri, 1 May 2009 19:27:34 +0000 (12:27 -0700)]
Merge change 891 into donut
* changes:
Corrected behavior of Constructor.newInstance on abstract classes.
Andy McFadden [Fri, 1 May 2009 00:47:50 +0000 (17:47 -0700)]
Corrected behavior of Constructor.newInstance on abstract classes.
The VM now throws an exception when somebody tries to create an instance
of an abstract class through a Constructor object. It also ensures that
the class is initialized before attempting to create an instance.
This change adds some Constructor tests to the 042-new-instance VM test.
(It also pulls in some additions that were made to the 042 test back
in March, on the p4 master branch.)
Android (Google) Code Review [Fri, 1 May 2009 18:31:23 +0000 (11:31 -0700)]
Merge change 818 into donut
* changes:
Changed the way we check the magic number in guard pages.
Andy McFadden [Mon, 27 Apr 2009 20:19:51 +0000 (13:19 -0700)]
Added two new Dalvik documents.
One explains the use of hprof, the other shows how to use the VM from
the command line. These are partially based on some of my responses
to questions on external mailing lists.
Andy McFadden [Thu, 30 Apr 2009 20:25:59 +0000 (13:25 -0700)]
Changed the way we check the magic number in guard pages.
Use memcmp instead of "==" so that, if the pointer is unaligned on a
platform where alignment matters, we fail with a nice warning instead
of a bus error.
Found while tracking down bug
1823434.
Barry Hayes [Mon, 6 Apr 2009 17:03:48 +0000 (10:03 -0700)]
Improve zygote heap sharing.
[ This is bhayes change 9488 in external "master" ]
Lots of ClassObject structures are unshared [and thus make whole pages
unshared]. A big contributor to this is the initializing class loader
logic, which has two writable words in a ClassObject and does indeed
seem to write them a lot.
Class which are created "early" have a low serial number and are
probably being created by the zygote, and would benefit from better
sharing. This change move the two words for classes with a low serial
number to a global, making the two words in those ClassObjects unused,
and thus more likely to be shared across apps.
Measured increase in sharing is c 100K per app, at a cost of c 32K
increase in unshared globals.
This might be better as a Set<Pair<Class,ClassLoader>> or
something. Many ClassObjects have zero loaders, and the typical count
seems to be very small. It should be possible to remove the two words
from the ClassObject and at the same time have a smaller global data
structure.
Respond to reviewer's comments.
Moved the "external" InitiatingLoaderList[] from gDvm to allocated storage.
Made the warning for the "const" go away.
Remove "vm/Init.c" from the commit
Revert Globals.h to not contain ZYGOTE_CLASS_CUTOFF
Use calloc rather than malloc/clear
Aaron Kushner [Wed, 29 Apr 2009 09:57:17 +0000 (02:57 -0700)]
The Android.mk file in libcore was writing a test
file outside of the Android build directory and was
not getting cleaned up after the build.
Jorg Pleumann [Wed, 29 Apr 2009 04:53:13 +0000 (21:53 -0700)]
am
14da4cc: AI 147896: Some more fixes for tests that failed in
Merge commit '
14da4ccdd69d8db7cef00b2ae5aabd32b6e1bdb4' into donut
* commit '
14da4ccdd69d8db7cef00b2ae5aabd32b6e1bdb4':
AI 147896: Some more fixes for tests that failed in
Jorg Pleumann [Wed, 29 Apr 2009 04:53:12 +0000 (21:53 -0700)]
am
ef71222: AI 147838: A couple of fixes for making the
Merge commit '
ef7122278207e33b724c6360945f9eae1f9a5a58' into donut
* commit '
ef7122278207e33b724c6360945f9eae1f9a5a58':
AI 147838: A couple of fixes for making the
Scott Main [Wed, 29 Apr 2009 04:53:12 +0000 (21:53 -0700)]
am
4645b7c: AI 147732: fix broken links
Merge commit '
4645b7c3a461769281a0b2b846a26c79e806aaa0' into donut
* commit '
4645b7c3a461769281a0b2b846a26c79e806aaa0':
AI 147732: fix broken links
Jorg Pleumann [Wed, 29 Apr 2009 04:53:12 +0000 (21:53 -0700)]
am
210c512: AI 147726: Getting rid of tests.luni.AllTests and
Merge commit '
210c51215f36a78183de70a19987dc2ece2fda30' into donut
* commit '
210c51215f36a78183de70a19987dc2ece2fda30':
AI 147726: Getting rid of tests.luni.AllTests and
Jorg Pleumann [Wed, 29 Apr 2009 04:53:11 +0000 (21:53 -0700)]
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
Urs Grob [Wed, 29 Apr 2009 04:53:11 +0000 (21:53 -0700)]
am
3fb3946: AI 147687: Several fixes for failing tests in the cts host.
Merge commit '
3fb3946640bdc1294131417ac6593a789373090d' into donut
* commit '
3fb3946640bdc1294131417ac6593a789373090d':
AI 147687: Several fixes for failing tests in the cts host. also tests that timeout
Urs Grob [Wed, 29 Apr 2009 04:53:11 +0000 (21:53 -0700)]
am
119c75d: AI 147660: Fixes for tests in the security module.
Merge commit '
119c75dad5494ac611c74599747e4bdc071eced1' into donut
* commit '
119c75dad5494ac611c74599747e4bdc071eced1':
AI 147660: Fixes for tests in the security module.