Mercurial > hg > truffle
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 |