diff options
author | Andy McFadden <fadden@android.com> | 2009-07-16 18:11:22 -0700 |
---|---|---|
committer | Andy McFadden <fadden@android.com> | 2009-07-31 13:18:56 -0700 |
commit | 734155efc18543eab20b763f9a315ab1a44240ac (patch) | |
tree | d8243b4f35ccf73f1de1b721b9005ebcc6f77da1 /vm/Init.c | |
parent | 51b9e5c27aa5d5c399f93f2df2b2ca1674b0858d (diff) | |
download | android_dalvik-734155efc18543eab20b763f9a315ab1a44240ac.tar.gz android_dalvik-734155efc18543eab20b763f9a315ab1a44240ac.tar.bz2 android_dalvik-734155efc18543eab20b763f9a315ab1a44240ac.zip |
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
Diffstat (limited to 'vm/Init.c')
-rw-r--r-- | vm/Init.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -1241,7 +1241,10 @@ int dvmStartup(int argc, const char* const argv[], bool ignoreUnrecognized, #ifndef NDEBUG - dvmTestHash(); + if (!dvmTestHash()) + LOGE("dmvTestHash FAILED\n"); + if (false /*noisy!*/ && !dvmTestIndirectRefTable()) + LOGE("dvmTestIndirectRefTable FAILED\n"); #endif assert(!dvmCheckException(dvmThreadSelf())); |