src/share/vm/prims/jvmtiClassFileReconstituter.hpp

Print this page




 103   enum {
 104     // initial size should be power of two
 105     initial_buffer_size = 1024
 106   };
 107 
 108   inline Thread* thread() { return _thread; }
 109 
 110   void write_class_file_format();
 111   void write_field_infos();
 112   void write_method_infos();
 113   void write_method_info(methodHandle method);
 114   void write_code_attribute(methodHandle method);
 115   void write_exceptions_attribute(constMethodHandle const_method);
 116   void write_synthetic_attribute();
 117   void write_class_attributes();
 118   void write_source_file_attribute();
 119   void write_source_debug_extension_attribute();
 120   u2 line_number_table_entries(methodHandle method);
 121   void write_line_number_table_attribute(methodHandle method, u2 num_entries);
 122   void write_local_variable_table_attribute(methodHandle method, u2 num_entries);

 123   void write_stackmap_table_attribute(methodHandle method, int stackmap_table_len);
 124   u2 inner_classes_attribute_length();
 125   void write_inner_classes_attribute(int length);
 126   void write_signature_attribute(u2 generic_signaure_index);
 127   void write_attribute_name_index(const char* name);
 128   void write_annotations_attribute(const char* attr_name, typeArrayHandle annos);
 129 
 130   address writeable_address(size_t size);
 131   void write_u1(u1 x);
 132   void write_u2(u2 x);
 133   void write_u4(u4 x);
 134   void write_u8(u8 x);
 135 
 136  public:
 137   // Calls to this constructor must be proceeded by a ResourceMark
 138   // and a HandleMark
 139   JvmtiClassFileReconstituter(instanceKlassHandle ikh) :
 140                                       JvmtiConstantPoolReconstituter(ikh) {
 141     _buffer_size = initial_buffer_size;
 142     _buffer = _buffer_ptr = NEW_RESOURCE_ARRAY(u1, _buffer_size);


 103   enum {
 104     // initial size should be power of two
 105     initial_buffer_size = 1024
 106   };
 107 
 108   inline Thread* thread() { return _thread; }
 109 
 110   void write_class_file_format();
 111   void write_field_infos();
 112   void write_method_infos();
 113   void write_method_info(methodHandle method);
 114   void write_code_attribute(methodHandle method);
 115   void write_exceptions_attribute(constMethodHandle const_method);
 116   void write_synthetic_attribute();
 117   void write_class_attributes();
 118   void write_source_file_attribute();
 119   void write_source_debug_extension_attribute();
 120   u2 line_number_table_entries(methodHandle method);
 121   void write_line_number_table_attribute(methodHandle method, u2 num_entries);
 122   void write_local_variable_table_attribute(methodHandle method, u2 num_entries);
 123   void write_local_variable_type_table_attribute(methodHandle method, u2 num_entries);
 124   void write_stackmap_table_attribute(methodHandle method, int stackmap_table_len);
 125   u2 inner_classes_attribute_length();
 126   void write_inner_classes_attribute(int length);
 127   void write_signature_attribute(u2 generic_signaure_index);
 128   void write_attribute_name_index(const char* name);
 129   void write_annotations_attribute(const char* attr_name, typeArrayHandle annos);
 130 
 131   address writeable_address(size_t size);
 132   void write_u1(u1 x);
 133   void write_u2(u2 x);
 134   void write_u4(u4 x);
 135   void write_u8(u8 x);
 136 
 137  public:
 138   // Calls to this constructor must be proceeded by a ResourceMark
 139   // and a HandleMark
 140   JvmtiClassFileReconstituter(instanceKlassHandle ikh) :
 141                                       JvmtiConstantPoolReconstituter(ikh) {
 142     _buffer_size = initial_buffer_size;
 143     _buffer = _buffer_ptr = NEW_RESOURCE_ARRAY(u1, _buffer_size);