hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/NarrowOopField.java
changeset 360 21d113ecbf6a
child 5547 f4b087cbb361
equal deleted inserted replaced
357:f4edb0d9f109 360:21d113ecbf6a
       
     1 /*
       
     2  * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
       
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     4  *
       
     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
       
     7  * published by the Free Software Foundation.
       
     8  *
       
     9  * This code is distributed in the hope that it will be useful, but WITHOUT
       
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    12  * version 2 for more details (a copy is included in the LICENSE file that
       
    13  * accompanied this code).
       
    14  *
       
    15  * You should have received a copy of the GNU General Public License version
       
    16  * 2 along with this work; if not, write to the Free Software Foundation,
       
    17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    18  *
       
    19  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
       
    20  * CA 95054 USA or visit www.sun.com if you need additional information or
       
    21  * have any questions.
       
    22  *
       
    23  */
       
    24 
       
    25 package sun.jvm.hotspot.oops;
       
    26 
       
    27 import sun.jvm.hotspot.debugger.*;
       
    28 
       
    29 // The class for an oop field simply provides access to the value.
       
    30 public class NarrowOopField extends OopField {
       
    31   public NarrowOopField(FieldIdentifier id, long offset, boolean isVMField) {
       
    32     super(id, offset, isVMField);
       
    33   }
       
    34 
       
    35   public NarrowOopField(sun.jvm.hotspot.types.OopField vmField, long startOffset) {
       
    36     super(new NamedFieldIdentifier(vmField.getName()), vmField.getOffset() + startOffset, true);
       
    37   }
       
    38 
       
    39   public NarrowOopField(InstanceKlass holder, int fieldArrayIndex) {
       
    40     super(holder, fieldArrayIndex);
       
    41   }
       
    42 
       
    43   public Oop getValue(Oop obj) {
       
    44     return obj.getHeap().newOop(getValueAsOopHandle(obj));
       
    45   }
       
    46 
       
    47   /** Debugging support */
       
    48   public OopHandle getValueAsOopHandle(Oop obj) {
       
    49     return obj.getHandle().getCompOopHandleAt(getOffset());
       
    50   }
       
    51 
       
    52   public void setValue(Oop obj) throws MutationException {
       
    53     // Fix this: setOopAt is missing in Address
       
    54   }
       
    55 }