OSDN Git Service

android-x86/dalvik.git
12 years agoTransform static values eagerly rather than on use.
Jesse Wilson [Mon, 26 Mar 2012 18:53:18 +0000 (14:53 -0400)]
Transform static values eagerly rather than on use.

Apparently there is some situations where a single static value
may be referenced by multiple sites. Not transforming them eagerly
lead to oversized dex files (and could crash the merge).

Change-Id: I4ac5b9cd621b0fff1e5ba247c9590aa0d562cd65

12 years agoAlways call the native exit hook, even for halt().
Jeff Brown [Fri, 16 Mar 2012 00:40:31 +0000 (17:40 -0700)]
Always call the native exit hook, even for halt().

Change-Id: I6990d66175c4075ab3357c9be1486c11eceb41e5

12 years agoReplace malloc() followed by memset() to zero with calloc()
Iliyan Malchev [Thu, 16 Feb 2012 19:23:36 +0000 (11:23 -0800)]
Replace malloc() followed by memset() to zero with calloc()

Bionic's calloc() is smart enough to not zero out memory if it gets that memory
from an anonyous mmap.  Thus, if we use malloc for large allocations, we cause
unnecessary memory duplication by following the malloc() with a memset().

An even better approach would be to replace the known large calloc() calls with
dvmAllocRegion() allocation.

Change-Id: Id308f541c9a040d5929bf991b6c2bfdefb823c3c

12 years agoReplace large calloc() with ashmem-backed anonymous mmap
Iliyan Malchev [Wed, 15 Feb 2012 18:47:24 +0000 (10:47 -0800)]
Replace large calloc() with ashmem-backed anonymous mmap

This change eliminates a large amount of memory duplication arising from the
use of a calloc() to initialize auxiliary data structures.  Calloc() calls
memset() to zero out memory after it has been allocated.  That memory may
either be gotten via an anonymous mmap (in which case the memset() is
unnecessary, as the kernel zeros out the memory before handing it to user
space), or it can get recycled by the heap (in which case the memset() is
necessary.)

This becomes a problem for large callocs in any case. In addition, when
initializing aux structures, we create a large sparse array for each DEX file.
The data in each array tends to remain mostly zeroed out, which leads to a lot
of duplicated zero pages.

By switching to anonymous mmaps() instead of calloc(), we keep the zeroed-out
pages together and minimize duplication.

Change-Id: Ic38b78e54acc782a863513a7b1972492e50e099c
Signed-off-by: Iliyan Malchev <malchev@google.com>
12 years agoFix verifier typing for null float arrays.
jeffhao [Mon, 13 Feb 2012 18:54:15 +0000 (10:54 -0800)]
Fix verifier typing for null float arrays.

Since the array is null, the verifier would get confused about its type.
Now it's treated as zero to allow it to be merged later without conflict.

Bug: http://code.google.com/p/android/issues/detail?id=24814

Change-Id: Id7e96f5d2fd4879c9eaa8535c2b9ae95b0b78cff

12 years agoam 67feae03: am 4cda226f: am c1052f9a: Merge "Add a test for a dalvikvm \'switch...
Jean-Baptiste Queru [Mon, 13 Feb 2012 22:42:49 +0000 (14:42 -0800)]
am 67feae03: am 4cda226f: am c1052f9a: Merge "Add a test for a dalvikvm \'switch\' bug."

* commit '67feae038c9e6f076223335aa308f25d24a3a51e':
  Add a test for a dalvikvm 'switch' bug.

12 years agoam 4cda226f: am c1052f9a: Merge "Add a test for a dalvikvm \'switch\' bug."
Jean-Baptiste Queru [Mon, 13 Feb 2012 22:39:57 +0000 (14:39 -0800)]
am 4cda226f: am c1052f9a: Merge "Add a test for a dalvikvm \'switch\' bug."

* commit '4cda226f6917845f491aaea6408b23db5d8d3fd6':
  Add a test for a dalvikvm 'switch' bug.

12 years agoam c1052f9a: Merge "Add a test for a dalvikvm \'switch\' bug."
Jean-Baptiste Queru [Mon, 13 Feb 2012 22:27:37 +0000 (14:27 -0800)]
am c1052f9a: Merge "Add a test for a dalvikvm \'switch\' bug."

* commit 'c1052f9a61539f212885555b0b2c110582f11e28':
  Add a test for a dalvikvm 'switch' bug.

12 years agoMerge "Add a test for a dalvikvm 'switch' bug."
Jean-Baptiste Queru [Mon, 13 Feb 2012 22:23:40 +0000 (14:23 -0800)]
Merge "Add a test for a dalvikvm 'switch' bug."

12 years agoAdd a test for a dalvikvm 'switch' bug.
Elliott Hughes [Fri, 10 Feb 2012 23:15:39 +0000 (15:15 -0800)]
Add a test for a dalvikvm 'switch' bug.

Bug: http://code.google.com/p/android/issues/detail?id=22344
Change-Id: I3bf9f8a0732876d758bc5378c5d25ad0c8a71684

