History log of /art/runtime/jni_internal.cc
Revision Date Author Comments
0c6afa40af7b9f097131126d084d5f19c2accaac 19-Dec-2013 Mathieu Chartier <mathieuc@google.com> Fix NewLocalRef, NewGlobalRef to handle cleared weak globals.

We were not checking for null after decoding the reference, this
meant that we incorrectly created null weak global references instead
of returning null.

Issue: 63929
Bug: 13400455

(cherry-picked from e8c48db6bb507d7fa20c78481c58c23be0045f67)

Change-Id: I9159682e6edad8f415ef8144fc13b9aedd2cceb4
8151b8fe2987e01ed915ea2053ed42fac95ff3db 11-Dec-2013 Jeff Hao <jeffhao@google.com> Fix FindFieldID to use class's classloader to find field type.

Also includes a test case, though the test case does not recreate
this exact issue because the attached native thread would need to
have a null context classloader.

Bug: 11737351
(cherry picked from 62509b662929175228bb0d0f014ef4ef4e33be10)

Change-Id: I6f15aba990eaf84696c02c37d02e80f88aff59ed
ce88853ab316c70ef7b598978a3609611db60552 10-Oct-2013 Brian Carlstrom <bdc@google.com> Have JNI FindClass fall back to system ClassLoader
Bug: 10994325

Change-Id: Id0a46e78eecfe8a9eb91008765c4fff48697cc58
c11d9b8870de5f860b13c84003ade7b3f3125a52 19-Sep-2013 Mathieu Chartier <mathieuc@google.com> Re-enable concurrent system weak sweeping.

Enabled by disallowing new system weaks during the pause and
re-allowing it after the system weaks have been swept. Reduces
GC pause by ~1ms.

Fixes pause regression caused by fix for
Bug: 10626133

Change-Id: If49d33e7ef19cb728ed3cef5187acfa53b9b05d8
3b7ffa1f4c466f4bf8032c328a47aea83a23868c 07-Sep-2013 Elliott Hughes <enh@google.com> Support apps that pass JNI_VERSION_1_1 to GetEnv.

Bug: 10649815
Change-Id: I73b9bef20f7f8fa96cdcb5afdab9592c35ea0f3e
8fcaca53648e72bfc08b2316d42d844dfd2cef41 22-Aug-2013 Ian Rogers <irogers@google.com> Allow NULL JNI arguments for length 0 memcpys.

Bug 10393546.

(cherry picked from commit 4ffdc6bd962c37bca407267c0858b37bb18a9857)

Change-Id: I02058019be16c07da06cb88654556aac1d7964a8
4ffdc6bd962c37bca407267c0858b37bb18a9857 22-Aug-2013 Ian Rogers <irogers@google.com> Allow NULL JNI arguments for length 0 memcpys.

Bug 10393546.

Change-Id: Ifaba4481e5b356c3e85a32525e6007e35036fcd1
b8a0b94735f188bc739e4c55479c37699006b881 21-Aug-2013 Ian Rogers <irogers@google.com> Switch JNI globals lock to reader-writer.

Also, verifier rejected classes lock. These locks show as contended during
dex2oat, however, they're commonly only read access is required.

Change-Id: If8bb834cc69cd8c26494c87fb7f7b20d4e41cdfd
aa836f7fa2ef359cf8ec1ef98d924f7971ba8352 21-Aug-2013 Elliott Hughes <enh@google.com> Fix PushLocalFrame(0).

Bug: 10395422
Change-Id: Iafef3e496127bfd65db87419ba374a1e5745f148
abd7be989a7509d6dd7325d505fa9926ed502355 15-Aug-2013 Ian Rogers <irogers@google.com> Prevent segvs in JNI.

A segv in JNI code (without CheckJNI) is hard to debug as we fail to see
stacks, pending exceptions.. Make JNI code robust to null arguments, but don't
go to the lengths that CheckJNI does in also sanity checking arguments, the
priority here is just to stop the VM from crashing.

Bug 10305723

Also, allow an unknown throw location not to crash exception dumping.

Found/useful for debugging bug 10331039.

