Mercurial > hg > truffle
comparison src/share/vm/runtime/vmThread.cpp @ 7179:d0aa87f04bd5
8003720: NPG: Method in interpreter stack frame can be deallocated
Summary: Pass down a closure during root scanning to keep the class of the method alive.
Reviewed-by: coleenp, jcoomes
author | stefank |
---|---|
date | Tue, 27 Nov 2012 10:13:20 +0100 |
parents | da91efe96a93 |
children | f34d701e952e |
comparison
equal
deleted
inserted
replaced
7178:19c1bd641922 | 7179:d0aa87f04bd5 |
---|---|
666 _cur_vm_operation = prev_vm_operation; | 666 _cur_vm_operation = prev_vm_operation; |
667 } | 667 } |
668 } | 668 } |
669 | 669 |
670 | 670 |
671 void VMThread::oops_do(OopClosure* f, CodeBlobClosure* cf) { | 671 void VMThread::oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf) { |
672 Thread::oops_do(f, cf); | 672 Thread::oops_do(f, cld_f, cf); |
673 _vm_queue->oops_do(f); | 673 _vm_queue->oops_do(f); |
674 } | 674 } |
675 | 675 |
676 //------------------------------------------------------------------------------------------------------------------ | 676 //------------------------------------------------------------------------------------------------------------------ |
677 #ifndef PRODUCT | 677 #ifndef PRODUCT |
699 } | 699 } |
700 | 700 |
701 #endif | 701 #endif |
702 | 702 |
703 void VMThread::verify() { | 703 void VMThread::verify() { |
704 oops_do(&VerifyOopClosure::verify_oop, NULL); | 704 oops_do(&VerifyOopClosure::verify_oop, NULL, NULL); |
705 } | 705 } |