History log of /dalvik/vm/test/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c1a4ab9c313d8a3d12007f2dbef7b5a6fa4ac2ef 06-Jan-2012 Steve Block <steveblock@google.com> 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
estHash.cpp
estIndirectRefTable.cpp
4308417beec548c2b2c06ecec4f7f4a965b09fb2 04-Jan-2012 Steve Block <steveblock@google.com> 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
estIndirectRefTable.cpp
5552e62455d486d19e5986a67ae2545411d50fbe 27-Oct-2011 Jeff Brown <jeffbrown@google.com> Optimize IndirectRefTable.

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
estIndirectRefTable.cpp
476157d87784f48935cb86f01c079db1f9338e36 27-Oct-2011 Jeff Brown <jeffbrown@google.com> Add a simple performance test for IndirectRefTable.

Change-Id: Ib75354508fff1921d8d73eba5e3a3905a362b1e1
estIndirectRefTable.cpp
92c1f6f1b4249e4e379452ee7b49f027052bf4ce 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

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

Bug: 5449033
Change-Id: I8bd96961e369a08e86ff78b82d90f20f42787eb1
estHash.cpp
ce0968340f9ddd54f20e38d4946bfd2ef8f1f343 21-Jun-2011 Elliott Hughes <enh@google.com> Clean up IndirectRefTable a bit.

The main purpose here was to have slightly less unclear warnings for
JNI local reference abuse.

Change-Id: I2c6378dd0a94d8afb96a8e409f7460205e3cd315
estIndirectRefTable.cpp
375fb116bcb817b37509ab579dbd55cdbb765cbf 15-Jun-2011 Carl Shapiro <cshapiro@google.com> Normalize the include guard style.

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
est.h
291c84f60853d30e1c0d79dd08c5e5164f588e26 26-May-2011 Dan Bornstein <danfuzz@android.com> Prefer printf format "%#x" over "0x%x".

I exist to serve.

Change-Id: I8e2880b20eefd466da8515d5b6b0c5cb75d56169
tomicTest.cpp
60fc806b679a3655c228b4093058c59941a49cfe 26-May-2011 Dan Bornstein <danfuzz@android.com> Further conservation of newlines.

Friends don't let friends end LOG() strings with newlines.

Change-Id: I5a18c766c90c4ab5f03caa6acd601d34d91beb00
estHash.cpp
estIndirectRefTable.cpp
1e1433e78f560a01744e870c19c162ab88df9dc1 21-Apr-2011 Carl Shapiro <cshapiro@google.com> Remove unneeded void argument list declarations.

Change-Id: Ica749f6defa890363ec531b29e25bc415dc2cbb9
tomicTest.cpp
estHash.cpp
estIndirectRefTable.cpp
d5c36b9040bd26a81219a7f399513526f9b46324 16-Apr-2011 Carl Shapiro <cshapiro@google.com> Move the remaining non-compiler VM code into C++.

Change-Id: Id8693208d2741c55a7b0474d1264f2112019d11f
tomicTest.c
tomicTest.cpp
estHash.c
estHash.cpp
estIndirectRefTable.c
estIndirectRefTable.cpp
c759b9f089e8e09df335a030d0555366d9395aeb 07-Apr-2011 Andy McFadden <fadden@android.com> Improve JNI indirect ref diagnostics

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
estIndirectRefTable.c
42f5f6fd86903fb873026f5826b93a396f04549f 24-Jan-2011 Carl Shapiro <cshapiro@google.com> am 6f22f6ba: am e1034238: am b387ce8a: Remove references to android_atomic_swap.

* commit '6f22f6bac408e487bcf8fcfd25ef6263cfaefd57':
Remove references to android_atomic_swap.
b387ce8ae1ffa0861be1ec94ba6c313203931a1b 24-Jan-2011 Carl Shapiro <cshapiro@google.com> Remove references to android_atomic_swap.

Bug: 3381237

