Mercurial > hg > graal-jvmci-8
comparison src/share/vm/oops/methodData.hpp @ 14860:8762b6b8fbb6
fix scanning of method data for redefined methods
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Thu, 27 Mar 2014 13:11:17 -0700 |
parents | 12eaf1a47a90 |
children | 4ca6dc0799b6 |
comparison
equal
deleted
inserted
replaced
14859:4f5c312d676e | 14860:8762b6b8fbb6 |
---|---|
255 | 255 |
256 ProfileData* data_in(); | 256 ProfileData* data_in(); |
257 | 257 |
258 // GC support | 258 // GC support |
259 void clean_weak_klass_links(BoolObjectClosure* cl); | 259 void clean_weak_klass_links(BoolObjectClosure* cl); |
260 | |
261 // Redefinition support | |
262 void clean_weak_method_links(); | |
260 }; | 263 }; |
261 | 264 |
262 | 265 |
263 // ProfileData class hierarchy | 266 // ProfileData class hierarchy |
264 class ProfileData; | 267 class ProfileData; |
511 // Subclass specific initialization | 514 // Subclass specific initialization |
512 virtual void post_initialize(BytecodeStream* stream, MethodData* mdo) {} | 515 virtual void post_initialize(BytecodeStream* stream, MethodData* mdo) {} |
513 | 516 |
514 // GC support | 517 // GC support |
515 virtual void clean_weak_klass_links(BoolObjectClosure* is_alive_closure) {} | 518 virtual void clean_weak_klass_links(BoolObjectClosure* is_alive_closure) {} |
519 | |
520 // Redefinition support | |
521 virtual void clean_weak_method_links() {} | |
516 | 522 |
517 // CI translation: ProfileData can represent both MethodDataOop data | 523 // CI translation: ProfileData can represent both MethodDataOop data |
518 // as well as CIMethodData data. This function is provided for translating | 524 // as well as CIMethodData data. This function is provided for translating |
519 // an oop in a ProfileData to the ci equivalent. Generally speaking, | 525 // an oop in a ProfileData to the ci equivalent. Generally speaking, |
520 // most ProfileData don't require any translation, so we provide the null | 526 // most ProfileData don't require any translation, so we provide the null |
1427 set_method_count(row, 0); | 1433 set_method_count(row, 0); |
1428 } | 1434 } |
1429 | 1435 |
1430 // GC support | 1436 // GC support |
1431 virtual void clean_weak_klass_links(BoolObjectClosure* is_alive_closure); | 1437 virtual void clean_weak_klass_links(BoolObjectClosure* is_alive_closure); |
1438 | |
1439 // Redefinition support | |
1440 virtual void clean_weak_method_links(); | |
1432 #endif | 1441 #endif |
1433 | 1442 |
1434 #ifndef PRODUCT | 1443 #ifndef PRODUCT |
1435 #ifdef GRAAL | 1444 #ifdef GRAAL |
1436 void print_method_data_on(outputStream* st) const; | 1445 void print_method_data_on(outputStream* st) const; |
2292 | 2301 |
2293 void clean_extra_data(BoolObjectClosure* is_alive); | 2302 void clean_extra_data(BoolObjectClosure* is_alive); |
2294 void clean_extra_data_helper(DataLayout* dp, int shift, bool reset = false); | 2303 void clean_extra_data_helper(DataLayout* dp, int shift, bool reset = false); |
2295 void verify_extra_data_clean(BoolObjectClosure* is_alive); | 2304 void verify_extra_data_clean(BoolObjectClosure* is_alive); |
2296 | 2305 |
2306 // Redefinition support | |
2307 void clean_weak_method_extra_data(); | |
2308 void verify_weak_method_extra_data_clean(); | |
2309 | |
2297 public: | 2310 public: |
2298 static int header_size() { | 2311 static int header_size() { |
2299 return sizeof(MethodData)/wordSize; | 2312 return sizeof(MethodData)/wordSize; |
2300 } | 2313 } |
2301 | 2314 |
2570 static bool profile_return(); | 2583 static bool profile_return(); |
2571 static bool profile_parameters(); | 2584 static bool profile_parameters(); |
2572 static bool profile_return_jsr292_only(); | 2585 static bool profile_return_jsr292_only(); |
2573 | 2586 |
2574 void clean_method_data(BoolObjectClosure* is_alive); | 2587 void clean_method_data(BoolObjectClosure* is_alive); |
2588 | |
2589 void clean_weak_method_links(); | |
2575 }; | 2590 }; |
2576 | 2591 |
2577 #endif // SHARE_VM_OOPS_METHODDATAOOP_HPP | 2592 #endif // SHARE_VM_OOPS_METHODDATAOOP_HPP |