12 years agoam 96ec3f6f: am af140189: Reconcile with ics-mr1-release
The Android Open Source Project [Wed, 1 Feb 2012 18:03:20 +0000 (10:03 -0800)]
am 96ec3f6f: am af140189: Reconcile with ics-mr1-release

* commit '96ec3f6f0748c678201a0f3f63672d46c1b707d0':

12 years agoam af140189: Reconcile with ics-mr1-release
The Android Open Source Project [Wed, 1 Feb 2012 18:00:29 +0000 (10:00 -0800)]
am af140189: Reconcile with ics-mr1-release

* commit 'af140189514d64be270439303eb0f0ab26583af5':

12 years agoam 81894b3a: am 2fe129bf: Merge "Updates to the VM tests."
Jean-Baptiste Queru [Wed, 1 Feb 2012 17:48:38 +0000 (09:48 -0800)]
am 81894b3a: am 2fe129bf: Merge "Updates to the VM tests."

* commit '81894b3aa4215d389a0673826a76a1839f578dcb':
  Updates to the VM tests.

12 years agoam 2fe129bf: Merge "Updates to the VM tests."
Jean-Baptiste Queru [Wed, 1 Feb 2012 17:34:46 +0000 (09:34 -0800)]
am 2fe129bf: Merge "Updates to the VM tests."

* commit '2fe129bf176c32f8b507da813ffa02868ff32604':
  Updates to the VM tests.

12 years agoReconcile with ics-mr1-release
The Android Open Source Project [Wed, 1 Feb 2012 16:49:28 +0000 (08:49 -0800)]
Reconcile with ics-mr1-release

Change-Id: Ib9dd6f8b4d4f3d978450cf0db6a3a598adad6fea

12 years agoMerge "Updates to the VM tests."
Jean-Baptiste Queru [Wed, 1 Feb 2012 16:41:43 +0000 (08:41 -0800)]
Merge "Updates to the VM tests."

12 years agoUpdates to the VM tests.
Elliott Hughes [Wed, 1 Feb 2012 01:55:18 +0000 (17:55 -0800)]
Updates to the VM tests.

Bug: http://code.google.com/p/android/issues/detail?id=21599
Bug: http://code.google.com/p/android/issues/detail?id=21597
Change-Id: I9c6d67cd18943eb6fa68104f0ec2fbec5ea9e0ec

12 years agox86 mterp debug/profile fix (issue 5938080)
buzbee [Mon, 30 Jan 2012 18:44:57 +0000 (10:44 -0800)]
x86 mterp debug/profile fix (issue 5938080)

When profiling or debugging is active, the Dalvik vm calls out to
a helper function to handle any pending debug/profile activities
before and after native invokes.  The assembly code in footer.s
was passing arguments to these routines in the wrong oder.

Issue 5938080

Change-Id: I425eb2bfbee504a70eda8b382f4cf7340e458241

12 years agoFix assert
Andy McFadden [Fri, 27 Jan 2012 21:31:02 +0000 (13:31 -0800)]
Fix assert

Change-Id: If764fe38e215473590a6fe6be910827a38382054

12 years agoTweak Dalvik tests
Andy McFadden [Tue, 24 Jan 2012 19:07:25 +0000 (11:07 -0800)]
Tweak Dalvik tests

030 - adjust sleep duration so it's not a multiple of the 10-second
  timeout (and hence less likely to hit edge)
070 - added tests for all "view buffers", both big and little endian,
  plus a quick check for array() on direct buffers
092 - fixed date format test so it doesn't fail late at night, and
  added a getISO3Language test

Change-Id: Ibc6f1111861a2ec8c69ded28d5e3de08f4ed2bc2

12 years agoam f9d0ce5f: Reconcile with ics-mr1-release
The Android Open Source Project [Mon, 23 Jan 2012 18:41:32 +0000 (10:41 -0800)]
am f9d0ce5f: Reconcile with ics-mr1-release

* commit 'f9d0ce5f917adc46d1940425eff9d0f5b8459ff6':

12 years agoReconcile with ics-mr1-release
The Android Open Source Project [Mon, 23 Jan 2012 18:15:35 +0000 (10:15 -0800)]
Reconcile with ics-mr1-release

Change-Id: Iaa3411a4a3a03f433d2a841b3b48bb6371bd9fba

12 years agoam 7c9027e2: am 1c7e1e14: Fix to dex verifier to handle float types that look like...
jeffhao [Mon, 23 Jan 2012 17:18:13 +0000 (09:18 -0800)]
am 7c9027e2: am 1c7e1e14: Fix to dex verifier to handle float types that look like Boolean.

* commit '7c9027e23fd7096d82964961811103469d21b296':
  Fix to dex verifier to handle float types that look like Boolean.

12 years agomerge in ics-mr1-release history after reset to ics-mr1
The Android Automerger [Sat, 21 Jan 2012 00:11:41 +0000 (16:11 -0800)]
merge in ics-mr1-release history after reset to ics-mr1

