sockdata->clientCertSlot = NULL;
JSSL_CreateSocketData(JNIEnv *env, jobject sockObj, PRFileDesc* newFD,        PRFilePrivate *priv){    JSSL_SocketData *sockdata = NULL;    /* make a JSSL_SocketData structure */    sockdata = PR_Malloc( sizeof(JSSL_SocketData) );    sockdata->fd = newFD;    sockdata->socketObject = NULL;    sockdata->certApprovalCallback = NULL;    sockdata->clientCertSelectionCallback = NULL;    sockdata->clientCert = NULL;    sockdata->jsockPriv = priv;    sockdata->closed = PR_FALSE;    /*     * Make a global ref to the socket. Since it is a weak reference, it will     * get garbage collected if this is the only reference that remains.     * We do this so that sockets will get closed when they go out of scope     * in the Java layer.     */    sockdata->socketObject = NEW_WEAK_GLOBAL_REF(env, sockObj);    if( sockdata->socketObject == NULL ) goto finish;finish:    if( (*env)->ExceptionOccurred(env) != NULL ) {        if( sockdata != NULL ) {            JSSL_DestroySocketData(env, sockdata);            sockdata = NULL;        } else {            PR_ASSERT( sockdata != NULL );        }    }    return sockdata;}