hotspot/src/share/vm/oops/klassOop.hpp
changeset 8725 8c1e3dd5fe1b
parent 7397 5b173b4ca846
child 10540 92d59dba2407
equal deleted inserted replaced
8724:693c6b883b54 8725:8c1e3dd5fe1b
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2011, 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.
    43 
    43 
    44   // support for code generation
    44   // support for code generation
    45   static int klass_part_offset_in_bytes()        { return sizeof(klassOopDesc); }
    45   static int klass_part_offset_in_bytes()        { return sizeof(klassOopDesc); }
    46 
    46 
    47   // returns the Klass part containing dispatching behavior
    47   // returns the Klass part containing dispatching behavior
    48   Klass* klass_part()                            { return (Klass*)((address)this + klass_part_offset_in_bytes()); }
    48   Klass* klass_part() const                      { return (Klass*)((address)this + klass_part_offset_in_bytes()); }
       
    49 
       
    50   // Convenience wrapper
       
    51   inline oop java_mirror() const;
       
    52 
       
    53  private:
       
    54   // These have no implementation since klassOop should never be accessed in this fashion
       
    55   oop obj_field(int offset) const;
       
    56   void obj_field_put(int offset, oop value);
       
    57   void obj_field_raw_put(int offset, oop value);
       
    58 
       
    59   jbyte byte_field(int offset) const;
       
    60   void byte_field_put(int offset, jbyte contents);
       
    61 
       
    62   jchar char_field(int offset) const;
       
    63   void char_field_put(int offset, jchar contents);
       
    64 
       
    65   jboolean bool_field(int offset) const;
       
    66   void bool_field_put(int offset, jboolean contents);
       
    67 
       
    68   jint int_field(int offset) const;
       
    69   void int_field_put(int offset, jint contents);
       
    70 
       
    71   jshort short_field(int offset) const;
       
    72   void short_field_put(int offset, jshort contents);
       
    73 
       
    74   jlong long_field(int offset) const;
       
    75   void long_field_put(int offset, jlong contents);
       
    76 
       
    77   jfloat float_field(int offset) const;
       
    78   void float_field_put(int offset, jfloat contents);
       
    79 
       
    80   jdouble double_field(int offset) const;
       
    81   void double_field_put(int offset, jdouble contents);
       
    82 
       
    83   address address_field(int offset) const;
       
    84   void address_field_put(int offset, address contents);
       
    85 
       
    86   oop obj_field_acquire(int offset) const;
       
    87   void release_obj_field_put(int offset, oop value);
       
    88 
       
    89   jbyte byte_field_acquire(int offset) const;
       
    90   void release_byte_field_put(int offset, jbyte contents);
       
    91 
       
    92   jchar char_field_acquire(int offset) const;
       
    93   void release_char_field_put(int offset, jchar contents);
       
    94 
       
    95   jboolean bool_field_acquire(int offset) const;
       
    96   void release_bool_field_put(int offset, jboolean contents);
       
    97 
       
    98   jint int_field_acquire(int offset) const;
       
    99   void release_int_field_put(int offset, jint contents);
       
   100 
       
   101   jshort short_field_acquire(int offset) const;
       
   102   void release_short_field_put(int offset, jshort contents);
       
   103 
       
   104   jlong long_field_acquire(int offset) const;
       
   105   void release_long_field_put(int offset, jlong contents);
       
   106 
       
   107   jfloat float_field_acquire(int offset) const;
       
   108   void release_float_field_put(int offset, jfloat contents);
       
   109 
       
   110   jdouble double_field_acquire(int offset) const;
       
   111   void release_double_field_put(int offset, jdouble contents);
       
   112 
       
   113   address address_field_acquire(int offset) const;
       
   114   void release_address_field_put(int offset, address contents);
    49 };
   115 };
    50 
   116 
    51 #endif // SHARE_VM_OOPS_KLASSOOP_HPP
   117 #endif // SHARE_VM_OOPS_KLASSOOP_HPP