restore was restoring twice

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@2205 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc 2008-04-04 09:10:02 +00:00
parent 04682ef5f0
commit 042e5326d3
4 changed files with 28 additions and 8 deletions

View File

@ -116,6 +116,7 @@ AtomAdjust(Atom a)
#define CharP(X) ((char *)(X))
#define AddrAdjust(P) (P)
#define MFileAdjust(P) (P)
#define PredEntryAdjust(P) (P)
#define AtomEntryAdjust(P) (P)
#define GlobalEntryAdjust(P) (P)

View File

@ -10,8 +10,13 @@
* File: c_interface.c *
* comments: c_interface primitives definition *
* *
* Last rev: $Date: 2008-04-03 13:26:38 $,$Author: vsc $ *
* Last rev: $Date: 2008-04-04 09:10:02 $,$Author: vsc $ *
* $Log: not supported by cvs2svn $
* Revision 1.112 2008/04/03 13:26:38 vsc
* protect signal handling with locks for threaded version.
* fix close/1 entry in manual (obs from Nicos).
* fix -f option in chr Makefile.
*
* Revision 1.111 2008/04/02 21:44:07 vsc
* threaded version should ignore saved states (for now).
*
@ -1664,7 +1669,7 @@ YAP_Init(YAP_init_args *yap_init)
Yap_argv = yap_init->Argv;
Yap_argc = yap_init->Argc;
#ifdef THREADS
#ifdef USE_SYSTEM_MALLOC
if (yap_init->SavedState) {
fprintf(stderr,"[ WARNING: threaded Yap will ignore saved state %s ]\n",yap_init->SavedState);
yap_init->SavedState = NULL;

View File

@ -11,8 +11,12 @@
* File: rheap.h *
* comments: walk through heap code *
* *
* Last rev: $Date: 2008-04-03 11:34:47 $,$Author: vsc $ *
* Last rev: $Date: 2008-04-04 09:10:02 $,$Author: vsc $ *
* $Log: not supported by cvs2svn $
* Revision 1.92 2008/04/03 11:34:47 vsc
* fix restorebb in cases entry key is not an atom (obs from Nicos
* Angelopoulos)
*
* Revision 1.91 2008/04/01 15:31:43 vsc
* more saved state fixes
*
@ -1203,12 +1207,14 @@ CleanCode(PredEntry *pp)
} else {
pp->FunctorOfPred = (Functor)AtomAdjust((Atom)(pp->FunctorOfPred));
}
if (pp->ModuleOfPred != IDB_MODULE) {
if (pp->src.OwnerFile && pp->ModuleOfPred != IDB_MODULE)
if (!(pp->PredFlags & NumberDBPredFlag)) {
if (pp->PredFlags & MultiFileFlag) {
if (pp->src.file_srcs)
pp->src.file_srcs = MFileAdjust(pp->src.file_srcs);
} else {
if (pp->src.OwnerFile)
pp->src.OwnerFile = AtomAdjust(pp->src.OwnerFile);
}
if (!(pp->PredFlags & NumberDBPredFlag)) {
pp->src.OwnerFile = AtomAdjust(pp->src.OwnerFile);
}
pp->OpcodeOfPred = Yap_opcode(Yap_op_from_opcode(pp->OpcodeOfPred));
if (pp->PredFlags & (AsmPredFlag|CPredFlag)) {

View File

@ -378,6 +378,14 @@ AtomEntryAdjust (AtomEntry * at)
return (AtomEntry *) ((AtomEntry *) (CharP (at) + HDiff));
}
inline EXTERN struct mfile *MFileAdjust (struct mfile *);
inline EXTERN struct mfile *
MFileAdjust (struct mfile * at)
{
return (struct mfile *) (CharP (at) + HDiff);
}
inline EXTERN GlobalEntry *GlobalEntryAdjust (GlobalEntry *);
inline EXTERN GlobalEntry *