< 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 >