From: John W. <joe...@us...> - 2004-10-19 09:14:21
|
Update of /cvsroot/javabdd/JavaBDD In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2418 Modified Files: buddy_jni.c Log Message: Index: buddy_jni.c =================================================================== RCS file: /cvsroot/javabdd/JavaBDD/buddy_jni.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** buddy_jni.c 16 Oct 2004 02:58:57 -0000 1.21 --- buddy_jni.c 19 Oct 2004 09:14:10 -0000 1.22 *************** *** 103,106 **** --- 103,138 ---- } + static JNIEnv *jnienv; + + static void bdd_gbchandler(int code, bddGbcStat *s) + { + jclass cls = (*jnienv)->FindClass(jnienv, "net/sf/javabdd/BuDDyFactory"); + jmethodID mid = (*jnienv)->GetStaticMethodID(jnienv, cls, "gc_callback", "(I)V"); + if (mid == 0) { + return; + } + (*jnienv)->CallStaticVoidMethod(jnienv, cls, mid, code); + } + + static void bdd_resizehandler(int a, int b) + { + jclass cls = (*jnienv)->FindClass(jnienv, "net/sf/javabdd/BuDDyFactory"); + jmethodID mid = (*jnienv)->GetStaticMethodID(jnienv, cls, "resize_callback", "(II)V"); + if (mid == 0) { + return; + } + (*jnienv)->CallStaticVoidMethod(jnienv, cls, mid, a, b); + } + + static void bdd_reorderhandler(int a) + { + jclass cls = (*jnienv)->FindClass(jnienv, "net/sf/javabdd/BuDDyFactory"); + jmethodID mid = (*jnienv)->GetStaticMethodID(jnienv, cls, "reorder_callback", "(I)V"); + if (mid == 0) { + return; + } + (*jnienv)->CallStaticVoidMethod(jnienv, cls, mid, a); + } + /**** START OF NATIVE METHOD IMPLEMENTATIONS ****/ *************** *** 125,128 **** --- 157,161 ---- jint width, r; jint* a; + jnienv = env; width = (*env)->GetArrayLength(env, arr); *************** *** 148,151 **** --- 181,185 ---- jint width, r; jint* a; + jnienv = env; width = (*env)->GetArrayLength(env, arr); *************** *** 171,174 **** --- 205,209 ---- jint width, r; jint* a; + jnienv = env; width = (*env)->GetArrayLength(env, arr); *************** *** 200,203 **** --- 235,250 ---- #endif bdd_error_hook(bdd_errhandler); + #if defined(TRACE_BUDDYLIB) + printf("bdd_resize_hook(%p)\n", bdd_resizehandler); + #endif + bdd_resize_hook(bdd_resizehandler); + #if defined(TRACE_BUDDYLIB) + printf("bdd_gbc_hook(%p)\n", bdd_gbchandler); + #endif + bdd_gbc_hook(bdd_gbchandler); + #if defined(TRACE_BUDDYLIB) + printf("bdd_reorder_hook(%p)\n", bdd_reorderhandler); + #endif + bdd_reorder_hook(bdd_reorderhandler); check_error(env); } *************** *** 225,228 **** --- 272,276 ---- (JNIEnv *env, jclass cl) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_done()\n"); *************** *** 271,274 **** --- 319,323 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_setmaxnodenum(%d)\n", size); *************** *** 282,295 **** * Class: net_sf_javabdd_BuDDyFactory * Method: setMinFreeNodes0 ! * Signature: (I)V */ ! JNIEXPORT void JNICALL Java_net_sf_javabdd_BuDDyFactory_setMinFreeNodes0 (JNIEnv *env, jclass cl, jint n) { #if defined(TRACE_BUDDYLIB) printf("bdd_setminfreenodes(%d)\n", n); #endif ! bdd_setminfreenodes(n); check_error(env); } --- 331,347 ---- * Class: net_sf_javabdd_BuDDyFactory * Method: setMinFreeNodes0 ! * Signature: (I)I */ ! JNIEXPORT jint JNICALL Java_net_sf_javabdd_BuDDyFactory_setMinFreeNodes0 (JNIEnv *env, jclass cl, jint n) { + int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_setminfreenodes(%d)\n", n); #endif ! result = bdd_setminfreenodes(n); check_error(env); + return result; } *************** *** 303,306 **** --- 355,359 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_setmaxincrease(%d)\n", size); *************** *** 320,323 **** --- 373,377 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_setcacheratio(%d)\n", r); *************** *** 337,340 **** --- 391,395 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_varnum()\n"); *************** *** 354,357 **** --- 409,413 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_setvarnum(%d)\n", num); *************** *** 371,374 **** --- 427,431 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_extvarnum(%d)\n", num); *************** *** 388,391 **** --- 445,449 ---- { BDD b; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_ithvar(%d)\n", var); *************** *** 405,408 **** --- 463,467 ---- { BDD b; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_nithvar(%d)\n", var); *************** *** 421,424 **** --- 480,484 ---- (JNIEnv *env, jclass cl, jint v1, jint v2) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_swapvar(%d, %d)\n", v1, v2); *************** *** 438,441 **** --- 498,502 ---- bddPair* pair; jlong r; + jnienv = env; #if defined(TRACE_BUDDYLIB) *************** *** 455,458 **** --- 516,520 ---- (JNIEnv *env, jclass cl) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_printall()\n"); *************** *** 471,474 **** --- 533,537 ---- (JNIEnv *env, jclass cl, jint bdd) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_printtable(%d)\n", bdd); *************** *** 490,493 **** --- 553,557 ---- int rc; char *str; + jnienv = env; str = (char*) (*env)->GetStringUTFChars(env, fname, NULL); *************** *** 512,515 **** --- 576,580 ---- int rc; char *str; + jnienv = env; str = (char*) (*env)->GetStringUTFChars(env, fname, NULL); *************** *** 532,535 **** --- 597,601 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_level2var(%d)\n", level); *************** *** 549,552 **** --- 615,619 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_var2level(%d)\n", var); *************** *** 565,568 **** --- 632,636 ---- (JNIEnv * env, jclass cl, jint method) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_reorder(%d)\n", method); *************** *** 580,583 **** --- 648,652 ---- (JNIEnv *env, jclass cl, jint method) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_autoreorder(%d)\n", method); *************** *** 595,598 **** --- 664,668 ---- (JNIEnv *env, jclass cl, jint method, jint n) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_autoreorder_times(%d, %d)\n", method, n); *************** *** 611,614 **** --- 681,685 ---- { int method; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_getreorder_method()\n"); *************** *** 628,631 **** --- 699,703 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_getreorder_times()\n"); *************** *** 644,647 **** --- 716,720 ---- (JNIEnv *env, jclass cl) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_disable_reorder()\n"); *************** *** 659,662 **** --- 732,736 ---- (JNIEnv *env, jclass cl) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_enable_reorder()\n"); *************** *** 675,678 **** --- 749,753 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_reorder_verbose(%d)\n", level); *************** *** 693,696 **** --- 768,772 ---- jint *a; jint size, varnum; + jnienv = env; size = (*env)->GetArrayLength(env, arr); varnum = bdd_varnum(); *************** *** 719,722 **** --- 795,799 ---- (JNIEnv *env, jclass cl, jint var, jboolean fixed) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_addvarblock(%d, %d)\n", var , fixed); *************** *** 734,737 **** --- 811,815 ---- (JNIEnv *env, jclass cl, jint first, jint last, jboolean fixed) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_intaddvarblock(%d, %d, %d)\n", first, last, fixed); *************** *** 749,752 **** --- 827,831 ---- (JNIEnv *env, jclass cl) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_varblockall()\n"); *************** *** 764,767 **** --- 843,847 ---- (JNIEnv *env, jclass cl) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_clrvarblocks()\n"); *************** *** 779,782 **** --- 859,863 ---- (JNIEnv *env, jclass cl) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_printorder()\n"); *************** *** 798,801 **** --- 879,883 ---- jint size; int result; + jnienv = env; size = (*env)->GetArrayLength(env, arr); a = (*env)->GetIntArrayElements(env, arr, 0); *************** *** 819,822 **** --- 901,905 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_getallocnum()\n"); *************** *** 836,839 **** --- 919,923 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_getnodenum()\n"); *************** *** 853,856 **** --- 937,941 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_reorder_gain()\n"); *************** *** 869,872 **** --- 954,958 ---- (JNIEnv *env, jclass c) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_printstat()\n"); *************** *** 886,889 **** --- 972,976 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_var(%d)\n", b); *************** *** 903,906 **** --- 990,994 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_high(%d)\n", b); *************** *** 920,923 **** --- 1008,1012 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_low(%d)\n", b); *************** *** 936,939 **** --- 1025,1029 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_not(%d)\n", b); *************** *** 953,956 **** --- 1043,1047 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_ite(%d, %d, %d)\n", b, c, d); *************** *** 970,973 **** --- 1061,1065 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_relprod(%d, %d, %d)\n", b, c, d); *************** *** 987,990 **** --- 1079,1083 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_compose(%d, %d, %d)\n", b, c, v); *************** *** 1004,1007 **** --- 1097,1101 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_constrain(%d, %d)\n", b, c); *************** *** 1021,1024 **** --- 1115,1119 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_exist(%d, %d)\n", b, c); *************** *** 1038,1041 **** --- 1133,1137 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_forall(%d, %d)\n", b, c); *************** *** 1055,1058 **** --- 1151,1155 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_unique(%d, %d)\n", b, c); *************** *** 1072,1075 **** --- 1169,1173 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_restrict(%d, %d)\n", b, c); *************** *** 1089,1092 **** --- 1187,1191 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_simplify(%d, %d)\n", b, c); *************** *** 1106,1109 **** --- 1205,1209 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_support(%d)\n", b); *************** *** 1123,1126 **** --- 1223,1227 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_apply(%d, %d, %d)\n", b, c, operation); *************** *** 1140,1143 **** --- 1241,1245 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_appall(%d, %d, %d, %d)\n", b, c, operation, d); *************** *** 1157,1160 **** --- 1259,1263 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_appex(%d, %d, %d, %d)\n", b, c, operation, d); *************** *** 1174,1177 **** --- 1277,1281 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_appuni(%d, %d, %d, %d)\n", b, c, operation, d); *************** *** 1191,1194 **** --- 1295,1299 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_satone(%d)\n", b); *************** *** 1208,1211 **** --- 1313,1317 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_fullsatone(%d)\n", b); *************** *** 1225,1228 **** --- 1331,1335 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_satoneset(%d, %d, %d)\n", b, c, d); *************** *** 1256,1259 **** --- 1363,1367 ---- jclass c; int size; + jnienv = env; c = (*env)->FindClass(env, "[B"); #if defined(TRACE_BUDDYLIB) *************** *** 1285,1288 **** --- 1393,1397 ---- (JNIEnv *env, jclass cl, jint b) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_printset(%d)\n", b); *************** *** 1301,1304 **** --- 1410,1414 ---- (JNIEnv *env, jclass cl, jint b) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_printdot(%d)\n", b); *************** *** 1318,1321 **** --- 1428,1432 ---- { int result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_nodecount(%d)\n", b); *************** *** 1335,1338 **** --- 1446,1450 ---- { double result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_pathcount(%d)\n", b); *************** *** 1352,1355 **** --- 1464,1468 ---- { double result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_satcount(%d)\n", b); *************** *** 1369,1372 **** --- 1482,1486 ---- { double result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_satcountset(%d, %d)\n", b, c); *************** *** 1386,1389 **** --- 1500,1504 ---- { double result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_satcountln(%d)\n", b); *************** *** 1403,1406 **** --- 1518,1522 ---- { double result; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_satcountlnset(%d, %d)\n", b, c); *************** *** 1422,1425 **** --- 1538,1542 ---- int size; int* arr; + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_varnum()\n"); *************** *** 1447,1450 **** --- 1564,1568 ---- (JNIEnv *env, jclass cl, jint b) { + jnienv = env; #if defined(TRACE_BUDDYLIB) printf("bdd_addref(%d)\n", b); *************** *** 1462,1465 **** --- 1580,1584 ---- (JNIEnv *env, jclass cl, jint b) { + jnienv = env; if (b != INVALID_BDD) { #if defined(TRACE_BUDDYLIB) *************** *** 1481,1484 **** --- 1600,1604 ---- int result; bddPair* p; + jnienv = env; p = (bddPair*) (intptr_cast_type) pair; #if defined(TRACE_BUDDYLIB) *************** *** 1500,1503 **** --- 1620,1624 ---- int result; bddPair* p; + jnienv = env; p = (bddPair*) (intptr_cast_type) pair; #if defined(TRACE_BUDDYLIB) *************** *** 1520,1523 **** --- 1641,1645 ---- { bddPair* p; + jnienv = env; p = (bddPair*) (intptr_cast_type) pair; #if defined(TRACE_BUDDYLIB) *************** *** 1540,1543 **** --- 1662,1666 ---- jint *a2; bddPair* p; + jnienv = env; p = (bddPair*) (intptr_cast_type) pair; size1 = (*env)->GetArrayLength(env, arr1); *************** *** 1573,1576 **** --- 1696,1700 ---- { bddPair* p; + jnienv = env; p = (bddPair*) (intptr_cast_type) pair; #if defined(TRACE_BUDDYLIB) *************** *** 1593,1596 **** --- 1717,1721 ---- bdd *a2; bddPair* p; + jnienv = env; p = (bddPair*) (intptr_cast_type) pair; size1 = (*env)->GetArrayLength(env, arr1); *************** *** 1626,1629 **** --- 1751,1755 ---- { bddPair* p; + jnienv = env; p = (bddPair*) (intptr_cast_type) pair; #if defined(TRACE_BUDDYLIB) *************** *** 1643,1646 **** --- 1769,1773 ---- { bddPair* p; + jnienv = env; p = (bddPair*) (intptr_cast_type) pair; if (p) { |