equal
deleted
inserted
replaced
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 |