handle code space overflows while parsing.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1868 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
18
C/scanner.c
18
C/scanner.c
@@ -1075,6 +1075,15 @@ Yap_tokenizer(int inp_stream)
|
||||
t->TokInfo = Unsigned(Yap_LookupWideAtom((wchar_t *)TokImage));
|
||||
} else {
|
||||
t->TokInfo = Unsigned(Yap_LookupAtom(TokImage));
|
||||
if (t->TokInfo == (CELL)NIL) {
|
||||
Yap_Error_TYPE = OUT_OF_HEAP_ERROR;
|
||||
Yap_ErrorMessage = "Code Space Overflow";
|
||||
if (p)
|
||||
t->Tok = Ord(kind = eot_tok);
|
||||
/* serious error now */
|
||||
UNLOCK(Stream[inp_stream].streamlock);
|
||||
return l;
|
||||
}
|
||||
}
|
||||
Yap_ReleasePreAllocCodeSpace((CODEADDR)TokImage);
|
||||
t->Tok = Ord(kind = Name_tok);
|
||||
@@ -1113,6 +1122,15 @@ Yap_tokenizer(int inp_stream)
|
||||
*charp++ = ch;
|
||||
*charp = '\0';
|
||||
t->TokInfo = Unsigned(Yap_LookupAtom(TokImage));
|
||||
if (t->TokInfo == (CELL)NIL) {
|
||||
Yap_Error_TYPE = OUT_OF_HEAP_ERROR;
|
||||
Yap_ErrorMessage = "Code Space Overflow";
|
||||
if (p)
|
||||
t->Tok = Ord(kind = eot_tok);
|
||||
/* serious error now */
|
||||
UNLOCK(Stream[inp_stream].streamlock);
|
||||
return l;
|
||||
}
|
||||
Yap_ReleasePreAllocCodeSpace((CODEADDR)TokImage);
|
||||
t->Tok = Ord(kind = Name_tok);
|
||||
if (ch == '(')
|
||||
|
Reference in New Issue
Block a user