diff --git a/C/alloc.c b/C/alloc.c index 6bfdbd8f5..b102196e0 100644 --- a/C/alloc.c +++ b/C/alloc.c @@ -12,7 +12,7 @@ * Last rev: * * mods: * * comments: allocating space * -* version:$Id: alloc.c,v 1.92 2008-04-02 17:37:05 vsc Exp $ * +* version:$Id: alloc.c,v 1.93 2008-04-06 11:53:02 vsc Exp $ * *************************************************************************/ #ifdef SCCS static char SccsId[] = "%W% %G%"; @@ -743,7 +743,7 @@ InitWorkSpace(Int s) Yap_page_size = si.dwPageSize; s = ((s+ (YAP_ALLOC_SIZE-1))/YAP_ALLOC_SIZE)*YAP_ALLOC_SIZE; brk = (LPVOID)Yap_page_size; - if (!ExtendWorkSpace(s,0)) + if (!ExtendWorkSpace(s+1024*1024,0)) return FALSE; return (MALLOC_T)brk-s; } @@ -1358,6 +1358,7 @@ Yap_InitMemory(int Trail, int Heap, int Stack) sa = Stack; /* stack area size */ ta = Trail; /* trail area size */ + pm += 1024*1024; InitHeap(InitWorkSpace(pm)); Yap_TrailTop = Yap_HeapBase + pm; diff --git a/C/stdpreds.c b/C/stdpreds.c index a64349d7d..9c63c78a2 100644 --- a/C/stdpreds.c +++ b/C/stdpreds.c @@ -11,8 +11,11 @@ * File: stdpreds.c * * comments: General-purpose C implemented system predicates * * * -* Last rev: $Date: 2008-03-15 12:19:33 $,$Author: vsc $ * +* Last rev: $Date: 2008-04-06 11:53:02 $,$Author: vsc $ * * $Log: not supported by cvs2svn $ +* Revision 1.129 2008/03/15 12:19:33 vsc +* fix flags +* * Revision 1.128 2008/02/15 12:41:33 vsc * more fixes to modules * @@ -2669,7 +2672,7 @@ cont_current_predicate(void) cut_fail(); EXTRA_CBACK_ARG(3,1) = (CELL)MkIntegerTerm((Int)(pp->NextPredOfModule)); if (pp->FunctorOfPred == FunctorModule) - return(FALSE); + return FALSE; if (pp->ModuleOfPred != IDB_MODULE) { Arity = pp->ArityOfPE; if (Arity) @@ -2689,8 +2692,9 @@ cont_current_predicate(void) Arity = ArityOfFunctor(f); } } - return (Yap_unify(ARG2,name) && - Yap_unify(ARG3, MkIntegerTerm((Int)Arity))); + return + Yap_unify(ARG2,name) && + Yap_unify(ARG3, MkIntegerTerm((Int)Arity)); } static Int @@ -2700,7 +2704,7 @@ init_current_predicate(void) if (IsVarTerm(t1) || !IsAtomTerm(t1)) cut_fail(); EXTRA_CBACK_ARG(3,1) = MkIntegerTerm((Int)Yap_ModulePred(t1)); - return (cont_current_predicate()); + return cont_current_predicate(); } static Int @@ -2718,8 +2722,9 @@ cont_current_predicate_for_atom(void) if (p->ModuleOfPred == mod || p->ModuleOfPred == 0) { /* we found the predicate */ - EXTRA_CBACK_ARG(3,1) = (CELL)MkIntegerTerm((Int)(pp->NextOfPE)); - return(Yap_unify(ARG3,Yap_MkNewApplTerm(p->FunctorOfPred,p->ArityOfPE))); + EXTRA_CBACK_ARG(3,1) = MkIntegerTerm((Int)(pp->NextOfPE)); + return + Yap_unify(ARG3,Yap_MkNewApplTerm(p->FunctorOfPred,p->ArityOfPE)); } p0 = p->NextOfPE; } @@ -2728,8 +2733,8 @@ cont_current_predicate_for_atom(void) if (pe->ModuleOfPred == mod || pe->ModuleOfPred == 0) { /* we found the predicate */ - EXTRA_CBACK_ARG(3,1) = (CELL)MkIntegerTerm((Int)(pp->NextOfPE)); - return(Yap_unify(ARG3,MkAtomTerm((Atom)(pe->FunctorOfPred)))); + EXTRA_CBACK_ARG(3,1) = MkIntegerTerm((Int)(pp->NextOfPE)); + return Yap_unify(ARG3,MkAtomTerm((Atom)(pe->FunctorOfPred))); } } pf = pp->NextOfPE; diff --git a/H/rheap.h b/H/rheap.h index a76ba0172..be371de66 100644 --- a/H/rheap.h +++ b/H/rheap.h @@ -11,8 +11,11 @@ * File: rheap.h * * comments: walk through heap code * * * -* Last rev: $Date: 2008-04-04 09:10:02 $,$Author: vsc $ * +* Last rev: $Date: 2008-04-06 11:53:02 $,$Author: vsc $ * * $Log: not supported by cvs2svn $ +* Revision 1.93 2008/04/04 09:10:02 vsc +* restore was restoring twice +* * Revision 1.92 2008/04/03 11:34:47 vsc * fix restorebb in cases entry key is not an atom (obs from Nicos * Angelopoulos) @@ -1217,6 +1220,9 @@ CleanCode(PredEntry *pp) } } pp->OpcodeOfPred = Yap_opcode(Yap_op_from_opcode(pp->OpcodeOfPred)); + if (pp->NextPredOfModule) { + pp->NextPredOfModule = PtoPredAdjust(pp->NextPredOfModule); + } if (pp->PredFlags & (AsmPredFlag|CPredFlag)) { /* assembly */ if (pp->CodeOfPred) { @@ -1233,8 +1239,6 @@ CleanCode(PredEntry *pp) pp->CodeOfPred =PtoOpAdjust(pp->CodeOfPred); pp->cs.p_code.TrueCodeOfPred = PtoOpAdjust(pp->cs.p_code.TrueCodeOfPred); pp->cs.p_code.ExpandCode = Yap_opcode(_expand_index); - if (pp->NextPredOfModule) - pp->NextPredOfModule = PtoPredAdjust(pp->NextPredOfModule); flag = pp->PredFlags; FirstC = pp->cs.p_code.FirstClause; LastC = pp->cs.p_code.LastClause; @@ -1409,10 +1413,14 @@ RestoreEntries(PropEntry *pp, int int_key) case ModProperty: { ModEntry *me = (ModEntry *)pp; - me->NextOfPE = - PropAdjust(me->NextOfPE); - me->PredForME = + if (me->NextOfPE) { + me->NextOfPE = + PropAdjust(me->NextOfPE); + } + if (me->PredForME) { + me->PredForME = PtoPredAdjust(me->PredForME); + } me->AtomOfME = AtomAdjust(me->AtomOfME); me->NextME = (struct mod_entry *)