src/hotspot/share/gc/g1/g1SATBCardTableModRefBS.hpp
changeset 47658 c2b7fb8e5144
parent 47216 71c04702a3d5
child 47794 e84aa2c71241
equal deleted inserted replaced
47657:28b2dbe488f1 47658:c2b7fb8e5144
     1 /*
     1 /*
     2  * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    52 
    52 
    53   // Add "pre_val" to a set of objects that may have been disconnected from the
    53   // Add "pre_val" to a set of objects that may have been disconnected from the
    54   // pre-marking object graph.
    54   // pre-marking object graph.
    55   static void enqueue(oop pre_val);
    55   static void enqueue(oop pre_val);
    56 
    56 
    57   virtual bool has_write_ref_pre_barrier() { return true; }
       
    58 
       
    59   // We export this to make it available in cases where the static
    57   // We export this to make it available in cases where the static
    60   // type of the barrier set is known.  Note that it is non-virtual.
    58   // type of the barrier set is known.  Note that it is non-virtual.
    61   template <class T> inline void inline_write_ref_field_pre(T* field, oop newVal);
    59   template <class T> inline void inline_write_ref_field_pre(T* field, oop newVal);
    62 
    60 
    63   // These are the more general virtual versions.
    61   // These are the more general virtual versions.
    64   inline virtual void write_ref_field_pre_work(oop* field, oop new_val);
    62   inline virtual void write_ref_field_pre_work(oop* field, oop new_val);
    65   inline virtual void write_ref_field_pre_work(narrowOop* field, oop new_val);
    63   inline virtual void write_ref_field_pre_work(narrowOop* field, oop new_val);
    66   virtual void write_ref_field_pre_work(void* field, oop new_val) {
       
    67     guarantee(false, "Not needed");
       
    68   }
       
    69 
    64 
    70   template <class T> void write_ref_array_pre_work(T* dst, int count);
    65   template <class T> void write_ref_array_pre_work(T* dst, int count);
    71   virtual void write_ref_array_pre(oop* dst, int count, bool dest_uninitialized);
    66   virtual void write_ref_array_pre(oop* dst, int count, bool dest_uninitialized);
    72   virtual void write_ref_array_pre(narrowOop* dst, int count, bool dest_uninitialized);
    67   virtual void write_ref_array_pre(narrowOop* dst, int count, bool dest_uninitialized);
    73 
    68