Exemple #1
0
/*
 * 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;
}
Exemple #2
0
/*
 * 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;
}