OSDN Git Service
Jean-Baptiste Queru [Mon, 6 Jul 2009 22:28:37 +0000 (15:28 -0700)]
Jean-Baptiste Queru [Mon, 6 Jul 2009 22:28:18 +0000 (15:28 -0700)]
Jean-Baptiste Queru [Mon, 6 Jul 2009 22:27:51 +0000 (15:27 -0700)]
Jean-Baptiste Queru [Mon, 6 Jul 2009 22:27:37 +0000 (15:27 -0700)]
Merge commit '
9b0e83401b0ade80e1943c2cc16ef5ec9b46eef5' into merge_korg_master
Conflicts:
vm/oo/Class.c
vm/oo/Object.h
Jean-Baptiste Queru [Mon, 6 Jul 2009 22:26:10 +0000 (15:26 -0700)]
Android (Google) Code Review [Mon, 6 Jul 2009 20:42:35 +0000 (13:42 -0700)]
Merge change 6122
* changes:
Add mterp stub collection to aid porting.
Andy McFadden [Thu, 2 Jul 2009 20:53:09 +0000 (13:53 -0700)]
Add mterp stub collection to aid porting.
For some of the more complex Dalvik operations it can be handy to see
what gcc outputs in similar circumstances. This adds a file filled with
"trivial" operations to the Dalvik porting documentation.
Android (Google) Code Review [Mon, 6 Jul 2009 18:02:44 +0000 (11:02 -0700)]
am
ec537042: Merge change 6098 into donut
Merge commit '
ec537042338c000af4526099599e128be63bee68'
* commit '
ec537042338c000af4526099599e128be63bee68':
Commented out invalid test.
Android (Google) Code Review [Mon, 6 Jul 2009 16:12:44 +0000 (09:12 -0700)]
am
ab4b7f70: Merge change 5967 into donut
Merge commit '
ab4b7f704313075838517ffec400dc5b6250c67c'
* commit '
ab4b7f704313075838517ffec400dc5b6250c67c':
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
Andy McFadden [Mon, 6 Jul 2009 16:09:47 +0000 (09:09 -0700)]
Merge commit '
a8e9edde' into manualmerge
Andy McFadden [Mon, 6 Jul 2009 14:34:06 +0000 (07:34 -0700)]
Merge commit '
e260e580' into manualmerge
crazybob [Thu, 2 Jul 2009 22:23:24 +0000 (15:23 -0700)]
am
4ce12e65: 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.
Merge commit '
4ce12e65bb5fb7cb0eaa131e8b5c0b740e8e359e'
* commit '
4ce12e65bb5fb7cb0eaa131e8b5c0b740e8e359e':
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.
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.
Andy McFadden [Tue, 30 Jun 2009 23:14:30 +0000 (16:14 -0700)]
Fix fill-array-data on big-endian systems.
The array data comes out of the instruction stream, which is swapped as
if it were a stream of 16-bit code units. This is great for char/short
array data, but comes out wrong for everything else.
This was verified by an external developer with big-endian MIPS hardware.
Should be no change for ARM.
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.
Andy McFadden [Tue, 30 Jun 2009 00:04:04 +0000 (17:04 -0700)]
Inline some java.lang.Math functions.
For a first pass, I inlined the various flavors of abs(), min()/max() on
integers, sqrt(), cos(), and sin(). These were selected based on a
static analysis of a few of our jar files.
A test of repeated sin/cos/sqrt calls on a G1-class device showed an
improvement of 28%. This would improve more on devices with VFP
support if the VM is compiled with -mfpu=vfp.
Also: clarified a warning and removed some "#if 0" stuff.
San Mehat [Mon, 29 Jun 2009 23:36:32 +0000 (16:36 -0700)]
am
3e371e2e: dalvik: thread: Set the control group of a thread to the background group if the priority is logically-lower than ANDROID_PRIORITY_BACKGROUND
Merge commit '
3e371e2ebbeeefe176ba1357e6ff241bd13a711e'
* commit '
3e371e2ebbeeefe176ba1357e6ff241bd13a711e':
dalvik: thread: Set the control group of a thread to the background group
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>
Android (Google) Code Review [Fri, 26 Jun 2009 14:24:45 +0000 (07:24 -0700)]
Merge change 5440
* changes:
"External allocation" tracking for direct buffers.
Andy McFadden [Thu, 4 Jun 2009 21:34:14 +0000 (14:34 -0700)]
"External allocation" tracking for direct buffers.
The native memory allocated for ByteBuffer.allocateDirect was not being
tracked by the VM's "external allocation" mechanism. This adds the
necessary calls to the Harmony OSMemory allocator, which is what
actually calls malloc().
The external alloc stuff just takes size values, so we tuck a copy of
the allocation size into the allocated block, and pull it out when it's
time to free the memory.
(Includes in a couple of other changes that I had to commit somewhere so
I could sync.)
Android (Google) Code Review [Thu, 25 Jun 2009 19:36:11 +0000 (12:36 -0700)]
Merge change 5292
* changes:
Collect per-method code size statistics to show compiled vs overall Dalvik portion and total native code size.
Android (Google) Code Review [Thu, 25 Jun 2009 14:25:59 +0000 (07:25 -0700)]
am
7d8220a4: Merge change 5286 into donut
Merge commit '
7d8220a4d0193b85efd7d289cbff3617f56ef0a9'
* commit '
7d8220a4d0193b85efd7d289cbff3617f56ef0a9':
Check for failure in GetDirectBufferAddress.
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.
Ben Cheng [Thu, 25 Jun 2009 00:27:07 +0000 (17:27 -0700)]
Collect per-method code size statistics to show compiled vs overall Dalvik portion and total native code size.
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 23:19:10 +0000 (16:19 -0700)]
am
0f0ae023: Add FileDescriptor variation of startMethodTracing().
Merge commit '
0f0ae023a3a53f7c9e254283b50a0099781acb79'
* commit '
0f0ae023a3a53f7c9e254283b50a0099781acb79':
Add FileDescriptor variation of startMethodTracing().
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 [Wed, 24 Jun 2009 20:53:34 +0000 (13:53 -0700)]
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.
Ben Cheng [Tue, 23 Jun 2009 05:53:35 +0000 (22:53 -0700)]
Shutdown the compiler thread before the dvmSlayDaemons call is made.
Ben Cheng [Mon, 22 Jun 2009 21:45:16 +0000 (14:45 -0700)]
The address of dvmMterpCommonExceptionThrown should be loaded in a position-independent way since these handlers are copied into the code cache.
BTW fixed a couple recently introduced compiler warnings in Codegen.c.
Bill Buzbee [Fri, 19 Jun 2009 23:02:27 +0000 (16:02 -0700)]
New threshold mechanism for trace selections. Intended to reduce number of junk traces.
Android (Google) Code Review [Mon, 22 Jun 2009 18:21:12 +0000 (11:21 -0700)]
Merge change 4935
* changes:
Instance_of should return false if reference is NULL.
Ben Cheng [Mon, 22 Jun 2009 17:50:07 +0000 (10:50 -0700)]
Instance_of should return false if reference is NULL.
Andy McFadden [Fri, 19 Jun 2009 23:52:19 +0000 (16:52 -0700)]
Use paired immediates for large constants.
The double-to-int and double-to-long instructions were loading constants
from .word directives, which wastes space in the CPU data cache. This
replaces a single LDR with a pair of data operations.
We don't actually use the double-to-long handler (the ARM EABI lib
does the right thing), and double-to-int is handled by VFP on newer
devices, but on older devices this may help a smidgeon. Mostly it just
looks nicer when you don't have .words lying around.
Also picks up a change that should be in the armv7-a generated file but
got lost in all of today's various mergings (float compare tweak).
Andy McFadden [Fri, 19 Jun 2009 22:20:12 +0000 (15:20 -0700)]
Added ARMv6T2 experiment.
These adds replacements for handlers that benefit from the use of new
instructions introduced in ARMv6T2 (notably UBFX, unsigned bit-field
extraction). This also adds an "armv7-a" mterp config file.
The benchmark improvement was tiny, so there's no real motivation to
convince the build system to use them.
This also includes an interleave fix for binop2addr.
Android (Google) Code Review [Fri, 19 Jun 2009 21:18:35 +0000 (14:18 -0700)]
Merge change 4809
* changes:
Warn when one handler replaces another.
Android (Google) Code Review [Fri, 19 Jun 2009 21:06:54 +0000 (14:06 -0700)]
Merge change 4798
* changes:
Replace an iterator with a traditional for loop, to reduce object allocations and memory usage.
Andy McFadden [Fri, 19 Jun 2009 20:19:01 +0000 (13:19 -0700)]
Warn when one handler replaces another.
The mterp generation script silently allows you to specify handlers for
the same opcode more than once. This can cause some confusion. We now
issue a warning when that happens.
This also reduces the overall verbosity level, so the warnings are
visible.
Marco Nelissen [Fri, 19 Jun 2009 19:44:08 +0000 (12:44 -0700)]
Replace an iterator with a traditional for loop, to reduce object allocations and memory usage.
Andy McFadden [Fri, 19 Jun 2009 17:00:14 +0000 (10:00 -0700)]
Improve interleave on VFP compare.
Improves FloatOps/FloatOpsD from 229/230ns to 228/229ns, an exciting
half-percentage-point gain.
Android (Google) Code Review [Fri, 19 Jun 2009 14:25:04 +0000 (07:25 -0700)]
Merge change 4695
* changes:
Quick experiment with ARMv6 instructions.
Andy McFadden [Thu, 18 Jun 2009 23:37:34 +0000 (16:37 -0700)]
Quick experiment with ARMv6 instructions.
This is a commented-out experiment with ARMv6 instructions, which our
existing products support. (We can't use these unless we want to define
an ARMv6 target. For what we gain with these, it's not worthwhile.)
Bill Buzbee [Thu, 18 Jun 2009 23:01:22 +0000 (16:01 -0700)]
Neglected to rebuild template/out/* and mterp/out* in #4536
Android (Google) Code Review [Thu, 18 Jun 2009 21:50:18 +0000 (14:50 -0700)]
Merge change 4658
* changes:
Bump the VM version.
Android (Google) Code Review [Thu, 18 Jun 2009 21:36:37 +0000 (14:36 -0700)]
Merge change 4657
* changes:
Method override tests.
Andy McFadden [Thu, 18 Jun 2009 21:22:22 +0000 (14:22 -0700)]
Bump the VM version.
This should have been incremented when OP_THROW_VERIFICATION_ERROR was
added, since older VMs won't be able to handle the odex we generate.
Dropped the log level on the warning.
Andy McFadden [Thu, 18 Jun 2009 21:15:23 +0000 (14:15 -0700)]
Method override tests.
Test various method overrides, especially those that the compiler
doesn't allow (public vs. private, static vs. virtual). This doesn't
succeed right now because of the way the verifier deals with static and
virtual methods (internal bug
1752800).
Bill Buzbee [Wed, 17 Jun 2009 23:56:19 +0000 (16:56 -0700)]
Trace profiling support for the jit
Andy McFadden [Thu, 18 Jun 2009 18:03:12 +0000 (11:03 -0700)]
Modularize architecture selection.
"make" syntax lacks an "elif", so when you have an N-way choice the
indentation starts to get nasty. This splits the arch/variant handling
into smaller pieces, and uses the "generic" arch if none of the pieces
matched.
Android (Google) Code Review [Thu, 18 Jun 2009 17:31:48 +0000 (10:31 -0700)]
Merge change 4534
* changes:
Reduce VM aborts during high CPU stress.
Android (Google) Code Review [Thu, 18 Jun 2009 00:24:39 +0000 (17:24 -0700)]
Merge change 4495
* changes:
Implemented peephole optimizations including null-check elimination, redundant ld/st elimination, ad-hoc register renaming and store sinking.
Andy McFadden [Wed, 17 Jun 2009 23:29:30 +0000 (16:29 -0700)]
Reduce VM aborts during high CPU stress.
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.
Lorenzo Colitti [Fri, 12 Jun 2009 02:35:46 +0000 (19:35 -0700)]
Use RFC3493-conformant IPv6 headers.
Ben Cheng [Tue, 16 Jun 2009 23:11:47 +0000 (16:11 -0700)]
Implemented peephole optimizations including null-check elimination, redundant ld/st elimination, ad-hoc register renaming and store sinking.
Android (Google) Code Review [Wed, 17 Jun 2009 01:49:39 +0000 (18:49 -0700)]
Merge change 4372
* changes:
Don't throw away the return value of connect().
Android (Google) Code Review [Tue, 16 Jun 2009 23:43:21 +0000 (16:43 -0700)]
am
5f9aa938: Merge change 4334 into donut
Merge commit '
5f9aa93881e796a66c2a625ced1ee89292c2b570'
* commit '
5f9aa93881e796a66c2a625ced1ee89292c2b570':
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
Android (Google) Code Review [Tue, 16 Jun 2009 21:40:02 +0000 (14:40 -0700)]
Merge change 4335
* changes:
Add arm vfp support for the Jit
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).
Bill Buzbee [Tue, 16 Jun 2009 00:00:57 +0000 (17:00 -0700)]
Add arm vfp support for the Jit
Lorenzo Colitti [Tue, 16 Jun 2009 19:43:23 +0000 (12:43 -0700)]
Don't throw away the return value of connect().
Andy McFadden [Tue, 16 Jun 2009 19:10:04 +0000 (12:10 -0700)]
Don't init class during reflection signature scan.
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.
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).
Android (Google) Code Review [Tue, 16 Jun 2009 14:20:44 +0000 (07:20 -0700)]
Merge change 4254
* changes:
Treat some right shifts as narrowing conversions.
Lorenzo Colitti [Mon, 15 Jun 2009 18:02:24 +0000 (11:02 -0700)]
Define wrappers for connect() and bind() to support IPv6.
Andy McFadden [Fri, 12 Jun 2009 14:26:17 +0000 (07:26 -0700)]
Treat some right shifts as narrowing conversions.
Java bytecode optimizers like ProGuard will remove explicit integer
width conversions from certain sequences. For example, after
right-shifting an integer 24 times, an int-to-byte instruction is
redundant.
This change teaches the verifier that right shifts sometimes reduce
(or at least don't increase) the width of an integer. Previously, the
result of a right shift was always a full-sized int.
Nagendra Modadugu [Mon, 15 Jun 2009 20:56:55 +0000 (13:56 -0700)]
am
ed3c841b: Adding: QuoVadis Root Certification Authority QuoVadis Root CA 2 QuoVadis Root CA 3
Merge commit '
ed3c841bc7f1100ad827146bae062e5458812fa9'
* commit '
ed3c841bc7f1100ad827146bae062e5458812fa9':
Adding:
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 [Mon, 15 Jun 2009 18:39:29 +0000 (11:39 -0700)]
am
593d6c7c: Copy the correct number of bytes for IPv6 addresses in InetAddress_gethostbyaddr
Merge commit '
593d6c7c4c08c82b361dcc08c20a0120aaaacf49'
* commit '
593d6c7c4c08c82b361dcc08c20a0120aaaacf49':
Copy the correct number of bytes for IPv6 addresses in InetAddress_gethostbyaddr
Android (Google) Code Review [Mon, 15 Jun 2009 14:20:57 +0000 (07:20 -0700)]
Merge change 4123
* changes:
Added a VFP utility function for future use.
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
Andy McFadden [Fri, 12 Jun 2009 23:58:02 +0000 (16:58 -0700)]
Added a VFP utility function for future use.
Jesse Wilson [Fri, 12 Jun 2009 15:26:16 +0000 (08:26 -0700)]
am
729c7056: Test and fix for the ArrayList.addAll(), bug 2954.
Merge commit '
729c70568dac17c7178bbeccdde39fc21b9d5c1c'
* commit '
729c70568dac17c7178bbeccdde39fc21b9d5c1c':
Test and fix for the ArrayList.addAll(), bug 2954.
Android (Google) Code Review [Fri, 12 Jun 2009 14:27:46 +0000 (07:27 -0700)]
Merge change 3997
* changes:
Rename vfp to arm-vfp.
Jesse Wilson [Fri, 12 Jun 2009 00:35:12 +0000 (17:35 -0700)]
Test and fix for the ArrayList.addAll(), bug 2954.
Android (Google) Code Review [Fri, 12 Jun 2009 00:46:33 +0000 (17:46 -0700)]
Merge change 4006
* changes:
Test and fix for the ArrayList.addAll(), bug 2954.
Jesse Wilson [Fri, 12 Jun 2009 00:35:12 +0000 (17:35 -0700)]
Test and fix for the ArrayList.addAll(), bug 2954.
Andy McFadden [Fri, 12 Jun 2009 00:10:29 +0000 (17:10 -0700)]
Rename vfp to arm-vfp.
Dan Bornstein [Thu, 11 Jun 2009 22:03:11 +0000 (15:03 -0700)]
Give dx a large max heap size by default.
Android (Google) Code Review [Thu, 11 Jun 2009 21:54:36 +0000 (14:54 -0700)]
Merge change 2279
* changes:
Updating archive to Harmony r772995.
Dan Bornstein [Wed, 10 Jun 2009 23:31:46 +0000 (16:31 -0700)]
am
32c0ded2: Fix internal issue #
1898791 ("PlatformAddressFactory PlatformAddress cache causes memory to not be freed in a timely manner.").
Merge commit '
32c0ded21ec8cd40f27015b4e65ec6a1bd78ef9a'
* commit '
32c0ded21ec8cd40f27015b4e65ec6a1bd78ef9a':
Fix internal issue #
1898791 ("PlatformAddressFactory PlatformAddress cache
Android (Google) Code Review [Wed, 10 Jun 2009 22:13:32 +0000 (15:13 -0700)]
Merge change 3764
* changes:
Allow {iput,sput}-boolean on a byte value.
Andy McFadden [Wed, 10 Jun 2009 21:11:07 +0000 (14:11 -0700)]
Allow {iput,sput}-boolean on a byte value.
javac generates code that can only be understood as storing a byte value
into a boolean field. The verifier now allows this.
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.
Android (Google) Code Review [Wed, 10 Jun 2009 17:46:30 +0000 (10:46 -0700)]
Merge change 3512
* changes:
At least mostly-fix internal issue #
1898095 / public issue #2868.
Android (Google) Code Review [Tue, 9 Jun 2009 23:37:04 +0000 (16:37 -0700)]
Merge change 3625
* changes:
Bump from 1.0.1 to 1.1.0.
Dan Bornstein [Tue, 9 Jun 2009 00:21:06 +0000 (17:21 -0700)]
At least mostly-fix internal issue #
1898095 / public issue #2868.
The problem is that Scala code may have two variables with the same
name that are simultaneously active, and dx didn't expect that ever to
be the case. The fix is simply to catch another case where a local
variable might be considered to become superfluous due to having an
empty extent. However, this is really more of a workaround, as the
result will be that such code when attached to a debugger will only
show one of the two (or more) same-named variables as being active at
any given time.
The thing that prevents a more satisfactory solution is that the
optimization code can end up "splitting up" a single local into
multiple registers, and the only way we have to track them is by
name/type. So, even without Scala's rules, it was already possible to
find a same-named local in multiple registers, but with the status
quo, finding that really meant that a local was moving from one
register to another. The local variable table code handles that case
by automatically "ending" variables that appear to move, and the Scala
case looks just like that.
In the long run, we probably want to have a way to tag local variables
that isn't just name/type, but that will have to come later.
(As a bonus, I did some minor renaming for clarity while I was in the
territory.)
Jesse Wilson [Fri, 22 May 2009 00:39:08 +0000 (17:39 -0700)]
Updating archive to Harmony r772995.
Squashed commit of the following:
Adding @TestTargetNew tags
Initial merge of branch 'archive_772995' into archive_dalvik.
Fixed some problems, including InflaterInputStream.available()
and JarFile.skip() bugs.
Conflicts:
libcore/archive/.classpath
libcore/archive/META-INF/MANIFEST.MF
libcore/archive/build.xml
libcore/archive/make/hyproperties.xml
libcore/archive/src/main/java/java/util/jar/Attributes.java
libcore/archive/src/main/java/java/util/jar/JarEntry.java
libcore/archive/src/main/java/java/util/jar/JarException.java
libcore/archive/src/main/java/java/util/jar/JarFile.java
libcore/archive/src/main/java/java/util/jar/JarInputStream.java
libcore/archive/src/main/java/java/util/jar/JarVerifier.java
libcore/archive/src/main/java/java/util/jar/Manifest.java
libcore/archive/src/main/java/java/util/jar/Pack200.java
libcore/archive/src/main/java/java/util/zip/Adler32.java
libcore/archive/src/main/java/java/util/zip/CRC32.java
libcore/archive/src/main/java/java/util/zip/Checksum.java
libcore/archive/src/main/java/java/util/zip/DataFormatException.java
libcore/archive/src/main/java/java/util/zip/Deflater.java
libcore/archive/src/main/java/java/util/zip/DeflaterOutputStream.java
libcore/archive/src/main/java/java/util/zip/GZIPInputStream.java
libcore/archive/src/main/java/java/util/zip/GZIPOutputStream.java
libcore/archive/src/main/java/java/util/zip/Inflater.java
libcore/archive/src/main/java/java/util/zip/InflaterInputStream.java
libcore/archive/src/main/java/java/util/zip/ZipEntry.java
libcore/archive/src/main/java/java/util/zip/ZipException.java
libcore/archive/src/main/java/java/util/zip/ZipFile.java
libcore/archive/src/main/java/java/util/zip/ZipInputStream.java
libcore/archive/src/main/java/java/util/zip/ZipOutputStream.java
libcore/archive/src/main/java/org/apache/harmony/archive/internal/nls/Messages.java
libcore/archive/src/main/native/archive/shared/archiveglob.c
libcore/archive/src/main/native/archive/shared/jarfile.c
libcore/archive/src/main/native/archive/shared/zip.c
libcore/archive/src/main/native/archive/shared/zip.h
libcore/archive/src/main/native/archive/unix/makefile
libcore/archive/src/main/native/archive/windows/makefile
libcore/archive/src/main/native/java_util_zip_Adler32.c
libcore/archive/src/main/native/java_util_zip_CRC32.c
libcore/archive/src/main/native/java_util_zip_Deflater.c
libcore/archive/src/main/native/java_util_zip_Inflater.c
libcore/archive/src/main/native/zip/shared/hyzip.nls
libcore/archive/src/main/native/zip/unix/makefile
libcore/archive/src/main/native/zipsup.h
libcore/archive/src/main/native/zlib/unix/makefile
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/AttributesNameTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/AttributesTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarEntryTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarFileTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarInputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarOutputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/ManifestTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/GZIPInputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/GZIPOutputStreamTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/InflaterTest.java
libcore/archive/src/test/java/org/apache/harmony/archive/tests/java/util/zip/ZipFileTest.java
commit
946f165f5b592f4453fd8f2c19766921544d38dd
Author: Jesse Wilson <jessewilson@google.com>
Date: Tue May 12 15:12:55 2009 -0700
Strip @Since Android 1.0 from Archive
commit
3498f216d7e826bfc9c4cc7c0da35830ca239367
Author: Jesse Wilson <jessewilson@google.com>
Date: Tue May 12 15:09:05 2009 -0700
Dalvik archive
commit
62e9db90bc6aa6b5d1c897cccdd616d812672677
Author: Jesse Wilson <jessewilson@google.com>
Date: Tue May 12 15:07:51 2009 -0700
Archive 772995
commit
d1bf618681d6badf1b50edaf204a083d3912213d
Author: Jesse Wilson <jessewilson@google.com>
Date: Tue May 12 15:06:36 2009 -0700
Archive 527399
Andy McFadden [Tue, 9 Jun 2009 21:15:53 +0000 (14:15 -0700)]
Bump from 1.0.1 to 1.1.0.
Give it a bump for JIT and precise GC.
Bill Buzbee [Tue, 9 Jun 2009 16:20:16 +0000 (09:20 -0700)]
Makes the primary Jit table growable. Also includes a change suggested earlier by Dan to use a pre-defined mask in the hash function. Reduce the default JitTable size from 2048 entries to 512 entries.
Update per Ben's comments.
Android (Google) Code Review [Tue, 9 Jun 2009 17:30:24 +0000 (10:30 -0700)]
Merge change 3531
* changes:
Fix two codegen problems: out-of-bound PC-relative addresses and missing branch to the chaining cell at the end of non-branch-ending basic blocks.
Ben Cheng [Tue, 9 Jun 2009 01:25:27 +0000 (18:25 -0700)]
Fix two codegen problems: out-of-bound PC-relative addresses and missing branch to the chaining cell at the end of non-branch-ending basic blocks.
Andy McFadden [Mon, 8 Jun 2009 17:36:02 +0000 (10:36 -0700)]
Correct instruction width for move-wide/16.
We were advancing the PC by 2 code units instead of 3, which made the VM
crash whenever the instruction was used.