12 years agoam 31856263: Reconcile with ics-mr1-release
The Android Open Source Project [Fri, 20 Jan 2012 23:52:22 +0000 (15:52 -0800)]
am 31856263: Reconcile with ics-mr1-release

* commit '318562634a59d1c027dae121799fe6b1b9984500':

12 years agoam f9568520: am 232c385b: Bug fix for control-flow construction involving nested...
Ben Cheng [Fri, 20 Jan 2012 23:48:14 +0000 (15:48 -0800)]
am f9568520: am 232c385b: Bug fix for control-flow construction involving nested loops.

* commit 'f9568520b2196693a41b8703fff0d2ddba31bc8e':
  Bug fix for control-flow construction involving nested loops.

12 years agoMerge "Update and extend Dalvik tests"
Andy McFadden [Fri, 20 Jan 2012 22:34:05 +0000 (14:34 -0800)]
Merge "Update and extend Dalvik tests"

12 years agoTweak UnsatisfiedLinkError
Andy McFadden [Fri, 20 Jan 2012 22:05:24 +0000 (14:05 -0800)]
Tweak UnsatisfiedLinkError

Change this:

  java.lang.UnsatisfiedLinkError: getSuperclass

to this:

  java.lang.UnsatisfiedLinkError: Native method not found:
    java.lang.Class.getSuperclass:()Ljava/lang/Class;

Change-Id: I23bd4350caf743ad9ba3524da0a10107c63af56a

12 years agoUpdate and extend Dalvik tests
Andy McFadden [Fri, 20 Jan 2012 21:37:56 +0000 (13:37 -0800)]
Update and extend Dalvik tests

029 - exercise setDefaultAssertionStatus
031 - enable some tests that were disabled back when our generics
  support didn't exist.  Added new FancyClass test.
034 - print success/fail rather than matching exact exception text
038 - (same as 034)
042 - added new test for bug 5861201, currently disabled
045 - added a bunch of new tests, including one that fails
046 - added new tests, including some for bug 5861201 (the latter
  are disabled)
068 - loadClass() wants class names with dots, not slashes
086 - (same as 068)
087 - (same as 068)
092 - new test, exercises some locale-specific classes
093 - new test, exercises object serialization
094 - new test, exercises regex code

Test 045 now fails, because it's exercising a feature that should
work but doesn't.  All others pass.

Change-Id: I6481bfa88681c4ac8af629cb60797b2708bdeba4

12 years agoam 1c7e1e14: Fix to dex verifier to handle float types that look like Boolean.
jeffhao [Fri, 20 Jan 2012 20:38:09 +0000 (12:38 -0800)]
am 1c7e1e14: Fix to dex verifier to handle float types that look like Boolean.

* commit '1c7e1e149d3dcf3949c76ae594ca9c1ca20392f9':
  Fix to dex verifier to handle float types that look like Boolean.

12 years agoFix to dex verifier to handle float types that look like Boolean.
jeffhao [Wed, 18 Jan 2012 02:18:36 +0000 (18:18 -0800)]
Fix to dex verifier to handle float types that look like Boolean.

Addresses http://code.google.com/p/android/issues/detail?id=23465, where
a Float value is potentially 0x0 or Float.MIN_VALUE (0x1), which combines
into a Boolean type, which should be allowed to be promoted to Float.

(cherry picked from commit 2a249c50903d669d2a9296f0fe407b67646626c8)

Change-Id: I1b81fad5e1e166246535bdfa4b7a98db3b2531bf

12 years agoMerge "Fix to dex verifier to handle float types that look like Boolean."
jeffhao [Thu, 19 Jan 2012 21:29:29 +0000 (13:29 -0800)]
Merge "Fix to dex verifier to handle float types that look like Boolean."

12 years agoReconcile with ics-mr1-release
The Android Open Source Project [Thu, 19 Jan 2012 21:06:27 +0000 (13:06 -0800)]
Reconcile with ics-mr1-release

Change-Id: I69e3e58260f9a81452ac12d0365c8be2a17edc93

12 years agomerge in ics-mr1-release history after reset to ics-mr1
The Android Automerger [Thu, 19 Jan 2012 05:16:51 +0000 (21:16 -0800)]
merge in ics-mr1-release history after reset to ics-mr1

12 years agoam 232c385b: Bug fix for control-flow construction involving nested loops.
Ben Cheng [Thu, 19 Jan 2012 00:27:02 +0000 (16:27 -0800)]
am 232c385b: Bug fix for control-flow construction involving nested loops.

* commit '232c385b9ece322d677a48947ab1e052c1e2427c':
  Bug fix for control-flow construction involving nested loops.

12 years agoBug fix for control-flow construction involving nested loops.
Ben Cheng [Wed, 18 Jan 2012 21:45:57 +0000 (13:45 -0800)]
Bug fix for control-flow construction involving nested loops.

Bug: 5884080
Change-Id: Ic2f42abae3e71f9c0729984902396f92902184a3

