hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp
changeset 13201 69f157caabcc
parent 12231 6a9cfc59a18a
child 13286 b8b0898d5f3a
equal deleted inserted replaced
13200:7b506e7b406e 13201:69f157caabcc
   266 
   266 
   267 // Write SourceDebugExtension attribute
   267 // Write SourceDebugExtension attribute
   268 // JSR45|   SourceDebugExtension_attribute {
   268 // JSR45|   SourceDebugExtension_attribute {
   269 // JSR45|       u2 attribute_name_index;
   269 // JSR45|       u2 attribute_name_index;
   270 // JSR45|       u4 attribute_length;
   270 // JSR45|       u4 attribute_length;
   271 // JSR45|       u2 sourcefile_index;
   271 // JSR45|       u1 debug_extension[attribute_length];
   272 // JSR45|   }
   272 // JSR45|   }
   273 void JvmtiClassFileReconstituter::write_source_debug_extension_attribute() {
   273 void JvmtiClassFileReconstituter::write_source_debug_extension_attribute() {
   274   assert(ikh()->source_debug_extension() != NULL, "caller must check");
   274   assert(ikh()->source_debug_extension() != NULL, "caller must check");
   275 
   275 
   276   write_attribute_name_index("SourceDebugExtension");
   276   write_attribute_name_index("SourceDebugExtension");
   277   write_u4(2);  // always length 2
   277   int len = (int)strlen(ikh()->source_debug_extension());
   278   write_u2(symbol_to_cpool_index(ikh()->source_debug_extension()));
   278   write_u4(len);
       
   279   u1* ext = (u1*)ikh()->source_debug_extension();
       
   280   for (int i=0; i<len; i++) {
       
   281     write_u1(ext[i]);
       
   282   }
   279 }
   283 }
   280 
   284 
   281 // Write (generic) Signature attribute
   285 // Write (generic) Signature attribute
   282 // JVMSpec|   Signature_attribute {
   286 // JVMSpec|   Signature_attribute {
   283 // JVMSpec|     u2 attribute_name_index;
   287 // JVMSpec|     u2 attribute_name_index;