< prev index next >

src/jdk.jdwp.agent/share/native/libjdwp/ObjectReferenceImpl.c

Print this page


   1 /*
   2  * Copyright (c) 1998, 2005, Oracle and/or its affiliates. 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.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 335         error = objectReferrers(object, &referrerBatch, maxReferrers);
 336         if (error != JVMTI_ERROR_NONE) {
 337             outStream_setError(out, map2jdwpError(error));
 338         } else {
 339             int kk;
 340 
 341             (void)outStream_writeInt(out, referrerBatch.count);
 342             for (kk = 0; kk < referrerBatch.count; kk++) {
 343                 jobject ref;
 344 
 345                 ref = referrerBatch.objects[kk];
 346                 (void)outStream_writeByte(out, specificTypeKey(env, ref));
 347                 (void)outStream_writeObjectRef(env, out, ref);
 348             }
 349             jvmtiDeallocate(referrerBatch.objects);
 350         }
 351     } END_WITH_LOCAL_REFS(env);
 352     return JNI_TRUE;
 353 }
 354 
 355 void *ObjectReference_Cmds[] = { (void *)10
 356     ,(void *)referenceType
 357     ,(void *)getValues
 358     ,(void *)setValues
 359     ,(void *)NULL      /* no longer used */
 360     ,(void *)monitorInfo
 361     ,(void *)invokeInstance
 362     ,(void *)disableCollection
 363     ,(void *)enableCollection
 364     ,(void *)isCollected
 365     ,(void *)referringObjects
 366     };



   1 /*
   2  * Copyright (c) 1998, 2020, Oracle and/or its affiliates. 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.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 335         error = objectReferrers(object, &referrerBatch, maxReferrers);
 336         if (error != JVMTI_ERROR_NONE) {
 337             outStream_setError(out, map2jdwpError(error));
 338         } else {
 339             int kk;
 340 
 341             (void)outStream_writeInt(out, referrerBatch.count);
 342             for (kk = 0; kk < referrerBatch.count; kk++) {
 343                 jobject ref;
 344 
 345                 ref = referrerBatch.objects[kk];
 346                 (void)outStream_writeByte(out, specificTypeKey(env, ref));
 347                 (void)outStream_writeObjectRef(env, out, ref);
 348             }
 349             jvmtiDeallocate(referrerBatch.objects);
 350         }
 351     } END_WITH_LOCAL_REFS(env);
 352     return JNI_TRUE;
 353 }
 354 
 355 CommandSet ObjectReference_Cmds = {
 356     10, "ObjectReference",
 357     {
 358         {referenceType, "ReferenceType"},
 359         {getValues, "GetValues"},
 360         {setValues, "SetValues"},
 361         {NULL, "<unused>"},
 362         {monitorInfo, "MonitorInfo"},
 363         {invokeInstance, "InvokeInstance"},
 364         {disableCollection, "DisableCollection"},
 365         {enableCollection, "EnableCollection"},
 366         {isCollected, "IsCollected"},
 367         {referringObjects, "ReferringObjects"}
 368     }
 369 };
< prev index next >