diff --git a/H/rheap.h b/H/rheap.h old mode 100644 new mode 100755 index 032955eeb..f54a53975 --- a/H/rheap.h +++ b/H/rheap.h @@ -1523,6 +1523,10 @@ RestoreEntries(PropEntry *pp, int int_key) case OpProperty: { OpEntry *opp = (OpEntry *)pp; + if (opp->NextOfPE) { + opp->NextOfPE = + PropAdjust(opp->NextOfPE); + } if (opp->OpModule) { opp->OpModule = AtomTermAdjust(opp->OpModule); } @@ -1569,13 +1573,14 @@ RestoreAtom(AtomEntry *at) { 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))) fprintf(errout, "Restoring %S\n", at->WStrOfAE); else fprintf(errout, "Restoring %s\n", at->StrOfAE); #endif - at->PropsOfAE = PropAdjust(at->PropsOfAE); RestoreEntries(RepProp(at->PropsOfAE), FALSE); /* cannot use AtomAdjust without breaking agc */ nat = RepAtom(at->NextOfAE);