187 // All the work goes in here: |
187 // All the work goes in here: |
188 Rewriter(instanceKlassHandle klass, constantPoolHandle cpool, Array<Method*>* methods, TRAPS); |
188 Rewriter(instanceKlassHandle klass, constantPoolHandle cpool, Array<Method*>* methods, TRAPS); |
189 |
189 |
190 void compute_index_maps(); |
190 void compute_index_maps(); |
191 void make_constant_pool_cache(TRAPS); |
191 void make_constant_pool_cache(TRAPS); |
192 void scan_method(Method* m, bool reverse, TRAPS); |
192 void scan_method(Method* m, bool reverse, bool* invokespecial_error); |
193 void rewrite_Object_init(methodHandle m, TRAPS); |
193 void rewrite_Object_init(methodHandle m, TRAPS); |
194 void rewrite_member_reference(address bcp, int offset, bool reverse); |
194 void rewrite_member_reference(address bcp, int offset, bool reverse); |
195 void maybe_rewrite_invokehandle(address opc, int cp_index, int cache_index, bool reverse); |
195 void maybe_rewrite_invokehandle(address opc, int cp_index, int cache_index, bool reverse); |
196 void rewrite_invokedynamic(address bcp, int offset, bool reverse); |
196 void rewrite_invokedynamic(address bcp, int offset, bool reverse); |
197 void maybe_rewrite_ldc(address bcp, int offset, bool is_wide, bool reverse); |
197 void maybe_rewrite_ldc(address bcp, int offset, bool is_wide, bool reverse); |
198 void rewrite_invokespecial(address bcp, int offset, bool reverse, TRAPS); |
198 void rewrite_invokespecial(address bcp, int offset, bool reverse, bool* invokespecial_error); |
199 |
199 |
200 void patch_invokedynamic_bytecodes(); |
200 void patch_invokedynamic_bytecodes(); |
201 |
201 |
202 // Revert bytecodes in case of an exception. |
202 // Revert bytecodes in case of an exception. |
203 void restore_bytecodes(TRAPS); |
203 void restore_bytecodes(); |
204 |
204 |
205 static methodHandle rewrite_jsrs(methodHandle m, TRAPS); |
205 static methodHandle rewrite_jsrs(methodHandle m, TRAPS); |
206 public: |
206 public: |
207 // Driver routine: |
207 // Driver routine: |
208 static void rewrite(instanceKlassHandle klass, TRAPS); |
208 static void rewrite(instanceKlassHandle klass, TRAPS); |