(cherry picked from commit bc939663ccfbe0c648dd6a3670041510aca82420)

Change-Id: Id0203db7d9e320d45ae5ba25d2b63939c79e5c16
02e25119b15a6f619f17db99f5d05124a5807ff3 15-Aug-2013 Mathieu Chartier <mathieuc@google.com> Fix up TODO: c++0x, update cpplint.

Needed to update cpplint to handle const auto.

Fixed a few cpplint errors that were being missed before.

Replaced most of the TODO c++0x with ranged based loops. Loops which
do not have a descriptive container name have a concrete type instead
of auto.

Change-Id: Id7cc0f27030f56057c544e94277300b3f298c9c5
bc939663ccfbe0c648dd6a3670041510aca82420 15-Aug-2013 Ian Rogers <irogers@google.com> Prevent segvs in JNI.

A segv in JNI code (without CheckJNI) is hard to debug as we fail to see
stacks, pending exceptions.. Make JNI code robust to null arguments, but don't
go to the lengths that CheckJNI does in also sanity checking arguments, the
priority here is just to stop the VM from crashing.

Bug 10305723

Also, allow an unknown throw location not to crash exception dumping.

Found/useful for debugging bug 10331039.

Change-Id: Ib1e5540df87e2d9ce7570802d624baae7797611f
ea46f950e7a51585db293cd7f047de190a482414 30-Jul-2013 Brian Carlstrom <bdc@google.com> Refactor java.lang.reflect implementation

Cherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1.

Move to ArtMethod/Field instead of AbstractMethod/Field and have
java.lang.reflect APIs delegate to ArtMethod/ArtField.

Bug: 10014286.

Change-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7
672a4230348c88cfce3a6dd37593a9257cb5516d 03-Aug-2013 Elliott Hughes <enh@google.com> Not all shared libraries have a JNI_OnLoad.

Change-Id: I7b3b6a48ed5631db6659461072ed4aa735bfd033
(cherry picked from commit 85affca81271f573c75c32316aa6faa8e52448b1)
a4afbb8c46952567713df3534fa451d9bd08956e 03-Aug-2013 Elliott Hughes <enh@google.com> Handle JNI_ERR results from JNI_OnLoad functions specially.

Change-Id: I3042f87493361d8eddab8aeebb92c6252e999425
(cherry picked from commit 7935372ab784477db452d11112cd60d26be87093)
85affca81271f573c75c32316aa6faa8e52448b1 03-Aug-2013 Elliott Hughes <enh@google.com> Not all shared libraries have a JNI_OnLoad.

Change-Id: I7b3b6a48ed5631db6659461072ed4aa735bfd033
7935372ab784477db452d11112cd60d26be87093 03-Aug-2013 Elliott Hughes <enh@google.com> Handle JNI_ERR results from JNI_OnLoad functions specially.

Change-Id: I3042f87493361d8eddab8aeebb92c6252e999425
9dcd45c60c691524bd8ef7d6f65075d9ee3e5554 29-Jul-2013 Elliott Hughes <enh@google.com> Fix NewLocalRef to use AddLocalReference.

Bug: 10026664
Change-Id: I06f8f75a92f73b3b58fa767c0d08d1b736f7d5b5
7934ac288acfb2552bb0b06ec1f61e5820d924a4 26-Jul-2013 Brian Carlstrom <bdc@google.com> Fix cpplint whitespace/comments issues

Change-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496
3e3d591f781b771de89f3b989830da2b6ac6fac8 18-Jul-2013 Brian Carlstrom <bdc@google.com> Fix cpplint build/namespaces issues

Change-Id: I19c68703270c1482d6c6aad8cdf97d3d2924360a
7940e44f4517de5e2634a7e07d58d0fb26160513 12-Jul-2013 Brian Carlstrom <bdc@google.com> Create separate Android.mk for main build targets

The runtime, compiler, dex2oat, and oatdump now are in seperate trees
to prevent dependency creep. They can now be individually built
without rebuilding the rest of the art projects. dalvikvm and jdwpspy
were already this way. Builds in the art directory should behave as
before, building everything including tests.

Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81