< prev index next > src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp
Print this page
/*
* Copyright (c) 2015, 2021, Red Hat, Inc. All rights reserved.
+ * Copyright Amazon.com Inc. 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.
#include "gc/shenandoah/shenandoahOopClosures.hpp"
#include "gc/shenandoah/shenandoahHeap.inline.hpp"
#include "gc/shenandoah/shenandoahMark.inline.hpp"
! template<class T>
inline void ShenandoahMarkRefsSuperClosure::work(T* p) {
! ShenandoahMark::mark_through_ref<T>(p, _queue, _mark_context, _weak);
}
! template<class T>
inline void ShenandoahMarkUpdateRefsSuperClosure::work(T* p) {
// Update the location
_heap->update_with_forwarded(p);
// ...then do the usual thing
! ShenandoahMarkRefsSuperClosure::work<T>(p);
}
template<class T>
inline void ShenandoahSTWUpdateRefsClosure::work(T* p) {
_heap->update_with_forwarded(p);
#include "gc/shenandoah/shenandoahOopClosures.hpp"
#include "gc/shenandoah/shenandoahHeap.inline.hpp"
#include "gc/shenandoah/shenandoahMark.inline.hpp"
! template<class T, ShenandoahGenerationType GENERATION>
inline void ShenandoahMarkRefsSuperClosure::work(T* p) {
! ShenandoahMark::mark_through_ref<T, GENERATION>(p, _queue, _old_queue, _mark_context, _weak);
}
! template<class T, ShenandoahGenerationType GENERATION>
inline void ShenandoahMarkUpdateRefsSuperClosure::work(T* p) {
// Update the location
_heap->update_with_forwarded(p);
// ...then do the usual thing
! ShenandoahMarkRefsSuperClosure::work<T, GENERATION>(p);
}
template<class T>
inline void ShenandoahSTWUpdateRefsClosure::work(T* p) {
_heap->update_with_forwarded(p);
< prev index next >