12 years agoMerge "Bug fix for control-flow construction involving nested loops."
Ben Cheng [Wed, 18 Jan 2012 22:11:18 +0000 (14:11 -0800)]
Merge "Bug fix for control-flow construction involving nested loops."

12 years agoBug fix for control-flow construction involving nested loops.
Ben Cheng [Wed, 18 Jan 2012 21:45:57 +0000 (13:45 -0800)]
Bug fix for control-flow construction involving nested loops.

Bug: 5884080
Change-Id: Ic2f42abae3e71f9c0729984902396f92902184a3

12 years agoRemove stale assert
buzbee [Wed, 18 Jan 2012 17:42:29 +0000 (09:42 -0800)]
Remove stale assert

Delete a stale assert that can cause problems when running with
the portable interpreter when debugging or profiling.

Change-Id: I354a1fbe280e1baeb885cb51fed1f3e2c8eef159

12 years agoam 9e8b05e4: am a669206d: Merge "cleanup redundant interfaces from iftable to avoid...
Jean-Baptiste Queru [Wed, 18 Jan 2012 02:20:25 +0000 (18:20 -0800)]
am 9e8b05e4: am a669206d: Merge "cleanup redundant interfaces from iftable to avoid excessive LinearAlloc use"

* commit '9e8b05e4529c4f9bf66d3db21ae79ccbbe97a1dc':
  cleanup redundant interfaces from iftable to avoid excessive LinearAlloc use

12 years agoFix to dex verifier to handle float types that look like Boolean.
jeffhao [Wed, 18 Jan 2012 02:18:36 +0000 (18:18 -0800)]
Fix to dex verifier to handle float types that look like Boolean.

Addresses http://code.google.com/p/android/issues/detail?id=23465, where
a Float value is potentially 0x0 or Float.MIN_VALUE (0x1), which combines
into a Boolean type, which should be allowed to be promoted to Float.

Change-Id: I1718820dc05719772aa939f3f7830bb86a161d56

12 years agoam a669206d: Merge "cleanup redundant interfaces from iftable to avoid excessive...
Jean-Baptiste Queru [Wed, 18 Jan 2012 02:17:56 +0000 (18:17 -0800)]
am a669206d: Merge "cleanup redundant interfaces from iftable to avoid excessive LinearAlloc use"

* commit 'a669206dc91323e664a84b2a4ca170ec0332c926':
  cleanup redundant interfaces from iftable to avoid excessive LinearAlloc use

12 years agoMerge "cleanup redundant interfaces from iftable to avoid excessive LinearAlloc use"
Jean-Baptiste Queru [Tue, 17 Jan 2012 23:26:45 +0000 (15:26 -0800)]
Merge "cleanup redundant interfaces from iftable to avoid excessive LinearAlloc use"

12 years agoam 516c0968: am 390d7c08: fix personality call.
Nick Kralevich [Tue, 17 Jan 2012 21:09:54 +0000 (13:09 -0800)]
am 516c0968: am 390d7c08: fix personality call.

* commit '516c096823b3e1c06a9875334c2ec3cdcc00d125':
  fix personality call.

12 years agoam 390d7c08: fix personality call.
Nick Kralevich [Tue, 17 Jan 2012 19:45:32 +0000 (11:45 -0800)]
am 390d7c08: fix personality call.

* commit '390d7c08821750d0633435278b2d533fd6b1a7a5':
  fix personality call.

12 years agomerge in ics-mr1-release history after reset to ics-mr1
The Android Automerger [Sat, 14 Jan 2012 00:17:11 +0000 (16:17 -0800)]
merge in ics-mr1-release history after reset to ics-mr1

12 years agofix personality call.
Nick Kralevich [Fri, 13 Jan 2012 22:04:38 +0000 (14:04 -0800)]
fix personality call.

Change-Id: I25845344494ac15b4a6876784d2b040779892459

12 years agoFix log macro name
Selim Gurun [Fri, 13 Jan 2012 20:54:39 +0000 (12:54 -0800)]
Fix log macro name

Convert LOGW to ALOGW.

Change-Id: I4096541cfb6f76d6ab3af289288c840f87125dfa

12 years agoam ca5d7a30: am 311886c6: Prevent memory fragmentation.
Selim Gurun [Fri, 13 Jan 2012 20:18:57 +0000 (12:18 -0800)]
am ca5d7a30: am 311886c6: Prevent memory fragmentation.

* commit 'ca5d7a300ecb8a96c5751796dff62b007c7095b1':
  Prevent memory fragmentation.

12 years agoam 311886c6: Prevent memory fragmentation.
Selim Gurun [Fri, 13 Jan 2012 20:15:52 +0000 (12:15 -0800)]
am 311886c6: Prevent memory fragmentation.

* commit '311886c6c6fcd3b531531f592d56caab5e2a259c':
  Prevent memory fragmentation.

