comparison src/share/vm/code/debugInfoRec.cpp @ 931:72088be4b386

6873116: Modify reexecute implementation to use pcDesc to record the reexecute bit Summary: use PcDesc to keep record of the reexecute bit instead of using DebugInfoStreams Reviewed-by: kvn, never, twisti
author cfang
date Thu, 20 Aug 2009 12:42:57 -0700
parents 9987d9d5eb0e
children 148e5441d916
comparison
equal deleted inserted replaced
930:357d4e2eb4dd 931:72088be4b386
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