comparison src/share/vm/classfile/javaClasses.cpp @ 4970:33df1aeaebbf

Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 27 Feb 2012 13:10:13 +0100
parents a81f60ddab06
children 8f972594effc
comparison
equal deleted inserted replaced
4703:2cfb7fb2dce7 4970:33df1aeaebbf
1345 1345
1346 oop backtrace() { 1346 oop backtrace() {
1347 return _backtrace(); 1347 return _backtrace();
1348 } 1348 }
1349 1349
1350 inline void push(methodOop method, short bci, TRAPS) { 1350 inline void push(methodOop method, int bci, TRAPS) {
1351 // Smear the -1 bci to 0 since the array only holds unsigned
1352 // shorts. The later line number lookup would just smear the -1
1353 // to a 0 even if it could be recorded.
1354 if (bci == SynchronizationEntryBCI) bci = 0;
1355 assert(bci == (jushort)bci, "doesn't fit");
1356
1351 if (_index >= trace_chunk_size) { 1357 if (_index >= trace_chunk_size) {
1352 methodHandle mhandle(THREAD, method); 1358 methodHandle mhandle(THREAD, method);
1353 expand(CHECK); 1359 expand(CHECK);
1354 method = mhandle(); 1360 method = mhandle();
1355 } 1361 }
1572 // fill in as much stack trace as possible 1578 // fill in as much stack trace as possible
1573 int max_chunks = MIN2(methods->length(), (int)MaxJavaStackTraceDepth); 1579 int max_chunks = MIN2(methods->length(), (int)MaxJavaStackTraceDepth);
1574 int chunk_count = 0; 1580 int chunk_count = 0;
1575 1581
1576 for (;!st.at_end(); st.next()) { 1582 for (;!st.at_end(); st.next()) {
1577 // add element 1583 // Add entry and smear the -1 bci to 0 since the array only holds
1578 bcis->ushort_at_put(chunk_count, st.bci()); 1584 // unsigned shorts. The later line number lookup would just smear
1585 // the -1 to a 0 even if it could be recorded.
1586 int bci = st.bci();
1587 if (bci == SynchronizationEntryBCI) bci = 0;
1588 assert(bci == (jushort)bci, "doesn't fit");
1589 bcis->ushort_at_put(chunk_count, bci);
1579 methods->obj_at_put(chunk_count, st.method()); 1590 methods->obj_at_put(chunk_count, st.method());
1580 1591
1581 chunk_count++; 1592 chunk_count++;
1582 1593
1583 // Bail-out for deep stacks 1594 // Bail-out for deep stacks