< prev index next >

src/share/vm/memory/iterator.hpp

Print this page
rev 12851 : 8138737: Remove oop_ms_adjust_pointers and use oop_iterate instead
Reviewed-by:
rev 12852 : [mq]: 8138737-remove-oop-ms-adjust-kbarrett-rev1
rev 12853 : [mq]: 8138737-remove-oop-ms-adjust-stefank-rev1

*** 1,7 **** /* ! * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 63,72 **** --- 63,82 ---- void set_ref_processor_internal(ReferenceProcessor* rp) { _ref_processor = rp; } public: ReferenceProcessor* ref_processor() const { return _ref_processor; } + // Iteration of InstanceRefKlasses differ depending on the closure, + // the below enum describes the different alternatives. + enum ReferenceIterationMode { + DO_DISCOVERY, // Apply closure and discover references + DO_FIELDS // Apply closure to all fields + }; + + // The default iteration mode is to do discovery. + virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERY; } + // If the do_metadata functions return "true", // we invoke the following when running oop_iterate(): // // 1) do_klass on the header klass pointer. // 2) do_klass on the klass pointer in the mirrors.
< prev index next >