| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
croot
cd dalvik
repo start dalvik-is-dead-long-live-dalvik .
repo sync -c .
git rm -r README.txt
git rm -r dexopt
git rm -r tools/deadcode.py
git rm -r tools/dex-preopt
git rm -r tools/dexcheck
git rm -r tools/gdbjithelper
git rm -r unit-tests
git rm -r vm
git checkout HEAD vm/Common.h (needed by libdex)
git checkout HEAD vm/DalvikVersion.h (needed by libdex)
git checkout HEAD vm/Profile.h (needed by dmtracedump)
git add Android.mk (after removing vm, dexopt, and unit-tests references)
git commit -a -m 'Dalvik is dead, long live Dalvik!'
Bug: 14298175
Change-Id: I9dd13053677629d13496d4238af4374452cda415
|
| |
|
|
|
| |
Bug: 14903517
Change-Id: I9fc7dd742e80850eeb461f91be7750530585cfb3
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/156801
Bug: 5449033
Change-Id: Ic558031c75b3702d90eb78bd730501ae5d3c077b
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Removed unused debugging code that maintained pointers to the
4 previous objects in each slot.
Promoted the serial number property of a slot to be first class.
This is a sufficiently cheap and useful check to perform that we
might as well always do it.
Changed get() and remove() so they check the validity of the
references at the same time as they retrieve them. They're
also a bit smarter about checking the reference kind given
that they can assume that the table will only contain references
of one kind. The checks are now much more consistent.
For example, remove() used to check whether an index was
stale only in the case where it was not removing the top entry
(now it always checks).
Made add() return NULL instead of dvmAbort()'ing in the case
where the table overflowed and ensure we don't blow away the
table in that cases. This change resolves an issue with
TestIndirectRefTable.cpp which deliberately overflows the table
and expects add() to return NULL (as documented!). As it
happens, the add() method is called in exactly 3 places in
Jni.cpp. In each of those cases, the code was written to
handle a NULL result and only in the case of adding a weak
global reference did it not abort. Fixed the weak global
reference case to be consistent with the others.
Changed the signature of contains() to take an Object* since
that's what we're actually looking for inside the table.
Added a couple of calls to dump() in TestIndirectRefTable.cpp
for visual inspection of its correctness.
Performance as measured by TestIndirectRefTable on same hardware.
Old implementation:
- Add/remove 100 objects FIFO order, 100000 iterations, 0.023ms / iteration
- Add/remove 100 objects LIFO order, 100000 iterations, 0.020ms / iteration
- Get 100 objects, 100000 iterations, 0.009ms / iteration
New implementation:
- Add/remove 100 objects FIFO order, 100000 iterations, 0.010ms / iteration
- Add/remove 100 objects LIFO order, 100000 iterations, 0.009ms / iteration
- Get 100 objects, 100000 iterations, 0.002ms / iteration
Change-Id: I1c904eb03bc8dd9822e6d9cce702c696e976974e
|
| |
|
|
| |
Change-Id: Ib75354508fff1921d8d73eba5e3a3905a362b1e1
|
| |
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/#/c/143865
Bug: 5449033
Change-Id: I8bd96961e369a08e86ff78b82d90f20f42787eb1
|
| |
|
|
|
|
|
| |
The main purpose here was to have slightly less unclear warnings for
JNI local reference abuse.
Change-Id: I2c6378dd0a94d8afb96a8e409f7460205e3cd315
|
| |
|
|
|
|
|
|
|
|
| |
An leading underscore followed by a capital letter is a reserved
name space in C and C++.
This change also moves any #include directives within the include
guard in some of the compiler/codegen/arm header files.
Change-Id: I9715e2c5301699d31886e61d0fe6e29483555a2a
|
| |
|
|
|
|
| |
I exist to serve.
Change-Id: I8e2880b20eefd466da8515d5b6b0c5cb75d56169
|
| |
|
|
|
|
| |
Friends don't let friends end LOG() strings with newlines.
Change-Id: I5a18c766c90c4ab5f03caa6acd601d34d91beb00
|
| |
|
|
| |
Change-Id: Ica749f6defa890363ec531b29e25bc415dc2cbb9
|
| |
|
|
| |
Change-Id: Id8693208d2741c55a7b0474d1264f2112019d11f
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Improved CheckJNI problem detection and failure reporting. Also,
the indirect reference table data structure now responds to invalid
requests with a magic bogus object instead of NULL, so that failures
are immediate and obvious.
The extended checks in the indirect ref implementation are still on,
mostly so that bad code fails in an obvious way even when CheckJNI
is not enabled.
This change also includes a hack to allow weak globals to work.
Returning non-NULL for invalid refs turned a rarely-fails-weirdly
issue into an always-fails-loudly, which is good, but we need to
paper over it until the WGR fix is in place. This will need to be
removed later.
Also, reduced some log levels.
Bug 4184721
Change-Id: Iaec75c71dbc85934366be2e717329b635d0fa49e
|
| |\
| |
| |
| |
| | |
* commit '6f22f6bac408e487bcf8fcfd25ef6263cfaefd57':
Remove references to android_atomic_swap.
|
| | |
| |
| |
| |
| |
| | |
Bug: 3381237
Change-Id: Iabca4be285082d804b0b206025bd4ca8e008ee42
|
| |/
|
|
| |
Change-Id: I06292964a6882ea2d0c17c5c962db95e46b01543
|
| |
|
|
| |
Change-Id: I5e59c5b364c4155b179ceb9c16d2c4baae6cd2ea
|
| |\
| |
| |
| | |
Change-Id: I4346c9891939e589c627b9de4d71b959ed8f3b51
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This implements the "quasi-atomic" 64-bit operations using LDREXD/STREXD
when those instructions are available (e.g. our ARMv7-A devices).
Also, folded in an expanded version of AtomicSpeed.c that has been
floating around my hard drive for a while.
(This time, without Condition Code Roulette.)
Change-Id: I90803794994373e2c620be423c081f0da4469fdf
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replaced VM-local macros for barrier and CAS calls with the actual
versions provided by cutils.
ATOMIC_CMP_SWAP(addr,old,new) --> android_atomic_release_cas(old,new,addr)
MEM_BARRIER --> ANDROID_MEMBAR_FULL
Renamed android_quasiatomic* to dvmQuasiAtomic*.
Didn't change how anything works, just the names.
Change-Id: I8c68f28e1f7c9cb832183e0918d097dfe6a2cac8
|
| | |
| |
| |
| | |
Change-Id: I1e3d103a7b932ef21acedb6438c0f26b315df28f
|
| | |
| |
| |
| | |
Change-Id: I95534bb2b88eaf48f2329282041118cd034c812b
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change also introduces wrappers for condition variable operations
similar to what we have already for mutex operations.
Almost all the remaining warnings are now in the compiler or non-debug
uses of the CHECK_JIT macro.
Change-Id: I9f492f1582a06065e3a52287c7834adddfbefff9
|
| | |
| |
| |
| | |
Change-Id: Icbe24eaf1ad499f28b68b6a5f05368271a0a7e86
|
| |/
|
|
| |
Change-Id: I0c0edb3ebf0d5e040d6bbbf60269fab0deb70ef9
|
| |
|
|
| |
Added serial number checks, fixed tests, updated logging.
|
| |
|
|
|
|
|
|
|
|
|
| |
Switch from simple typecasts to conversion functions for the objects
passed in and out of JNI calls. No real change here; object references
are still just pointers.
Use explicit pin/unpin calls for primitive arrays. For GetStringChars
we now pin the char[] rather than the String object. (Which doesn't
make much difference in the grand scheme of things, since you need to
keep the String to pass into the release function anyway.)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change introduces the "indirect" reference table, which will be
replacing ReferenceTable for local and global JNI references. The key
difference is that, instead of handing raw Object pointers to JNI, we
will be giving them a magic value that can be converted back to an
Object. The goal is to avoid having to pin every object that native
code is aware of.
The code is not actually used anywhere yet.
Also bundled up here:
- added detail to a log message
- fixed a string format issue in the internal assert() definition
- very minor optimization in "remove" function in ReferenceTable
- quiet a gcc complaint
- only include the hash table regression test in builds that invoke it
|
| | |
|
| | |
|
| | |
|
| |
|