12 years agoam 6dea1575: Merge "fix dvmDbgOutputAllInterfaces to include only direct super-interf...
Jean-Baptiste Queru [Fri, 13 Jan 2012 19:20:45 +0000 (11:20 -0800)]
am 6dea1575: Merge "fix dvmDbgOutputAllInterfaces to include only direct super-interfaces"

* commit '6dea1575fd44aeee1dbe4d2bb184357598581652':
  fix dvmDbgOutputAllInterfaces to include only direct super-interfaces

12 years agoPrevent memory fragmentation.
Selim Gurun [Fri, 13 Jan 2012 18:47:15 +0000 (10:47 -0800)]
Prevent memory fragmentation.

Bug: 5817320

Prevent memory fragmentation and potential allocation failures. This
change is temporary.

Change-Id: Id1e8f9606687648235ea9e18861125a8c799d812

12 years agoMerge "fix dvmDbgOutputAllInterfaces to include only direct super-interfaces"
Jean-Baptiste Queru [Fri, 13 Jan 2012 15:49:24 +0000 (07:49 -0800)]
Merge "fix dvmDbgOutputAllInterfaces to include only direct super-interfaces"

12 years agocleanup redundant interfaces from iftable to avoid excessive LinearAlloc use
Johannes Rudolph [Fri, 13 Jan 2012 07:18:17 +0000 (08:18 +0100)]
cleanup redundant interfaces from iftable to avoid excessive LinearAlloc use

In deep interface hierarchies super-interfaces are recursively concatenated
to create the iftable. There was no checking for duplicated entries so that the
iftable could get pretty large with just a few layers of interfaces up to the
point where the LinearAlloc was exceeded completely.

This change scans the iftable linearly for existing entries before it adds another
one.

Issue: http://code.google.com/p/android/issues/detail?id=22586
Change-Id: Idb4a13ca7a52f390661629cf2539930242526876
Signed-off-by: Johannes Rudolph <johannes.rudolph@gmail.com>
12 years agoProvide detail when methods or fields exceed the limit.
Jesse Wilson [Thu, 12 Jan 2012 17:09:26 +0000 (12:09 -0500)]
Provide detail when methods or fields exceed the limit.

Here's what the new message looks like:

trouble writing output: Too many fields: 88304; max is 65536. By package:
    10 dalvik.annotation
   278 dalvik.bytecode
    81 dalvik.system
    94 dalvik.system.profiler
   111 java.awt.font
    12 java.beans
   322 java.io
   519 java.lang
    20 java.lang.annotation
    13 java.lang.ref
    72 java.lang.reflect
    72 java.math
      ...

Change-Id: Ieea7efb178522d9ac3cb10c5a6cfb453be3fd72d

12 years agofix dvmDbgOutputAllInterfaces to include only direct super-interfaces
Johannes Rudolph [Thu, 12 Jan 2012 09:53:48 +0000 (10:53 +0100)]
fix dvmDbgOutputAllInterfaces to include only direct super-interfaces

As the javadoc and the spec say dvmDbgOutputAllInterfaces should output only
the directly implemented interfaces. This can be achieved by just iterating
over the `clazz->interfaces`.

Issue: http://code.google.com/p/android/issues/detail?id=21422
Change-Id: I1779e2cc2ada7afaaf4a1e2e5c7861d61d9ea014
Signed-off-by: Johannes Rudolph <johannes.rudolph@gmail.com>
12 years agoFix a small memory leak.
Elliott Hughes [Sat, 7 Jan 2012 01:25:14 +0000 (17:25 -0800)]
Fix a small memory leak.

Found by someone reading the code, rather than because we saw a crash. This is
only a small leak, and you'd have to be dumping threads (because of an ANR) or
creating a new thread to provoke it.

Change-Id: I9c660d86056765bcbebbdfa634032885c3f91b82

12 years agoRename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE
Steve Block [Fri, 6 Jan 2012 19:16:58 +0000 (19:16 +0000)]
Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Also fix an occurrence of LOGW missed in an earlier change.

Bug: 5449033
Change-Id: I2e3b23839e6dcd09015d6402280e9300c75e3406

12 years agoRename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE
Steve Block [Thu, 5 Jan 2012 23:21:27 +0000 (23:21 +0000)]
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)  DO NOT MERGE

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

Bug: 5449033
Change-Id: Ia5d301248024df26c2a29dabdfe738e39ec87c82

12 years agoRemove misleading and outdated documentation.
Elliott Hughes [Fri, 6 Jan 2012 01:43:32 +0000 (17:43 -0800)]
Remove misleading and outdated documentation.

Change-Id: Id118f2fc173fc37225a1fb36e8182f54030b1f5f

12 years agoRemove documentation that's now in docs/source.android.com.
Elliott Hughes [Fri, 6 Jan 2012 01:28:21 +0000 (17:28 -0800)]
Remove documentation that's now in docs/source.android.com.

Change-Id: If6ea32e923a8c7fe99824760d9a09e7eee1ff71b

12 years agoRename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE
Steve Block [Wed, 4 Jan 2012 20:04:51 +0000 (20:04 +0000)]
Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE

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

