182 // All the work goes in here: |
182 // All the work goes in here: |
183 Rewriter(InstanceKlass* klass, const constantPoolHandle& cpool, Array<Method*>* methods, TRAPS); |
183 Rewriter(InstanceKlass* klass, const constantPoolHandle& cpool, Array<Method*>* methods, TRAPS); |
184 |
184 |
185 void compute_index_maps(); |
185 void compute_index_maps(); |
186 void make_constant_pool_cache(TRAPS); |
186 void make_constant_pool_cache(TRAPS); |
187 void scan_method(Method* m, bool reverse, bool* invokespecial_error); |
187 void scan_method(Thread* thread, Method* m, bool reverse, bool* invokespecial_error); |
188 void rewrite_Object_init(const methodHandle& m, TRAPS); |
188 void rewrite_Object_init(const methodHandle& m, TRAPS); |
189 void rewrite_member_reference(address bcp, int offset, bool reverse); |
189 void rewrite_member_reference(address bcp, int offset, bool reverse); |
190 void maybe_rewrite_invokehandle(address opc, int cp_index, int cache_index, bool reverse); |
190 void maybe_rewrite_invokehandle(address opc, int cp_index, int cache_index, bool reverse); |
191 void rewrite_invokedynamic(address bcp, int offset, bool reverse); |
191 void rewrite_invokedynamic(address bcp, int offset, bool reverse); |
192 void maybe_rewrite_ldc(address bcp, int offset, bool is_wide, bool reverse); |
192 void maybe_rewrite_ldc(address bcp, int offset, bool is_wide, bool reverse); |
196 |
196 |
197 // Do all the work. |
197 // Do all the work. |
198 void rewrite_bytecodes(TRAPS); |
198 void rewrite_bytecodes(TRAPS); |
199 |
199 |
200 // Revert bytecodes in case of an exception. |
200 // Revert bytecodes in case of an exception. |
201 void restore_bytecodes(); |
201 void restore_bytecodes(Thread* thread); |
202 |
202 |
203 static methodHandle rewrite_jsrs(const methodHandle& m, TRAPS); |
203 static methodHandle rewrite_jsrs(const methodHandle& m, TRAPS); |
204 public: |
204 public: |
205 // Driver routine: |
205 // Driver routine: |
206 static void rewrite(InstanceKlass* klass, TRAPS); |
206 static void rewrite(InstanceKlass* klass, TRAPS); |