handle correctly next element after operator property.

This commit is contained in:
U-Xato7\Vsc 2009-11-23 16:02:05 +00:00
parent 691abd8243
commit 25b5464fe8

9
H/rheap.h Normal file → Executable file
View File

@ -1523,6 +1523,10 @@ RestoreEntries(PropEntry *pp, int int_key)
case OpProperty: case OpProperty:
{ {
OpEntry *opp = (OpEntry *)pp; OpEntry *opp = (OpEntry *)pp;
if (opp->NextOfPE) {
opp->NextOfPE =
PropAdjust(opp->NextOfPE);
}
if (opp->OpModule) { if (opp->OpModule) {
opp->OpModule = AtomTermAdjust(opp->OpModule); opp->OpModule = AtomTermAdjust(opp->OpModule);
} }
@ -1569,13 +1573,14 @@ RestoreAtom(AtomEntry *at)
{ {
AtomEntry *nat; AtomEntry *nat;
#ifdef DEBUG_RESTORE2 /* useful during debug */ /* this should be done before testing for wide atoms */
at->PropsOfAE = PropAdjust(at->PropsOfAE);
#if DEBUG_RESTORE2 /* useful during debug */
if (IsWideAtom(AbsAtom(at))) if (IsWideAtom(AbsAtom(at)))
fprintf(errout, "Restoring %S\n", at->WStrOfAE); fprintf(errout, "Restoring %S\n", at->WStrOfAE);
else else
fprintf(errout, "Restoring %s\n", at->StrOfAE); fprintf(errout, "Restoring %s\n", at->StrOfAE);
#endif #endif
at->PropsOfAE = PropAdjust(at->PropsOfAE);
RestoreEntries(RepProp(at->PropsOfAE), FALSE); RestoreEntries(RepProp(at->PropsOfAE), FALSE);
/* cannot use AtomAdjust without breaking agc */ /* cannot use AtomAdjust without breaking agc */
nat = RepAtom(at->NextOfAE); nat = RepAtom(at->NextOfAE);