Bug: 5449033
Change-Id: Ic558031c75b3702d90eb78bd730501ae5d3c077b

12 years agoRemove unsupported experimental opcodes.
Elliott Hughes [Wed, 4 Jan 2012 23:38:58 +0000 (15:38 -0800)]
Remove unsupported experimental opcodes.

External developers were starting to try to get themselves into trouble with
this stuff...

Change-Id: I2b03bfeaa8c98b6a994bc7924fc8dcf4e4d4f6cb

12 years agoMerge "Remove dexmaker code from dx."
Jesse Wilson [Thu, 5 Jan 2012 16:29:24 +0000 (08:29 -0800)]
Merge "Remove dexmaker code from dx."

12 years agoRemove dexmaker code from dx.
Jesse Wilson [Wed, 4 Jan 2012 16:41:54 +0000 (11:41 -0500)]
Remove dexmaker code from dx.

This now lives as a standalone project:
http://code.google.com/p/dexmaker/

Change-Id: I4f7abff9399d6827082c9af78a015562fdbcdbb3

12 years agoRename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE
Steve Block [Tue, 20 Dec 2011 16:22:13 +0000 (16:22 +0000)]
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)  DO NOT MERGE

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

Bug: 5449033
Change-Id: Ic663376d1ad6a6cb14bf81405ad9afd247cf2f60

12 years agoIntroduces ProxyBuilder and tests.
Hugo Hudson [Fri, 16 Dec 2011 18:06:39 +0000 (18:06 +0000)]
Introduces ProxyBuilder and tests.

- ProxyBuilder is to concrete classes what java.lang.reflect.Proxy is to
  interfaces.
- Uses a builder pattern to make specifying of the various (optional)
  parameters easier.
- Creates a concrete subclass of the supplied input class whose
  implementation delegates to the given invocation handler.
- Also provides a fix for the Code#loadConstant method to allow loading
  null values.

Change-Id: I3ca6a98b91c64466df03120bc85f095365250aca

12 years agoMerge "DexGenerator: allow specifying dex cache dir."
Hugo Hudson [Fri, 16 Dec 2011 16:31:49 +0000 (08:31 -0800)]
Merge "DexGenerator: allow specifying dex cache dir."

12 years agoDexGenerator: allow specifying dex cache dir.
Hugo Hudson [Wed, 30 Nov 2011 12:12:51 +0000 (12:12 +0000)]
DexGenerator: allow specifying dex cache dir.

- Switches DexGenerator to not use extended opcodes.  This allows us to
  write suitable files for earlier versions of Android.
- Allows caller to specify optimised dex directory.  This allows us to
  get around /data/dalvik-cache not being world-writeable.
- Allows caller to specify optimised dex files cache dir.  This allows
  us to skip the requirement of being able to write to /sdcard.

Change-Id: I2cae2e187ccf5b20b98763cb7eb791383a7d5a59

12 years agoDexOptions should default targetApiLevel to API_NO_EXTENDED_OPCODES
Brian Carlstrom [Mon, 12 Dec 2011 22:35:59 +0000 (14:35 -0800)]
DexOptions should default targetApiLevel to API_NO_EXTENDED_OPCODES

Bug: 5738782

(cherry picked from commit b14b69728337cf5808eed4d5652fb9d5be33dff0)

Change-Id: I51991c85c74b41fa51556b369a3724ba9dd0c090

12 years agoMerge "Don't throw an AssertionError on invalid input."
Jesse Wilson [Tue, 13 Dec 2011 21:49:50 +0000 (13:49 -0800)]
Merge "Don't throw an AssertionError on invalid input."

12 years agoDon't throw an AssertionError on invalid input.
Jesse Wilson [Tue, 13 Dec 2011 21:42:38 +0000 (16:42 -0500)]
Don't throw an AssertionError on invalid input.

Throwing an AssertionError prevents tools like FindUsages from
recovering.

Bug: http://b/5470168
Change-Id: I6ae99bd29e25f868a739548266cedf85d0b26e90

12 years agoMerge "Remove dx's copy of JUnit."
Jesse Wilson [Mon, 12 Dec 2011 20:34:56 +0000 (12:34 -0800)]
Merge "Remove dx's copy of JUnit."

12 years agoam 2ca72c70: Reconcile with ics-mr1-release
The Android Open Source Project [Fri, 9 Dec 2011 22:57:35 +0000 (14:57 -0800)]
am 2ca72c70: Reconcile with ics-mr1-release

* commit '2ca72c704e7462c56f8c4489369b618872b595a0':

12 years agoRemove dx's copy of JUnit.
Jesse Wilson [Fri, 9 Dec 2011 19:33:21 +0000 (14:33 -0500)]
Remove dx's copy of JUnit.

Instead, use JUnit the same way other code uses JUnit: by depending
on the copy in external. There is no longer a top-level option in
dx to run JUnit tests on itself.

There are two failing tests in dx/junit-tests. Both of these are in
the recently created DexGeneratorTest; I intend to fix these in another
change.

