src/share/demo/jvmti/heapTracker/HeapTracker.java
author duke
Sat Dec 01 00:00:00 2007 +0000 (9 months ago)
changeset 0 37a05a11f281
permissions -rw-r--r--
Initial load
        1 /*
        2  * Copyright 2004 Sun Microsystems, Inc.  All Rights Reserved.
        3  *
        4  * Redistribution and use in source and binary forms, with or without
        5  * modification, are permitted provided that the following conditions
        6  * are met:
        7  *
        8  *   - Redistributions of source code must retain the above copyright
        9  *     notice, this list of conditions and the following disclaimer.
       10  *
       11  *   - Redistributions in binary form must reproduce the above copyright
       12  *     notice, this list of conditions and the following disclaimer in the
       13  *     documentation and/or other materials provided with the distribution.
       14  *
       15  *   - Neither the name of Sun Microsystems nor the names of its
       16  *     contributors may be used to endorse or promote products derived
       17  *     from this software without specific prior written permission.
       18  *
       19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
       20  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
       21  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
       22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
       23  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
       24  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
       25  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
       26  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
       27  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
       28  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
       29  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
       30  */
       31 
       32 
       33 /* Java class to hold static methods which will be called in byte code
       34  *    injections of all class files.
       35  */
       36 
       37 public class HeapTracker {
       38 
       39     private static int engaged = 0;
       40 
       41     private static native void _newobj(Object thread, Object o);
       42     public static void newobj(Object o)
       43     {
       44         if ( engaged != 0 ) {
       45             _newobj(Thread.currentThread(), o);
       46         }
       47     }
       48 
       49     private static native void _newarr(Object thread, Object a);
       50     public static void newarr(Object a)
       51     {
       52         if ( engaged != 0 ) {
       53             _newarr(Thread.currentThread(), a);
       54         }
       55     }
       56 
       57 }