fix bad restore of operators (obs from Paulo Moura)

This commit is contained in:
U-Khasa\Vitor 2010-03-01 11:52:42 -06:00
parent f7b05ede15
commit 46f0a0644c
4 changed files with 12 additions and 0 deletions

View File

@ -170,6 +170,7 @@ AtomAdjust(Atom a)
#define PtoPredAdjust(P) (P) #define PtoPredAdjust(P) (P)
#define PtoPtoPredAdjust(P) (P) #define PtoPtoPredAdjust(P) (P)
#define OpRTableAdjust(P) (P) #define OpRTableAdjust(P) (P)
#define OpEntryAdjust(P) (P)
#define PropAdjust(P) (P) #define PropAdjust(P) (P)
#define TrailAddrAdjust(P) (P) #define TrailAddrAdjust(P) (P)
#define XAdjust(P) (P) #define XAdjust(P) (P)

0
C/stdpreds.c Normal file → Executable file
View File

View File

@ -1537,6 +1537,9 @@ RestoreEntries(PropEntry *pp, int int_key)
if (opp->OpModule) { if (opp->OpModule) {
opp->OpModule = AtomTermAdjust(opp->OpModule); opp->OpModule = AtomTermAdjust(opp->OpModule);
} }
if (opp->OpNext) {
opp->OpNext = OpEntryAdjust(opp->OpNext);
}
} }
break; break;
case ModProperty: case ModProperty:

8
H/sshift.h Normal file → Executable file
View File

@ -685,6 +685,14 @@ OpRTableAdjust (opentry * ptr)
return (opentry *) (((opentry *) (CharP (ptr) + HDiff))); return (opentry *) (((opentry *) (CharP (ptr) + HDiff)));
} }
inline EXTERN OpEntry *OpEntryAdjust (OpEntry *);
inline EXTERN OpEntry *
OpEntryAdjust (OpEntry * ptr)
{
return (OpEntry *) (((OpEntry *) (CharP (ptr) + HDiff)));
}
inline EXTERN PredEntry *PtoPredAdjust (PredEntry *); inline EXTERN PredEntry *PtoPredAdjust (PredEntry *);
inline EXTERN PredEntry * inline EXTERN PredEntry *