Bug: http://b/2286423
Change-Id: I3a173a0302c7ccc81be3b5a2a4d766000d1c242b

12 years agoAdmit to not supporting over 65,536 methods.
Jesse Wilson [Fri, 9 Dec 2011 17:35:55 +0000 (12:35 -0500)]
Admit to not supporting over 65,536 methods.

This was previously a work in progress, but that work wasn't
completed and the test shouldn't assume the work is complete.

Bug: http://code.google.com/p/android/issues/detail?id=22545

Change-Id: I44a9532d96ab548283278ca3218773ea449f8318

12 years agoReconcile with ics-mr1-release
The Android Open Source Project [Thu, 8 Dec 2011 18:21:27 +0000 (10:21 -0800)]
Reconcile with ics-mr1-release

Change-Id: I61fc74707db482c4600aaa34b751a665c75ffcec

12 years agoReconcile with ics-mr1-release
The Android Open Source Project [Fri, 2 Dec 2011 15:52:58 +0000 (07:52 -0800)]
Reconcile with ics-mr1-release

Change-Id: I63967a8c63fb1d2f5af167b3a23c848829b01938

12 years agomerge in ics-mr1-release history after reset to ics-mr1
The Android Automerger [Fri, 2 Dec 2011 00:45:10 +0000 (16:45 -0800)]
merge in ics-mr1-release history after reset to ics-mr1

12 years agoam a18e6d13: Initialize the vC field of inlined getters/setters.
Ben Cheng [Thu, 1 Dec 2011 21:05:12 +0000 (13:05 -0800)]
am a18e6d13: Initialize the vC field of inlined getters/setters.

* commit 'a18e6d135a869f9c62f9ec8bac8b9e78d92c697f':
  Initialize the vC field of inlined getters/setters.

12 years agoInitialize the vC field of inlined getters/setters.
Ben Cheng [Thu, 1 Dec 2011 20:24:49 +0000 (12:24 -0800)]
Initialize the vC field of inlined getters/setters.

To eliminate a benign Valgrind warning.

Change-Id: I5f0ae53b8c86fe476f0b7ddfb6589191aea464f6

12 years agoam ee155d4f: Initialize the JNI indirect ref table to make Valgrind happy.
Ben Cheng [Thu, 1 Dec 2011 17:44:23 +0000 (09:44 -0800)]
am ee155d4f: Initialize the JNI indirect ref table to make Valgrind happy.

* commit 'ee155d4fe47fa751262beb43437a339fde8eabe5':
  Initialize the JNI indirect ref table to make Valgrind happy.

12 years agoInitialize the JNI indirect ref table to make Valgrind happy.
Ben Cheng [Wed, 30 Nov 2011 18:43:09 +0000 (10:43 -0800)]
Initialize the JNI indirect ref table to make Valgrind happy.

Specifically, this is to eliminate the benign warning about the
'serial' field being uninitialized.

BUG: 5542417
Change-Id: I8550972e70db94f24c47c4e5dea0b59cc5840b48

12 years agoUse libcorkscrew to format the stack trace.
Jeff Brown [Tue, 22 Nov 2011 05:03:37 +0000 (21:03 -0800)]
Use libcorkscrew to format the stack trace.

Change-Id: I06ddbb7a8035971b6e1a164adcd00208fae89b1a

12 years agoFix DexMerger to emit dex files without extended op codes.
Jesse Wilson [Fri, 18 Nov 2011 19:44:23 +0000 (14:44 -0500)]
Fix DexMerger to emit dex files without extended op codes.

Certain tools in our tool chain don't like these.

Change-Id: Iaaff85c1b634f647d0105c36f403b2e03aaf0ca7

12 years agoBe humane when there are more methods or fields than Dalvik can handle.
Jesse Wilson [Thu, 17 Nov 2011 21:56:51 +0000 (16:56 -0500)]
Be humane when there are more methods or fields than Dalvik can handle.

Previously our errors would look like this:
  trouble writing output: opcode == null
Or this:
  trouble writing output: No expanded opcode for 7f9c1af3

Now our errors look like this:
  trouble writing output: Too many methods: 86922; max is 65536

Bug: http://code.google.com/p/android/issues/detail?id=20814

Change-Id: I2d9dc55e188a6ac1661b74af2194b18019859a29

12 years agoCan't set variable to null with loadConstant.
Hugo Hudson [Thu, 17 Nov 2011 16:06:36 +0000 (16:06 +0000)]
Can't set variable to null with loadConstant.

Change-Id: I9349507b8af2b59e03f7542b7589f2dbcdb77711

12 years agoThis test fails with a class not found error.
Hugo Hudson [Thu, 17 Nov 2011 15:58:44 +0000 (15:58 +0000)]
This test fails with a class not found error.

Change-Id: I7a98cbc30d32a0f19fa3892b58775ba10536c6aa

