comparison src/share/vm/runtime/thread.hpp @ 14483:be0ac0e8f6e7

8035393: Use CLDClosure instead of CLDToOopClosure in frame::oops_interpreted_do Reviewed-by: tschatzl, coleenp
author stefank
date Fri, 21 Feb 2014 10:01:20 +0100
parents 2c95095271e9
children f460c6926af7
comparison
equal deleted inserted replaced
14470:f6490a5f084a 14483:be0ac0e8f6e7
485 // GC support 485 // GC support
486 // Apply "f->do_oop" to all root oops in "this". 486 // Apply "f->do_oop" to all root oops in "this".
487 // Apply "cld_f->do_cld" to CLDs that are otherwise not kept alive. 487 // Apply "cld_f->do_cld" to CLDs that are otherwise not kept alive.
488 // Used by JavaThread::oops_do. 488 // Used by JavaThread::oops_do.
489 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames 489 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames
490 virtual void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); 490 virtual void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
491 491
492 // Handles the parallel case for the method below. 492 // Handles the parallel case for the method below.
493 private: 493 private:
494 bool claim_oops_do_par_case(int collection_parity); 494 bool claim_oops_do_par_case(int collection_parity);
495 public: 495 public:
1422 1422
1423 // Frame iteration; calls the function f for all frames on the stack 1423 // Frame iteration; calls the function f for all frames on the stack
1424 void frames_do(void f(frame*, const RegisterMap*)); 1424 void frames_do(void f(frame*, const RegisterMap*));
1425 1425
1426 // Memory operations 1426 // Memory operations
1427 void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); 1427 void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1428 1428
1429 // Sweeper operations 1429 // Sweeper operations
1430 void nmethods_do(CodeBlobClosure* cf); 1430 void nmethods_do(CodeBlobClosure* cf);
1431 1431
1432 // RedefineClasses Support 1432 // RedefineClasses Support
1850 } 1850 }
1851 1851
1852 // GC support 1852 // GC support
1853 // Apply "f->do_oop" to all root oops in "this". 1853 // Apply "f->do_oop" to all root oops in "this".
1854 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames 1854 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames
1855 void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); 1855 void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1856 1856
1857 #ifndef PRODUCT 1857 #ifndef PRODUCT
1858 private: 1858 private:
1859 IdealGraphPrinter *_ideal_graph_printer; 1859 IdealGraphPrinter *_ideal_graph_printer;
1860 public: 1860 public:
1919 // Garbage collection 1919 // Garbage collection
1920 static void follow_other_roots(void f(oop*)); 1920 static void follow_other_roots(void f(oop*));
1921 1921
1922 // Apply "f->do_oop" to all root oops in all threads. 1922 // Apply "f->do_oop" to all root oops in all threads.
1923 // This version may only be called by sequential code. 1923 // This version may only be called by sequential code.
1924 static void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); 1924 static void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1925 // This version may be called by sequential or parallel code. 1925 // This version may be called by sequential or parallel code.
1926 static void possibly_parallel_oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); 1926 static void possibly_parallel_oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1927 // This creates a list of GCTasks, one per thread. 1927 // This creates a list of GCTasks, one per thread.
1928 static void create_thread_roots_tasks(GCTaskQueue* q); 1928 static void create_thread_roots_tasks(GCTaskQueue* q);
1929 // This creates a list of GCTasks, one per thread, for marking objects. 1929 // This creates a list of GCTasks, one per thread, for marking objects.
1930 static void create_thread_roots_marking_tasks(GCTaskQueue* q); 1930 static void create_thread_roots_marking_tasks(GCTaskQueue* q);
1931 1931