diff options
| author | Yong He <yonghe@google.com> | 2019-01-30 17:26:26 -0800 |
|---|---|---|
| committer | Yong He <yonghe@google.com> | 2019-01-30 17:27:08 -0800 |
| commit | 04f1badc29d41e642597039f9822a6e3aa1138cc (patch) | |
| tree | 16d9f82207976d16f6002355ca2589d41b73c0aa /source | |
| parent | 4db0aba1edc5fd55b91457481bae119ef66dde89 (diff) | |
Fixes crashes at source error.
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/check.cpp | 4 | ||||
| -rw-r--r-- | source/slang/slang.cpp | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/source/slang/check.cpp b/source/slang/check.cpp index e100cbd1d..1b17ec49f 100644 --- a/source/slang/check.cpp +++ b/source/slang/check.cpp @@ -6606,6 +6606,10 @@ namespace Slang { if (auto typeParamRef = memberRef.As<GenericTypeParamDecl>()) { + if (aa >= context.argCount) + { + return false; + } auto arg = context.getArg(aa++); TypeExp typeExp; diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index 359848d65..e332ef588 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -912,6 +912,9 @@ RefPtr<ModuleDecl> CompileRequest::loadModule( if( errorCountAfter != errorCountBefore ) { mSink.diagnose(srcLoc, Diagnostics::errorInImportedModule); + } + if (errorCountAfter) + { // Something went wrong during the parsing, so we should bail out. return nullptr; } |
