give source property based on dynamic declarations

This commit is contained in:
Vítor Santos Costa 2013-11-25 19:19:44 +01:00
parent 82f4d71567
commit d0c7ef121b

View File

@ -2679,13 +2679,13 @@ purge_clauses(PredEntry *pred)
Yap_PutValue(AtomAbol, MkAtomTerm(AtomTrue)); Yap_PutValue(AtomAbol, MkAtomTerm(AtomTrue));
retract_all(pred, static_in_use(pred,TRUE)); retract_all(pred, static_in_use(pred,TRUE));
} }
pred->src.OwnerFile = AtomNil;
} }
void void
Yap_Abolish(PredEntry *pred) Yap_Abolish(PredEntry *pred)
{ {
purge_clauses(pred); purge_clauses(pred);
pred->src.OwnerFile = AtomNil;
} }
static Int static Int
@ -3032,6 +3032,8 @@ p_owner_file( USES_REGS1 )
} }
owner = pe->src.OwnerFile; owner = pe->src.OwnerFile;
UNLOCKPE(49,pe); UNLOCKPE(49,pe);
if (owner == AtomNil)
return FALSE;
return Yap_unify(ARG3, MkAtomTerm(owner)); return Yap_unify(ARG3, MkAtomTerm(owner));
} }
@ -3047,6 +3049,7 @@ p_mk_d( USES_REGS1 )
if (pe->OpcodeOfPred == UNDEF_OPCODE) { if (pe->OpcodeOfPred == UNDEF_OPCODE) {
pe->OpcodeOfPred = FAIL_OPCODE; pe->OpcodeOfPred = FAIL_OPCODE;
} }
pe->src.OwnerFile = YapConsultingFile( PASS_REGS1 );
UNLOCKPE(50,pe); UNLOCKPE(50,pe);
return TRUE; return TRUE;
} }