
Module: ppl/ppl Branch: master Commit: 09db70209198b5acc3d35c423323196c0a56d35f URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=09db70209198b...
Author: Enea Zaffanella zaffanella@cs.unipr.it Date: Tue Mar 30 11:53:00 2010 +0200
Enable Java interface for termination procedures (and corrected bugs).
---
interfaces/Java/jni/Makefile.am | 5 +- ...ppl_interface_generator_java_classes_cc_code.m4 | 64 ++++++++++---------- .../Java/parma_polyhedra_library/Makefile.am | 2 +- 3 files changed, 37 insertions(+), 34 deletions(-)
diff --git a/interfaces/Java/jni/Makefile.am b/interfaces/Java/jni/Makefile.am index 79d7919..ce947ef 100644 --- a/interfaces/Java/jni/Makefile.am +++ b/interfaces/Java/jni/Makefile.am @@ -106,6 +106,7 @@ ppl_java_common.cc \ ppl_java_globals.cc
nodist_EXTRA_libppl_java_la_SOURCES = \ +ppl_java_Termination.cc \ ppl_java_Int8_Box.cc \ ppl_java_Int16_Box.cc \ ppl_java_Int32_Box.cc \ @@ -179,12 +180,14 @@ ppl_java_Constraints_Product_Grid_C_Polyhedron.cc \ ppl_java_Constraints_Product_Grid_NNC_Polyhedron.cc
libppl_java_la_LIBADD = \ +ppl_java_Termination.lo \ @required_instantiations_java_cxx_objects@ \ $(top_builddir)/src/libppl.la \ $(WATCHDOG_LIBRARY) \ @extra_libraries@
libppl_java_la_DEPENDENCIES = \ +ppl_java_Termination.lo \ @required_instantiations_java_cxx_objects@
ppl_java_implementation_domains.cc.stamp: $(interface_generator_dependencies) @@ -198,8 +201,8 @@ ppl_java_implementation_domains.cc.stamp: $(interface_generator_dependencies) echo timestamp >$@
CLEANFILES = \ -@required_instantiations_java_cxx_sources@ \ ppl_java_Termination.cc \ +@required_instantiations_java_cxx_sources@ \ ppl_java_implementation_domains.cc.stamp
$(top_builddir)/interfaces/ppl_interface_instantiations.m4: diff --git a/interfaces/Java/jni/ppl_interface_generator_java_classes_cc_code.m4 b/interfaces/Java/jni/ppl_interface_generator_java_classes_cc_code.m4 index 3c09592..256acec 100644 --- a/interfaces/Java/jni/ppl_interface_generator_java_classes_cc_code.m4 +++ b/interfaces/Java/jni/ppl_interface_generator_java_classes_cc_code.m4 @@ -1387,8 +1387,8 @@ JNIEXPORT jboolean JNICALL Java_parma_1polyhedra_1library_Termination_termination_1test_1@TERMINATION_ID@_1@TOPOLOGY@1@CLASS@ (JNIEnv* env, jclass, jobject j_p) { try { - @TOPOLOGY@@CLASS@* p_ptr - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p)); + @TOPOLOGY@@CPP_CLASS@* p_ptr + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p)); return termination_test_@TERMINATION_ID@(*p_ptr); } CATCH_ALL; @@ -1406,10 +1406,10 @@ JNIEXPORT jboolean JNICALL Java_parma_1polyhedra_1library_Termination_termination_1test_1@TERMINATION_ID@_1@TOPOLOGY@1@CLASS@_12 (JNIEnv* env, jclass, jobject j_p_before, jobject j_p_after) { try { - @TOPOLOGY@@CLASS@* p_ptr_before - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p_before)); - @TOPOLOGY@@CLASS@* p_ptr_after - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p_after)); + @TOPOLOGY@@CPP_CLASS@* p_ptr_before + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p_before)); + @TOPOLOGY@@CPP_CLASS@* p_ptr_after + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p_after)); return termination_test_@TERMINATION_ID@_2(*p_ptr_before, *p_ptr_after); } CATCH_ALL; @@ -1427,8 +1427,8 @@ JNIEXPORT jboolean JNICALL Java_parma_1polyhedra_1library_Termination_one_1affine_1ranking_1function_1@TERMINATION_ID@_1@TOPOLOGY@1@CLASS@ (JNIEnv* env, jclass, jobject j_p, jobject j_g) { try { - @TOPOLOGY@@CLASS@* p_ptr - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p)); + @TOPOLOGY@@CPP_CLASS@* p_ptr + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p)); Generator g(point()); if (one_affine_ranking_function_@TERMINATION_ID@(*p_ptr, g)) { jobject j_g_result = build_java_generator(env, g);; @@ -1450,12 +1450,12 @@ ___BEGIN_OF_FILE___ ppl_java_Termination.cc << ___END_OF_FILE___
JNIEXPORT jboolean JNICALL Java_parma_1polyhedra_1library_Termination_one_1affine_1ranking_1function_1@TERMINATION_ID@_1@TOPOLOGY@1@CLASS@_12 -(JNIEnv* env, jclass, jobject j_p_before, jobject j_g_after) { +(JNIEnv* env, jclass, jobject j_p_before, jobject j_p_after, jobject j_g) { try { - @TOPOLOGY@@CLASS@* p_ptr_before - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p_before)); - @TOPOLOGY@@CLASS@* p_ptr_after - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p_after)); + @TOPOLOGY@@CPP_CLASS@* p_ptr_before + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p_before)); + @TOPOLOGY@@CPP_CLASS@* p_ptr_after + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p_after)); Generator g(point()); if (one_affine_ranking_function_@TERMINATION_ID@_2(*p_ptr_before, *p_ptr_after, g)) { jobject j_g_result = build_java_generator(env, g);; @@ -1479,11 +1479,11 @@ JNIEXPORT void JNICALL Java_parma_1polyhedra_1library_Termination_all_1affine_1ranking_1functions_1@TERMINATION_ID@_1@TOPOLOGY@1@CLASS@ (JNIEnv* env, jclass, jobject j_p, jobject j_ph) { try { - @TOPOLOGY@@CLASS@* p_ptr - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p)); + @TOPOLOGY@@CPP_CLASS@* p_ptr + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p)); @A_TERMINATION_ID@Polyhedron* ph = new @A_TERMINATION_ID@Polyhedron(); - all_affine_ranking_functions_@TERMINATION_ID@(*p_ptr, *ph) { - set_ptr(env, j_ph, *ph); + all_affine_ranking_functions_@TERMINATION_ID@(*p_ptr, *ph); + set_ptr(env, j_ph, ph); } CATCH_ALL; } @@ -1499,13 +1499,13 @@ JNIEXPORT void JNICALL Java_parma_1polyhedra_1library_Termination_all_1affine_1ranking_1functions_1@TERMINATION_ID@_1@TOPOLOGY@1@CLASS@_12 (JNIEnv* env, jclass, jobject j_p_before, jobject j_p_after, jobject j_ph) { try { - @TOPOLOGY@@CLASS@* p_ptr_before - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p_before)); - @TOPOLOGY@@CLASS@* p_ptr_after - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p_after)); + @TOPOLOGY@@CPP_CLASS@* p_ptr_before + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p_before)); + @TOPOLOGY@@CPP_CLASS@* p_ptr_after + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p_after)); @A_TERMINATION_ID@Polyhedron* ph = new @A_TERMINATION_ID@Polyhedron(); all_affine_ranking_functions_@TERMINATION_ID@_2(*p_ptr_before, *p_ptr_after, *ph); - set_ptr(env, j_ph, *ph); + set_ptr(env, j_ph, ph); } CATCH_ALL; } @@ -1522,13 +1522,13 @@ Java_parma_1polyhedra_1library_Termination_all_1affine_1quasi_1ranking_1function (JNIEnv* env, jclass, jobject j_p, jobject j_ph_decreasing, jobject j_ph_bounded) { try { - @TOPOLOGY@@CLASS@* p_ptr - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p)); + @TOPOLOGY@@CPP_CLASS@* p_ptr + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p)); C_Polyhedron* ph_decreasing = new C_Polyhedron(); C_Polyhedron* ph_bounded = new C_Polyhedron(); all_affine_quasi_ranking_functions_MS(*p_ptr, *ph_decreasing, *ph_bounded); - set_ptr(env, j_ph_decreasing, *ph_decreasing); - set_ptr(env, j_ph_bounded, *ph_bounded); + set_ptr(env, j_ph_decreasing, ph_decreasing); + set_ptr(env, j_ph_bounded, ph_bounded); } CATCH_ALL; } @@ -1545,16 +1545,16 @@ Java_parma_1polyhedra_1library_Termination_all_1affine_1quasi_1ranking_1function (JNIEnv* env, jclass, jobject j_p_before, jobject j_p_after, jobject j_ph_decreasing, jobject j_ph_bounded) { try { - @TOPOLOGY@@CLASS@* p_ptr_before - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p_before)); - @TOPOLOGY@@CLASS@* p_ptr_after - = reinterpret_cast<@TOPOLOGY@@CLASS@*>(get_ptr(env, j_p_after)); + @TOPOLOGY@@CPP_CLASS@* p_ptr_before + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p_before)); + @TOPOLOGY@@CPP_CLASS@* p_ptr_after + = reinterpret_cast<@TOPOLOGY@@CPP_CLASS@*>(get_ptr(env, j_p_after)); C_Polyhedron* ph_decreasing = new C_Polyhedron(); C_Polyhedron* ph_bounded = new C_Polyhedron(); all_affine_quasi_ranking_functions_MS_2(*p_ptr_before, *p_ptr_after, *ph_decreasing, *ph_bounded); - set_ptr(env, j_ph_decreasing, *ph_decreasing); - set_ptr(env, j_ph_bounded, *ph_bounded); + set_ptr(env, j_ph_decreasing, ph_decreasing); + set_ptr(env, j_ph_bounded, ph_bounded); } CATCH_ALL; } diff --git a/interfaces/Java/parma_polyhedra_library/Makefile.am b/interfaces/Java/parma_polyhedra_library/Makefile.am index 6de00bb..a87bf56 100644 --- a/interfaces/Java/parma_polyhedra_library/Makefile.am +++ b/interfaces/Java/parma_polyhedra_library/Makefile.am @@ -78,7 +78,7 @@ parma_polyhedra_library.Poly_Con_Relation \ parma_polyhedra_library.Poly_Gen_Relation \ parma_polyhedra_library.PPL_Object \ parma_polyhedra_library.Relation_Symbol \ -parma_polyhedra_library.Termination \ +parma_polyhedra_library.Termination \ parma_polyhedra_library.Variable \ parma_polyhedra_library.Variables_Set