[PPL-devel] [GIT] ppl/ppl(master): Adapted to recent versions of GNU Prolog so as to work on 64-bit machines.
Roberto Bagnara
roberto.bagnara at bugseng.com
Wed Jul 3 18:11:53 CEST 2013
Module: ppl/ppl
Branch: master
Commit: 389c982894e8622b57712684ea9d30ca4bb8e0e6
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=389c982894e8622b57712684ea9d30ca4bb8e0e6
Author: Roberto Bagnara <roberto.bagnara at bugseng.com>
Date: Wed Jul 3 18:10:49 2013 +0200
Adapted to recent versions of GNU Prolog so as to work on 64-bit machines.
---
interfaces/Prolog/GNU/gprolog_efli.cc | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/interfaces/Prolog/GNU/gprolog_efli.cc b/interfaces/Prolog/GNU/gprolog_efli.cc
index a9bd184..8e19593 100644
--- a/interfaces/Prolog/GNU/gprolog_efli.cc
+++ b/interfaces/Prolog/GNU/gprolog_efli.cc
@@ -34,9 +34,9 @@ namespace GNU {
bool Prolog_has_unbounded_integers;
-long Prolog_min_integer;
+PlLong Prolog_min_integer;
-long Prolog_max_integer;
+PlLong Prolog_max_integer;
void
ppl_Prolog_sysdep_init() {
@@ -51,18 +51,19 @@ ppl_Prolog_sysdep_deinit() {
int
Prolog_get_Coefficient(Prolog_term_ref t, Coefficient& n) {
- long v;
- Prolog_get_long(t, &v);
+ assert(Prolog_is_integer(t));
+ PlLong v = Pl_Rd_Integer_Check(t);
n = v;
return 1;
}
int
Prolog_put_Coefficient(Prolog_term_ref& t, const Coefficient& n) {
- long l = 0;
+ PlLong l = 0;
Result r = assign_r(l, n, ROUND_IGNORE);
- if (result_overflow(r) || !Prolog_put_long(t, l))
+ if (result_overflow(r) || l < INT_LOWEST_VALUE || l > INT_GREATEST_VALUE)
throw PPL_integer_out_of_range(n);
+ t = Pl_Mk_Integer(l);
return 1;
}
More information about the PPL-devel
mailing list