/*
 * Disposer Method Called by Disposer thread
 * All the native memory associated with stroker is  cleaned here.
 */
void PathStroker_DisposeOps(JNIEnv *env, jlong ops)
{
    doeObject	cobj;
    PathStroker	cdata	= (PathStroker)jlong_to_ptr(ops);
    doeE	cenv;

    /* protect against getting called twice */
    if (cdata == NULL) {
        return;
    }

    cenv	= cdata->env;
    doeE_setPCtxt(cenv, env);
    doeError_reset(cenv);

    cobj = (doeObject)(cdata->stroker);
    (*cobj)->_cleanup(cenv, cobj);
    doeMem_free(cenv, cobj);

    cobj = (doeObject)(cdata->cjout);
    (*cobj)->_cleanup(cenv, cobj);
    doeMem_free(cenv, cobj);

    doeMem_free(cenv, cdata);

    doeE_destroy(cenv);
}
Beispiel #2
0
/*
 * Class:     sun_dc_pr_PathDasher
 * Method:    cClassInitialize
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_sun_dc_pr_PathDasher_cClassInitialize
  (JNIEnv *env, jclass cls)
{
    doeE	cenv	= doeE_make();
    doeE_setPCtxt(cenv, env);

    CJPathConsumer_staticInitialize(cenv);
    if (doeError_occurred(cenv)) {
	CJError_throw(cenv);
	return;
    }

    dcPathDasher_staticInitialize(cenv);
    if (doeError_occurred(cenv)) {
	CJError_throw(cenv);
	return;
    }

    doeE_destroy(cenv);

    /*
     * Cacheing the class specific data
     */
    clsDasher	= (*env)->NewGlobalRef(env, cls);
    fidCData	= (*env)->GetFieldID(env, cls, "cData", "J");
}
/*
 * Class:     sun_dc_pr_PathStroker
 * Method:    cClassFinalize
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_sun_dc_pr_PathStroker_cClassFinalize
  (JNIEnv *env, jclass cls)
{
    doeE	cenv	= doeE_make();
    doeE_setPCtxt(cenv, env);

    CJPathConsumer_staticFinalize(cenv);
    if (doeError_occurred(cenv)) {
	CJError_throw(cenv);
	return;
    }
    dcPathStroker_staticFinalize(cenv);
    if (doeError_occurred(cenv)) {
	CJError_throw(cenv);
	return;
    }
    doeE_destroy(cenv);

    (*env)->DeleteGlobalRef(env, clsStroker);
}
/*
 * Class:     sun_dc_pr_PathStroker
 * Method:    cClassInitialize
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_sun_dc_pr_PathStroker_cClassInitialize
  (JNIEnv *env, jclass cls)
{
    jfieldID	fid;

    doeE	cenv	= doeE_make();
    doeE_setPCtxt(cenv, env);

    CJPathConsumer_staticInitialize(cenv);
    if (doeError_occurred(cenv)) {
	CJError_throw(cenv);
	return;
    }
    dcPathStroker_staticInitialize(cenv);
    if (doeError_occurred(cenv)) {
	CJError_throw(cenv);
	return;
    }
    doeE_destroy(cenv);

    /* ________________________________
     * Cacheing the class specific data
     */
    clsStroker	= (*env)->NewGlobalRef(env, cls);
    fidCData	= (*env)->GetFieldID(env, cls, "cData", "J");

    fid	    = (*env)->GetStaticFieldID (env, cls, "ROUND", "I");
    jround  = (*env)->GetStaticIntField(env, cls, fid);

    fid	    = (*env)->GetStaticFieldID (env, cls, "SQUARE", "I");
    jsquare = (*env)->GetStaticIntField(env, cls, fid);

    fid	    = (*env)->GetStaticFieldID (env, cls, "BUTT", "I");
    jbutt   = (*env)->GetStaticIntField(env, cls, fid);

    fid	    = (*env)->GetStaticFieldID (env, cls, "MITER", "I");
    jmiter  = (*env)->GetStaticIntField(env, cls, fid);

    fid	    = (*env)->GetStaticFieldID (env, cls, "BEVEL", "I");
    jbevel  = (*env)->GetStaticIntField(env, cls, fid);
}
Beispiel #5
0
/*
 * Class:     sun_dc_pr_PathDasher
 * Method:    dispose
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_sun_dc_pr_PathDasher_dispose
  (JNIEnv *env, jobject obj)
{
    PathDasher	cdata	= (PathDasher)jlong_to_ptr(((*env)->GetLongField(env, obj, fidCData)));
    doeObject	cobj;

    doeE	cenv	= cdata->env;
    doeE_setPCtxt(cenv, env);
    doeError_reset(cenv);

    cobj = (doeObject)(cdata->dasher);
    (*cobj)->_cleanup(cenv, cobj);
    doeMem_free(cenv, cobj);

    cobj = (doeObject)(cdata->cjout);
    (*cobj)->_cleanup(cenv, cobj);
    doeMem_free(cenv, cobj);

    doeMem_free(cenv, cdata);

    doeE_destroy(cenv);
}