Fix fileName

Always return a legit atom
check for NULL
indenting
This commit is contained in:
Vítor Santos Costa 2016-03-05 17:38:08 +00:00
parent 1155b6b876
commit a32ac66167

View File

@ -1567,7 +1567,9 @@ Int Yap_source_line_no(void) {
Atom Yap_source_file_name(void) { Atom Yap_source_file_name(void) {
CACHE_REGS CACHE_REGS
return LOCAL_SourceFileName; if (LOCAL_SourceFileName)
return LOCAL_SourceFileName;
return AtomNil;
} }
/** /**
@ -1602,8 +1604,7 @@ bool Yap_constPred(PredEntry *p) {
return false; return false;
} }
bool bool Yap_addclause(Term t, yamop *cp, Term tmode, Term mod, Term *t4ref)
Yap_addclause(Term t, yamop *cp, Term tmode, Term mod, Term *t4ref)
/* /*
* *
mode mode
@ -1625,13 +1626,13 @@ Yap_addclause(Term t, yamop *cp, Term tmode, Term mod, Term *t4ref)
mode = consult; mode = consult;
} else if (tmode == TermReconsult) { } else if (tmode == TermReconsult) {
mode = consult; mode = consult;
} else if (tmode == TermAsserta) { } else if (tmode == TermAsserta) {
mode = asserta; mode = asserta;
} else if (tmode == TermAssertz) { } else if (tmode == TermAssertz) {
mode = assertz; mode = assertz;
} else if (tmode == TermAssertaStatic) { } else if (tmode == TermAssertaStatic) {
mode = asserta; mode = asserta;
} else if (tmode == TermAssertzStatic) { } else if (tmode == TermAssertzStatic) {
mode = assertz; mode = assertz;
} }
if (IsApplTerm(t) && FunctorOfTerm(t) == FunctorAssert) if (IsApplTerm(t) && FunctorOfTerm(t) == FunctorAssert)
@ -2504,30 +2505,30 @@ static Int p_is_exo(USES_REGS1) { /* '$is_dynamic'(+P) */
return (out); return (out);
} }
static Int p_owner_file(USES_REGS1) { /* '$owner_file'(+P,M,F) */ static Int owner_file(USES_REGS1) { /* '$owner_file'(+P,M,F) */
PredEntry *pe; PredEntry *pe;
Atom owner; Atom owner;
pe = get_pred(Deref(ARG1), Deref(ARG2), "$is_source"); pe = get_pred(Deref(ARG1), Deref(ARG2), "$is_source");
if (EndOfPAEntr(pe)) if (EndOfPAEntr(pe))
return FALSE; return false;
PELOCK(29, pe); PELOCK(29, pe);
if (pe->ModuleOfPred == IDB_MODULE) { if (pe->ModuleOfPred == IDB_MODULE) {
UNLOCKPE(47, pe); UNLOCKPE(47, pe);
return FALSE; return false;
} }
if (pe->PredFlags & MultiFileFlag) { if (pe->PredFlags & MultiFileFlag) {
UNLOCKPE(48, pe); UNLOCKPE(48, pe);
return FALSE; return false;
}
if (is_system(pe) || is_foreign(pe)) {
UNLOCKPE(48, pe);
return false;
} }
if (is_system(pe) || is_foreign(pe) ) {
UNLOCKPE(48, pe);
return FALSE;
}
owner = pe->src.OwnerFile; owner = pe->src.OwnerFile;
UNLOCKPE(49, pe); UNLOCKPE(49, pe);
if (owner == AtomNil) if (owner == AtomNil || owner == NULL)
return FALSE; return false;
return Yap_unify(ARG3, MkAtomTerm(owner)); return Yap_unify(ARG3, MkAtomTerm(owner));
} }
@ -4573,7 +4574,7 @@ void Yap_InitCdMgr(void) {
TestPredFlag | SafePredFlag); TestPredFlag | SafePredFlag);
Yap_InitCPred("$is_source", 2, p_is_source, TestPredFlag | SafePredFlag); Yap_InitCPred("$is_source", 2, p_is_source, TestPredFlag | SafePredFlag);
Yap_InitCPred("$is_exo", 2, p_is_exo, TestPredFlag | SafePredFlag); Yap_InitCPred("$is_exo", 2, p_is_exo, TestPredFlag | SafePredFlag);
Yap_InitCPred("$owner_file", 3, p_owner_file, SafePredFlag); Yap_InitCPred("$owner_file", 3, owner_file, SafePredFlag);
Yap_InitCPred("$set_owner_file", 3, p_set_owner_file, SafePredFlag); Yap_InitCPred("$set_owner_file", 3, p_set_owner_file, SafePredFlag);
Yap_InitCPred("$mk_d", 2, p_mk_d, SafePredFlag); Yap_InitCPred("$mk_d", 2, p_mk_d, SafePredFlag);
Yap_InitCPred("$sys_export", 2, p_sys_export, TestPredFlag | SafePredFlag); Yap_InitCPred("$sys_export", 2, p_sys_export, TestPredFlag | SafePredFlag);