/* * Given a reference obtained from JNI or JVMTI, return an object * id suitable for sending to the debugger front end. The original * reference is not deleted. */ jlong commonRef_refToID(jobject ref) { JNIEnv *env; RefNode *node; jlong id; if (ref == NULL) { return NULL_OBJECT_ID; } env = getEnv(); debugMonitorEnter(refLock); node = findNodeByRef(env, ref); if (node == NULL) { node = newCommonRef(env, ref); } else { node->count++; } id = OBJECT_ID(node); debugMonitorExit(refLock); return id; }
/* * Given a reference obtained from JNI or JVMTI, return an object * id suitable for sending to the debugger front end. */ jlong commonRef_refToID(JNIEnv *env, jobject ref) { jlong id; if (ref == NULL) { return NULL_OBJECT_ID; } id = NULL_OBJECT_ID; debugMonitorEnter(gdata->refLock); { RefNode *node; node = findNodeByRef(env, ref); if (node == NULL) { node = newCommonRef(env, ref); if ( node != NULL ) { id = node->seqNum; } } else { id = node->seqNum; node->count++; } } debugMonitorExit(gdata->refLock); return id; }