bytecode JavaInstruction::toBytecode() { bytecode b; write_u1(b, name); for (shared_ptr<JavaReference> jr: args) { write_list(b, jr->toByteCode()); } return b; }
// Write SourceDebugExtension attribute // JSR45| SourceDebugExtension_attribute { // JSR45| u2 attribute_name_index; // JSR45| u4 attribute_length; // JSR45| u1 debug_extension[attribute_length]; // JSR45| } void JvmtiClassFileReconstituter::write_source_debug_extension_attribute() { assert(ikh()->source_debug_extension() != NULL, "caller must check"); write_attribute_name_index("SourceDebugExtension"); int len = (int)strlen(ikh()->source_debug_extension()); write_u4(len); u1* ext = (u1*)ikh()->source_debug_extension(); for (int i=0; i<len; i++) { write_u1(ext[i]); } }