- 27 Jan, 2011 1 commit
-
-
Dan Bornstein authored
bcopy() guarantees that pointer-size words are stored atomically, and so this prevents the gc from seeing a pointer in mid-change. Bug: 3399673 Change-Id: Ic7d795e5d397548e9d6d8c11a585d86838cf8a44
-
- 14 Jan, 2011 2 commits
-
-
Dan Bornstein authored
* commit '70b130f5': Clean up/out some comments. DO NOT MERGE.
-
Dan Bornstein authored
Change-Id: I16063cf9132e0f2d6556ce06e1ebfb90ecff05aa
-
- 13 Jan, 2011 2 commits
-
-
Dan Bornstein authored
* commit '80a30431': Remove some pointless tests.
-
Dan Bornstein authored
Change-Id: Ibaaf74fbdffd6c08af48cac50ef62a05e8473899
-
- 12 Jan, 2011 1 commit
-
-
Carl Shapiro authored
Reference objects with non-null referent fields are collected during tracing for processing after the trace has completed. Before the trace was made concurrent there was no way for a reference with a non-null referent field to have its referent become null by any action of the garbage collector after it was discovered. Assertions were placed in the reference processing code to check this invariant. After the trace was made concurrent it became possible for a user to clear the referent field of an already discovered reference. This violates the assertions in the reference processing code. This change replaces the assertions in the reference processing code with logic to deal with null referent fields. The assert in the SoftReference preservation code has been converted to a continue that short circuits the preservation logic. The assert in the white reference clearing code short circuits the clearing and enqueueing. Bug: 3342757 Change-Id: I967b011485e2691b2752500a3488fbcb54f129d3
-
- 05 Jan, 2011 1 commit
-
-
Carl Shapiro authored
-
- 30 Nov, 2010 1 commit
-
-
buzbee authored
During Change 22370 "Thumb/Thumb2 instruction selection rework" line 1689 of Codegen.c was inadvertently duplicated and deposited in the unrelated function genPuntToInterp() at line 1732. genPuntToInterp() is rarely used and half of the time (if the roll-back Dalvik PC was word-aligned) the error would have been benign. However, if the Dalvik PC is not word-aligned, the result would be a seg fault. The fix is to remove the line of code. Change-Id: Ib2ffb80059a639923c342a36797eb6c4995c5218
-
- 09 Nov, 2010 2 commits
-
-
Andy McFadden authored
* commit '886130bc': Two patches.
-
Andy McFadden authored
Patch 1a+1b: Set capabilities sooner. (cherry-pick from gingerbread I22fde728bd5d65774f8fdf1fa45956fe18358c4c) (hand-pick from gingerbread Ief58bdfff2cb82d7824ef796c2c1031f525f6ee9, plus minor tweak to avoid altering the API) Patch 3: If there's an error dropping privileges, abort. (cherry-pick from gingerbread I85ce12e93cb8c297add756dc3b872b8346eda00b) Bug 3176774 Change-Id: If8285d7bfd5a466bd77c0f7ffadf1bf96d31db06
-
- 30 Oct, 2010 3 commits
-
-
Dan Bornstein authored
* commit 'fbe51551': Remove a pointless test, which just tested a test support class.
-
Dan Bornstein authored
Change-Id: Ia6d47860ad71f013fef5631bcd434c2f6f1d346f
-
Dan Bornstein authored
* commit '3144eec0': Replace the implementation of this class.
-
- 29 Oct, 2010 1 commit
-
-
Dan Bornstein authored
Use the Apache Harmony version. Change-Id: Ica3b4c69ccd1cd4c91325c52fad5a71695d58ba4
-
- 27 Oct, 2010 1 commit
-
-
Andy McFadden authored
Bug 3135433. Change-Id: I22fde728bd5d65774f8fdf1fa45956fe18358c4c
-
- 26 Oct, 2010 1 commit
-
-
Ben Cheng authored
If the counted loop is composed as for (int i = hi; i >= lo; i--) { .. = array[i]; } The hoisted lower-bound check should be asserting "lo >= 0". On the other hand if the counted loop is composed as for (int i = hi; i > lo; i--) { .. = array[i]; } The hoisted lower-bound check should be asserting "lo + 1 >= 0". Previously these two checks are reversed. Bug: 3130818 Change-Id: Ibc5a6daa837880e9986e45bbc29d1a5e548be3ae
-
- 20 Oct, 2010 1 commit
-
-
Carl Shapiro authored
Strings can be intered by the class loader, in the case of string literals, or by the user, through String.intern. Literal strings exist for the life of their referencing classes. User strings are weak and may be garbage collected when unreferenced. These two classes of strings are kept in seprate tables for the conveniance of the garbage collector during root traversal. When a class loader interns a string that was already interned by the user the runtime must move the string from the intern table to the literal table to increase the reference strength. Previously, this was implemented by inserting the incoming string into the literal table and removing any matching strings in the intern table. This transition lost pointer equality. With this change we first insert the exact string from the intern table into the literal table and secondly remove its reference from the intern table. By moving the string between tables pointer equality is preserved. At this point lookupInternedString should be split into two functions, possibly by pulled up the relevant bits into the public interface functions. Since this change will be merged to gingerbread I will leave the clean up to a separate change. Bug: 3098960
-
- 19 Oct, 2010 3 commits
-
-
Andy McFadden authored
-
Andy McFadden authored
We brought over the VM change that removed SIGUSR1 as a way to cause an hprof dump, but didn't bring the replacement command-line stuff ("am dumpheap" and the updated version of runhat). This updates the documentation to reflect the state of the world in gingerbread. Bug 3110872. Change-Id: Ia64190584a344995670e663636e8e2c0983fb29f
-
Carl Shapiro authored
-
- 18 Oct, 2010 2 commits
-
-
Carl Shapiro authored
Bug: 3108418 Change-Id: I057e7a674e2ab96671f4651811071b6810250528
-
Andy McFadden authored
After reflective method calls, primitive results need to be boxed up in an appropriate object. This generally requires allocating an object of the appropriate type. We were doing this before popping the call frame, which meant that if the allocation caused a GC we would be scanning results out of a "dead" stack frame. We hit a case where a register went from holding a reference to holding a primitive right before the method returned. The exported PC was pointing at the last GC point, where the register was expected to hold a reference, so precise GC was getting very confused. Bug 3102352. (cherry-pick from dalvik-dev) Change-Id: I21f59f1d70689d9e4901deb3100c756fd85223e7
-
- 14 Oct, 2010 1 commit
-
-
buzbee authored
Bug http://b/issue?id=3095771 Change https://android-git.corp.google.com/g/#change,70700 was a cherry-pick/merge of https://android-git.corp.google.com/g/#change,70388 It was not properly merged, and resulting in the register holding the object head to be trashed (and subsequently broke GC). Change-Id: Ic480104e3a643a5b744d36eb0aefaedd3e4f925c
-
- 13 Oct, 2010 1 commit
-
-
Raphael authored
Change-Id: I4b644dc686f1da75ef7fb34ea874b54ce44f8391
-
- 11 Oct, 2010 5 commits
-
-
Andy McFadden authored
-
Carl Shapiro authored
Change-Id: I2a52823325a0a582a746890af7f040324d671806
-
Andy McFadden authored
Explain thread attach/detach, behavior of threads running native code. Added pthread_key_create destructor note to backward compatibility section. Change-Id: I954708c9ec7c83ba951c0f512c88d5c610a49411
-
Carl Shapiro authored
-
Carl Shapiro authored
Previously, the mspace footprint used the "overhead" of a heap which underestimates the size of the zygote heap by 16 bytes, the specific size of a descriptor deposited at the start of an mspace containing the control information about that mspace. If a heap is a multiple of a page or within 15 bytes of it, the size of the new heap would be underestimated. Bad things happened when this underestimate was used to create an application heap. The starting address of the application heap was based on a correctly computed value instead of the underestimate. This caused the application heap to be one page to large and end one page beyond where it should. This additional page happened to overlap the first page one of the heap bitmaps. Furthermore, the mspace routine would proceed access protect that page thinking it was unused free space. During the next GC reads to the first page of the bitmap would generate a SIGSEGV. By using the break position, correctly rounded, for all sizing computations this problem no longer exists. Change-Id: Icb3c82731e589747e8e4cf16d0797052e64b3ad5
-
- 10 Oct, 2010 2 commits
-
-
Andy McFadden authored
Dalvik provides five different ways to invoke a method (virtual, super, direct, static, interface). Using a virtual invoke instruction to call a direct method will not produce the desired results. This adds a test to the verifier that ensures the method targeted by an invocation instruction is of an appropriate kind. Bug 3082885. (cherry-pick from dalvik-dev) Change-Id: I3237cbefc7314f0b9d7557fc0bfd2b548ea30938
-
Dan Bornstein authored
In particular, make it a little more explicit what kinds of methods are acceptable for each variant. Change-Id: Icd9dad876c2d10c23462b4d85ccaa9441d7f2c04
-
- 01 Oct, 2010 4 commits
-
-
Carl Shapiro authored
-
Carl Shapiro authored
Change-Id: I8e7b1d1ef7ca205b489744dcbf0f210c1f2443c4
-
Elliott Hughes authored
-
buzbee authored
Change-Id: I8b84a4f1e1690f5b62de7404ea6ede00317848bb
-
- 30 Sep, 2010 3 commits
-
-
Elliott Hughes authored
This has a companion change in libcore: https://android-git.corp.google.com/g/71342 Bug: 3044042 Change-Id: I070a80a41ec2f306f5092a641807017f70179451
-
Andy McFadden authored
The SMP flag was defaulting to "true" for dexopt, even on uniprocessors. With this change the VM now has three choices: dexopt for SMP, dexopt for uniprocessor, or dexopt for current system. The last is used for just-in-time dexopt (used by -eng and -userdebug builds on bootstrap DEX files) and installd dexopt (used for apps on all builds). The dexopt used by the build system during -user builds will either be explicitly SMP or explicitly uniprocessor, since "current system" has no meaning when you're cross-dexopting. Also, unified the dexopt control flags into a single enum. (cherry-pick from dalvik-dev) Change-Id: Id1d9c548ca8567585a28ef9ee911cc2ac6b116dd
-
Dan Bornstein authored
Change-Id: Ic1b68dddf6822773041de6023c594a062e141325
-
- 29 Sep, 2010 2 commits
-
-
Carl Shapiro authored
-
Carl Shapiro authored
-