comparison src/share/vm/prims/jvmtiRedefineClasses.cpp @ 6203:04ade88d9712

6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K Reviewed-by: sspitsyn, dholmes, coleenp, kamg
author fparain
date Mon, 09 Jul 2012 01:28:37 -0700
parents d2a62e0f25eb
children e74da3c2b827
comparison
equal deleted inserted replaced
6202:5a1f452f8f90 6203:04ade88d9712
1 /* 1 /*
2 * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2003, 2012, Oracle and/or its affiliates. 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.
3234 // Copy the "source file name" attribute from new class version 3234 // Copy the "source file name" attribute from new class version
3235 the_class->set_source_file_name(scratch_class->source_file_name()); 3235 the_class->set_source_file_name(scratch_class->source_file_name());
3236 3236
3237 // Copy the "source debug extension" attribute from new class version 3237 // Copy the "source debug extension" attribute from new class version
3238 the_class->set_source_debug_extension( 3238 the_class->set_source_debug_extension(
3239 scratch_class->source_debug_extension()); 3239 scratch_class->source_debug_extension(),
3240 scratch_class->source_debug_extension() == NULL ? 0 :
3241 (int)strlen(scratch_class->source_debug_extension()));
3240 3242
3241 // Use of javac -g could be different in the old and the new 3243 // Use of javac -g could be different in the old and the new
3242 if (scratch_class->access_flags().has_localvariable_table() != 3244 if (scratch_class->access_flags().has_localvariable_table() !=
3243 the_class->access_flags().has_localvariable_table()) { 3245 the_class->access_flags().has_localvariable_table()) {
3244 3246