12 years agoReconcile with ics-mr1-release
The Android Open Source Project [Thu, 10 Nov 2011 22:35:21 +0000 (14:35 -0800)]
Reconcile with ics-mr1-release

Change-Id: I63807d2f883382fa765e5eefe7fd17ac3cbcbe67

12 years agoam cab0fdf8: (-s ours) DO NOT MERGE Further refinement of card table clear
Andy McFadden [Thu, 10 Nov 2011 19:39:09 +0000 (19:39 +0000)]
am cab0fdf8: (-s ours) DO NOT MERGE Further refinement of card table clear

* commit 'cab0fdf82a668e2a1a054cd6506835046218e419':
  DO NOT MERGE Further refinement of card table clear

12 years agomerge in ics-mr1-release history after reset to ics-mr1
The Android Automerger [Thu, 10 Nov 2011 14:45:54 +0000 (06:45 -0800)]
merge in ics-mr1-release history after reset to ics-mr1

12 years agoDO NOT MERGE Further refinement of card table clear
Andy McFadden [Tue, 8 Nov 2011 00:57:54 +0000 (16:57 -0800)]
DO NOT MERGE Further refinement of card table clear

We're currently using memset() to clear cards out to the growth
limit, which on a device configured for 48MB/128MB process caps
means we're sitting on 384KB or 1MB of pages.  We can reduce that
substantially.

This change attempts to reduce the memset() length to the currently
active portion of the card table, based on the placement of objects
in the "live objects" bitmap.  This should avoid faulting in card
pages that we don't actually need.

This is suboptimal when parts of the card table are used briefly
and then ignored for a while.  An alternative implementation, which
uses madvise(DONTNEED) aggressively, is also included (#ifdefed out).

Bug 5567332

(cherry-pick from master)

Change-Id: I6b181de20a0c8b6307acaebbc5d6dac20422f25d

12 years agoFurther refinement of card table clear
Andy McFadden [Tue, 8 Nov 2011 00:57:54 +0000 (16:57 -0800)]
Further refinement of card table clear

We're currently using memset() to clear cards out to the growth
limit, which on a device configured for 48MB/128MB process caps
means we're sitting on 384KB or 1MB of pages.  We can reduce that
substantially.

This change attempts to reduce the memset() length to the currently
active portion of the card table, based on the placement of objects
in the "live objects" bitmap.  This should avoid faulting in card
pages that we don't actually need.

This is suboptimal when parts of the card table are used briefly
and then ignored for a while.  An alternative implementation, which
uses madvise(DONTNEED) aggressively, is also included (#ifdefed out).

Bug 5567332

Change-Id: I7663ae7d15d0aaa8158deed5e331bf05333da6bb

12 years agoMerge "Fix reporting of initial pause time"
Andy McFadden [Tue, 8 Nov 2011 17:33:53 +0000 (09:33 -0800)]
Merge "Fix reporting of initial pause time"

12 years agoFix reporting of initial pause time
Andy McFadden [Tue, 8 Nov 2011 00:20:51 +0000 (16:20 -0800)]
Fix reporting of initial pause time

The "rootEnd" time was being captured before dvmClearCardTable()
was called.

Bug 5567332

Change-Id: I5499f1648c3e41296c18fa5d95d834c2d2853e8f

12 years agoReconcile with ics-mr1-release
The Android Open Source Project [Mon, 7 Nov 2011 16:30:42 +0000 (08:30 -0800)]
Reconcile with ics-mr1-release

Change-Id: I91ffc584e0d2d39aaec9b28ac3cde8b625234968

12 years agomerge in ics-mr1-release history after reset to ics-mr1
The Android Automerger [Sun, 6 Nov 2011 14:45:27 +0000 (06:45 -0800)]
merge in ics-mr1-release history after reset to ics-mr1

12 years agoam 6cd72bd0: Merge "Don\'t pay for filename/line number lookup unless you need to...
Elliott Hughes [Sat, 5 Nov 2011 19:33:54 +0000 (19:33 +0000)]
am 6cd72bd0: Merge "Don\'t pay for filename/line number lookup unless you need to." into ics-mr1

* commit '6cd72bd0161459e21d496b927967bd0ca6fe0f94':
  Don't pay for filename/line number lookup unless you need to.

12 years agoam 50e01501: Merge "Knock ::self() out of the ParseXml profile." into ics-mr1
Elliott Hughes [Sat, 5 Nov 2011 19:33:53 +0000 (19:33 +0000)]
am 50e01501: Merge "Knock ::self() out of the ParseXml profile." into ics-mr1

* commit '50e015017f091118f0147d02d23140ff9f88daec':
  Knock ::self() out of the ParseXml profile.

12 years agoam 4c83f214: Merge "Reduce Dalvik card table overhead" into ics-mr1
Andy McFadden [Sat, 5 Nov 2011 19:33:51 +0000 (19:33 +0000)]
am 4c83f214: Merge "Reduce Dalvik card table overhead" into ics-mr1

* commit '4c83f214932af008cf79aee528ca3f9e66572040':
  Reduce Dalvik card table overhead