From b159736edd38822d2ee0ebb3ced14e6cdb1fc5ca Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Tue, 14 Apr 2009 01:25:21 +0100 Subject: [PATCH] fixes for 64 bits. --- include/YapInterface.h | 4 ++-- library/yap2swi/yap2swi.c | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/include/YapInterface.h b/include/YapInterface.h index 1f987cccb..3f532a079 100644 --- a/include/YapInterface.h +++ b/include/YapInterface.h @@ -209,11 +209,11 @@ extern X_API YAP_Bool PROTO(YAP_Unify,(YAP_Term, YAP_Term)); extern X_API void PROTO(YAP_UserCPredicate,(CONST char *, YAP_Bool (*)(void), unsigned int)); /* void UserCPredicateWithArgs(const char *name, int *fn(), unsigned int arity) */ -extern X_API void PROTO(YAP_UserCPredicateWithArgs,(CONST char *, YAP_Bool (*)(void), unsigned int,unsigned int)); +extern X_API void PROTO(YAP_UserCPredicateWithArgs,(CONST char *, YAP_Bool (*)(void), unsigned long int, unsigned long int)); /* void UserBackCPredicate(const char *name, int *init(), int *cont(), int arity, int extra) */ -extern X_API void PROTO(YAP_UserBackCPredicate,(CONST char *, YAP_Bool (*)(void), YAP_Bool (*)(void), unsigned int, unsigned int)); +extern X_API void PROTO(YAP_UserBackCPredicate,(CONST char *, YAP_Bool (*)(void), YAP_Bool (*)(void), unsigned long int, unsigned int)); /* void UserBackCPredicate(char *name, int *init(), int *cont(), int *cut(), int arity, int extra) */ diff --git a/library/yap2swi/yap2swi.c b/library/yap2swi/yap2swi.c index 472f2a1d3..e8fedc709 100644 --- a/library/yap2swi/yap2swi.c +++ b/library/yap2swi/yap2swi.c @@ -1736,6 +1736,7 @@ X_API int PL_call(term_t tp, module_t m) X_API void PL_register_foreign_in_module(const char *module, const char *name, int arity, foreign_t (*function)(void), int flags) { Term tmod; + if (flags & (PL_FA_NOTRACE|PL_FA_NONDETERMINISTIC|PL_FA_CREF)) { fprintf(stderr,"PL_register_foreign_in_module called with non-implemented flag %x when creating predicate %s:%s/%d\n", flags, module, name, arity); } @@ -1745,16 +1746,16 @@ X_API void PL_register_foreign_in_module(const char *module, const char *name, i tmod = MkAtomTerm(Yap_LookupAtom((char *)module)); } if (flags & PL_FA_VARARGS) - UserCPredicateVarargs((char *)name,(YAP_Bool (*)(void))function,arity,tmod); + UserCPredicateVarargs((char *)name,(CPredicate)function,arity,tmod); else if (flags & PL_FA_TRANSPARENT) - UserCPredicateWithArgs((char *)name,(YAP_Bool (*)(void))function,arity,tmod,ModuleTransparentPredFlag); + UserCPredicateWithArgs((char *)name,(CPredicate)function,arity,tmod,ModuleTransparentPredFlag); else - UserCPredicateWithArgs((char *)name,(YAP_Bool (*)(void))function,arity,tmod,0); + UserCPredicateWithArgs((char *)name,(CPredicate)function,arity,tmod,0); } X_API void PL_register_extensions(PL_extension *ptr) { - while(ptr->predicate_name != NULL) { + while (ptr->predicate_name) { PL_register_foreign_in_module(NULL, ptr->predicate_name, ptr->arity, ptr->function, ptr->flags); ptr++; } @@ -1764,7 +1765,7 @@ X_API void PL_load_extensions(PL_extension *ptr) { /* ignore flags for now */ while(ptr->predicate_name != NULL) { - UserCPredicateWithArgs(ptr->predicate_name,(YAP_Bool (*)(void))ptr->function,ptr->arity,YAP_CurrentModule(),0); + UserCPredicateWithArgs(ptr->predicate_name,(CPredicate)ptr->function,ptr->arity,YAP_CurrentModule(),0); ptr++; } }