1.1 --- a/src/share/vm/prims/privilegedStack.cpp Fri Aug 31 16:39:35 2012 -0700 1.2 +++ b/src/share/vm/prims/privilegedStack.cpp Sat Sep 01 13:25:18 2012 -0400 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -25,18 +25,17 @@ 1.11 #include "precompiled.hpp" 1.12 #include "memory/allocation.inline.hpp" 1.13 #include "oops/instanceKlass.hpp" 1.14 -#include "oops/methodOop.hpp" 1.15 +#include "oops/method.hpp" 1.16 #include "oops/oop.inline.hpp" 1.17 #include "prims/privilegedStack.hpp" 1.18 #include "runtime/vframe.hpp" 1.19 1.20 1.21 void PrivilegedElement::initialize(vframeStream* vfst, oop context, PrivilegedElement* next, TRAPS) { 1.22 - methodOop method = vfst->method(); 1.23 + Method* method = vfst->method(); 1.24 _klass = method->method_holder(); 1.25 _privileged_context = context; 1.26 #ifdef CHECK_UNHANDLED_OOPS 1.27 - THREAD->allow_unhandled_oop(&_klass); 1.28 THREAD->allow_unhandled_oop(&_privileged_context); 1.29 #endif // CHECK_UNHANDLED_OOPS 1.30 _frame_id = vfst->frame_id(); 1.31 @@ -48,12 +47,19 @@ 1.32 void PrivilegedElement::oops_do(OopClosure* f) { 1.33 PrivilegedElement *cur = this; 1.34 do { 1.35 - f->do_oop((oop*) &cur->_klass); 1.36 f->do_oop((oop*) &cur->_privileged_context); 1.37 cur = cur->_next; 1.38 } while(cur != NULL); 1.39 } 1.40 1.41 +void PrivilegedElement::classes_do(KlassClosure* f) { 1.42 + PrivilegedElement *cur = this; 1.43 + do { 1.44 + f->do_klass(cur->_klass); 1.45 + cur = cur->_next; 1.46 + } while(cur != NULL); 1.47 +} 1.48 + 1.49 //------------------------------------------------------------------------------- 1.50 #ifndef PRODUCT 1.51