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
|