Mercurial > hg > truffle
comparison src/share/vm/classfile/javaClasses.cpp @ 4988:eb5b24d1499f
Merge
author | Christian Haeubl <christian.haeubl@oracle.com> |
---|---|
date | Mon, 27 Feb 2012 15:06:36 -0800 |
parents | a81f60ddab06 |
children | 8f972594effc |
comparison
equal
deleted
inserted
replaced
4987:f292f9c590ba | 4988:eb5b24d1499f |
---|---|
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 |