Change-Id: Iabca4be285082d804b0b206025bd4ca8e008ee42
tomicTest.c
fc75f3ed87b55d625b6054e18645da5cbdba31c6 07-Dec-2010 Carl Shapiro <cshapiro@google.com> Fix implicit conversions, rename reserved works, enable -Wc++-compat.

Change-Id: I06292964a6882ea2d0c17c5c962db95e46b01543
estHash.c
453e05f3847e8c7170291df04225d41abbecd4f9 01-Jul-2010 Carl Shapiro <cshapiro@google.com> Eliminate the only use of the releasing swap name.

Change-Id: I5e59c5b364c4155b179ceb9c16d2c4baae6cd2ea
tomicTest.c
0d3291c78488fc64455270c42e4a70d433e11f33 30-Jun-2010 Brian Carlstrom <bdc@google.com> Merge remote branch 'goog/dalvik-dev' into mm

Change-Id: I4346c9891939e589c627b9de4d71b959ed8f3b51
38a17866b31e0b6dee320f32a8644e358583ab23 17-Jun-2010 Andy McFadden <fadden@android.com> Implement 64-bit atomic ops for ARMv6K+.

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
tomicSpeed.c
tomicTest.c
6e10b9aaa72425a4825a25f0043533d0c6fdbba4 15-Jun-2010 Andy McFadden <fadden@android.com> Atomic op cleanup.

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
tomicSpeed.c
7365493ad8d360c1dcf9cd8b6eee62747af01cae 09-Jun-2010 Carl Shapiro <cshapiro@google.com> Remove repeated newlines at the end of files.

Change-Id: I1e3d103a7b932ef21acedb6438c0f26b315df28f
tomicSpeed.c
de75089fb7216d19e9c22cce4dc62a49513477d3 09-Jun-2010 Carl Shapiro <cshapiro@google.com> Remove trailing whitespace.

Change-Id: I95534bb2b88eaf48f2329282041118cd034c812b
tomicSpeed.c
fbdcfb9ea9e2a78f295834424c3f24986ea45dac 29-May-2010 Brian Carlstrom <bdc@google.com> Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-master

Change-Id: I0c0edb3ebf0d5e040d6bbbf60269fab0deb70ef9
tomicSpeed.c
estHash.c
b31b30131bbf58280a515c40027aa958b81b5cd6 26-May-2010 Carl Shapiro <cshapiro@google.com> Eliminate more unused variables and compiler warnings.

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
tomicSpeed.c
e3c01dac83e6eea7f82fe81ed89cfbdd9791dbc9 21-May-2010 Carl Shapiro <cshapiro@google.com> Remove unused labels, variables, and functions. Enable warnings.

Change-Id: Icbe24eaf1ad499f28b68b6a5f05368271a0a7e86
estHash.c
5d599603ea3d759aabe9a6b274c11b76191d1792 01-Sep-2009 Andy McFadden <fadden@android.com> Minor debugging tweaks to IndirectRefTable.

Added serial number checks, fixed tests, updated logging.
estIndirectRefTable.c
ab00d455ea67fbf4090567bb09ead8017896ea61 19-Aug-2009 Andy McFadden <fadden@android.com> Progress toward indirect JNI references.

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.)
estIndirectRefTable.c
734155efc18543eab20b763f9a315ab1a44240ac 17-Jul-2009 Andy McFadden <fadden@android.com> Indirect reference table implementation.

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
est.h
estHash.c
estIndirectRefTable.c
99409883d9c4c0ffb49b070ce307bb33a9dfe9f1 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import //branches/master/...@140412
tomicSpeed.c
est.h
f6c387128427e121477c1b32ad35cdcaa5101ba3 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
est.h
estHash.c
f72d5de56a522ac3be03873bdde26f23a5eeeb3c 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
est.h
estHash.c
2ad60cfc28e14ee8f0bb038720836a4696c478ad 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
est.h
estHash.c