src/share/vm/prims/jvmtiClassFileReconstituter.cpp

changeset 3906
04ade88d9712
parent 3670
f7c4174b33ba
child 3921
e74da3c2b827
     1.1 --- a/src/share/vm/prims/jvmtiClassFileReconstituter.cpp	Thu Jun 28 11:37:28 2012 +0200
     1.2 +++ b/src/share/vm/prims/jvmtiClassFileReconstituter.cpp	Mon Jul 09 01:28:37 2012 -0700
     1.3 @@ -268,14 +268,18 @@
     1.4  // JSR45|   SourceDebugExtension_attribute {
     1.5  // JSR45|       u2 attribute_name_index;
     1.6  // JSR45|       u4 attribute_length;
     1.7 -// JSR45|       u2 sourcefile_index;
     1.8 +// JSR45|       u1 debug_extension[attribute_length];
     1.9  // JSR45|   }
    1.10  void JvmtiClassFileReconstituter::write_source_debug_extension_attribute() {
    1.11    assert(ikh()->source_debug_extension() != NULL, "caller must check");
    1.12  
    1.13    write_attribute_name_index("SourceDebugExtension");
    1.14 -  write_u4(2);  // always length 2
    1.15 -  write_u2(symbol_to_cpool_index(ikh()->source_debug_extension()));
    1.16 +  int len = (int)strlen(ikh()->source_debug_extension());
    1.17 +  write_u4(len);
    1.18 +  u1* ext = (u1*)ikh()->source_debug_extension();
    1.19 +  for (int i=0; i<len; i++) {
    1.20 +    write_u1(ext[i]);
    1.21 +  }
    1.22  }
    1.23  
    1.24  // Write (generic) Signature attribute

mercurial