< prev index next >

src/hotspot/share/oops/access.inline.hpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2017, 2018, 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) 2017, 2019, 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.
*** 197,206 **** --- 197,213 ---- GCBarrierType::clone_in_heap(src, dst, size); } }; template <class GCBarrierType, DecoratorSet decorators> + struct PostRuntimeDispatch<GCBarrierType, BARRIER_VALUE_COPY, decorators>: public AllStatic { + static void access_barrier(void* src, void* dst, ValueKlass* md) { + GCBarrierType::value_copy_in_heap(src, dst, md); + } + }; + + template <class GCBarrierType, DecoratorSet decorators> struct PostRuntimeDispatch<GCBarrierType, BARRIER_RESOLVE, decorators>: public AllStatic { static oop access_barrier(oop obj) { return GCBarrierType::resolve(obj); } };
*** 352,361 **** --- 359,375 ---- _clone_func = function; function(src, dst, size); } template <DecoratorSet decorators, typename T> + void RuntimeDispatch<decorators, T, BARRIER_VALUE_COPY>::value_copy_init(void* src, void* dst, ValueKlass* md) { + func_t function = BarrierResolver<decorators, func_t, BARRIER_VALUE_COPY>::resolve_barrier(); + _value_copy_func = function; + function(src, dst, md); + } + + template <DecoratorSet decorators, typename T> oop RuntimeDispatch<decorators, T, BARRIER_RESOLVE>::resolve_init(oop obj) { func_t function = BarrierResolver<decorators, func_t, BARRIER_RESOLVE>::resolve_barrier(); _resolve_func = function; return function(obj); }
< prev index next >