comparison src/share/vm/runtime/thread.hpp @ 20259:4af19b914f53

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 ce8f6bb717c9
children 2c6ef90f030a
comparison
equal deleted inserted replaced
20258:64ac9c55d666 20259:4af19b914f53
470 // GC support 470 // GC support
471 // Apply "f->do_oop" to all root oops in "this". 471 // Apply "f->do_oop" to all root oops in "this".
472 // Apply "cld_f->do_cld" to CLDs that are otherwise not kept alive. 472 // Apply "cld_f->do_cld" to CLDs that are otherwise not kept alive.
473 // Used by JavaThread::oops_do. 473 // Used by JavaThread::oops_do.
474 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames 474 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames
475 virtual void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); 475 virtual void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
476 476
477 // Handles the parallel case for the method below. 477 // Handles the parallel case for the method below.
478 private: 478 private:
479 bool claim_oops_do_par_case(int collection_parity); 479 bool claim_oops_do_par_case(int collection_parity);
480 public: 480 public:
1427 1427
1428 // Frame iteration; calls the function f for all frames on the stack 1428 // Frame iteration; calls the function f for all frames on the stack
1429 void frames_do(void f(frame*, const RegisterMap*)); 1429 void frames_do(void f(frame*, const RegisterMap*));
1430 1430
1431 // Memory operations 1431 // Memory operations
1432 void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); 1432 void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1433 1433
1434 // Sweeper operations 1434 // Sweeper operations
1435 void nmethods_do(CodeBlobClosure* cf); 1435 void nmethods_do(CodeBlobClosure* cf);
1436 1436
1437 // RedefineClasses Support 1437 // RedefineClasses Support
1858 } 1858 }
1859 1859
1860 // GC support 1860 // GC support
1861 // Apply "f->do_oop" to all root oops in "this". 1861 // Apply "f->do_oop" to all root oops in "this".
1862 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames 1862 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames
1863 void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); 1863 void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1864 1864
1865 #ifndef PRODUCT 1865 #ifndef PRODUCT
1866 private: 1866 private:
1867 IdealGraphPrinter *_ideal_graph_printer; 1867 IdealGraphPrinter *_ideal_graph_printer;
1868 public: 1868 public:
1925 // Garbage collection 1925 // Garbage collection
1926 static void follow_other_roots(void f(oop*)); 1926 static void follow_other_roots(void f(oop*));
1927 1927
1928 // Apply "f->do_oop" to all root oops in all threads. 1928 // Apply "f->do_oop" to all root oops in all threads.
1929 // This version may only be called by sequential code. 1929 // This version may only be called by sequential code.
1930 static void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); 1930 static void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1931 // This version may be called by sequential or parallel code. 1931 // This version may be called by sequential or parallel code.
1932 static void possibly_parallel_oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); 1932 static void possibly_parallel_oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);
1933 // This creates a list of GCTasks, one per thread. 1933 // This creates a list of GCTasks, one per thread.
1934 static void create_thread_roots_tasks(GCTaskQueue* q); 1934 static void create_thread_roots_tasks(GCTaskQueue* q);
1935 // This creates a list of GCTasks, one per thread, for marking objects. 1935 // This creates a list of GCTasks, one per thread, for marking objects.
1936 static void create_thread_roots_marking_tasks(GCTaskQueue* q); 1936 static void create_thread_roots_marking_tasks(GCTaskQueue* q);
1937 1937