get rid of references to freed code.
This commit is contained in:
parent
7fd6faea64
commit
9bdc7ca96e
@ -1258,6 +1258,8 @@ cleanup_dangling_indices(yamop *ipc, yamop *beg, yamop *end, yamop *suspend_code
|
||||
case _switch_on_cons:
|
||||
case _if_cons:
|
||||
case _go_on_cons:
|
||||
/* make sure we don't leave dangling references to memory that is going to be removed */
|
||||
ipc->u.sssl.l = NULL;
|
||||
ipc = NEXTOP(ipc,sssl);
|
||||
break;
|
||||
case _op_fail:
|
||||
@ -1272,12 +1274,6 @@ cleanup_dangling_indices(yamop *ipc, yamop *beg, yamop *end, yamop *suspend_code
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Yap_cleanup_dangling_indices(yamop *ipc, yamop *beg, yamop *end, yamop *sc)
|
||||
{
|
||||
cleanup_dangling_indices(ipc, beg, end, sc);
|
||||
}
|
||||
|
||||
static void
|
||||
decrease_log_indices(LogUpdIndex *c, yamop *suspend_code)
|
||||
{
|
||||
|
@ -205,7 +205,6 @@ void STD_PROTO(Yap_IPred,(PredEntry *, UInt, yamop *));
|
||||
int STD_PROTO(Yap_addclause,(Term,yamop *,int,Term,Term*));
|
||||
void STD_PROTO(Yap_add_logupd_clause,(PredEntry *,LogUpdClause *,int));
|
||||
void STD_PROTO(Yap_kill_iblock,(ClauseUnion *,ClauseUnion *,PredEntry *));
|
||||
void STD_PROTO(Yap_cleanup_dangling_indices,(yamop *,yamop *,yamop *,yamop *));
|
||||
void STD_PROTO(Yap_EraseStaticClause,(StaticClause *, Term));
|
||||
ClauseUnion *STD_PROTO(Yap_find_owner_index,(yamop *, PredEntry *));
|
||||
|
||||
|
@ -284,6 +284,9 @@ static void
|
||||
AdjustSwitchTable(op_numbers op, yamop *table, COUNT i)
|
||||
{
|
||||
CELL *startcode = (CELL *)table;
|
||||
/* in case the table is already gone */
|
||||
if (!table)
|
||||
return;
|
||||
switch (op) {
|
||||
case _switch_on_func:
|
||||
{
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 73e4e086d06c54210100f0faaeccbea276c707eb
|
||||
Subproject commit 29151b2fe68f2dc727cdc07040e1fa1ad4fcca20
|
Reference in New Issue
Block a user