Mercurial > hg > truffle
comparison src/share/vm/interpreter/rewriter.hpp @ 13390:d61a1a166f44
8028347: Rewriter::scan_method asserts with array oob in RT_Baseline
Summary: Fix reversing rewriting for invokespecial
Reviewed-by: jrose, hseigel
author | coleenp |
---|---|
date | Fri, 15 Nov 2013 17:20:22 -0500 |
parents | 41cb10cbfb3c |
children | 26c3b944dc35 |
comparison
equal
deleted
inserted
replaced
13389:438fe38c63c8 | 13390:d61a1a166f44 |
---|---|
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); |