1 /* |
1 /* |
2 * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. |
2 * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
290 int sender_stream_offset = last_pd->scope_decode_offset(); |
290 int sender_stream_offset = last_pd->scope_decode_offset(); |
291 // update the stream offset of current pc desc |
291 // update the stream offset of current pc desc |
292 int stream_offset = stream()->position(); |
292 int stream_offset = stream()->position(); |
293 last_pd->set_scope_decode_offset(stream_offset); |
293 last_pd->set_scope_decode_offset(stream_offset); |
294 |
294 |
|
295 // Record reexecute bit into pcDesc |
|
296 last_pd->set_should_reexecute(reexecute); |
|
297 |
295 // serialize sender stream offest |
298 // serialize sender stream offest |
296 stream()->write_int(sender_stream_offset); |
299 stream()->write_int(sender_stream_offset); |
297 |
300 |
298 // serialize scope |
301 // serialize scope |
299 jobject method_enc = (method == NULL)? NULL: method->encoding(); |
302 jobject method_enc = (method == NULL)? NULL: method->encoding(); |
300 stream()->write_int(oop_recorder()->find_index(method_enc)); |
303 stream()->write_int(oop_recorder()->find_index(method_enc)); |
301 stream()->write_bci_and_reexecute(bci, reexecute); |
304 stream()->write_bci(bci); |
302 assert(method == NULL || |
305 assert(method == NULL || |
303 (method->is_native() && bci == 0) || |
306 (method->is_native() && bci == 0) || |
304 (!method->is_native() && 0 <= bci && bci < method->code_size()) || |
307 (!method->is_native() && 0 <= bci && bci < method->code_size()) || |
305 bci == -1, "illegal bci"); |
308 bci == -1, "illegal bci"); |
306 |
309 |