/* * 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); }
/* * 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); }
/* * 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); }