diff options
Diffstat (limited to 'src/sksl/SkSLCompiler.cpp')
-rw-r--r-- | src/sksl/SkSLCompiler.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/sksl/SkSLCompiler.cpp b/src/sksl/SkSLCompiler.cpp index d4fbc95d39..5b502dce2f 100644 --- a/src/sksl/SkSLCompiler.cpp +++ b/src/sksl/SkSLCompiler.cpp @@ -19,6 +19,7 @@ #include "ir/SkSLIntLiteral.h" #include "ir/SkSLModifiersDeclaration.h" #include "ir/SkSLSymbolTable.h" +#include "ir/SkSLUnresolvedFunction.h" #include "ir/SkSLVarDeclarations.h" #include "SkMutex.h" @@ -135,6 +136,7 @@ Compiler::Compiler() Modifiers::Flag ignored1; std::vector<std::unique_ptr<ProgramElement>> ignored2; this->internalConvertProgram(SKSL_INCLUDE, &ignored1, &ignored2); + fIRGenerator->fSymbolTable->markAllFunctionsBuiltin(); ASSERT(!fErrorCount); } @@ -393,10 +395,11 @@ std::unique_ptr<Program> Compiler::convertProgram(Program::Kind kind, std::strin this->internalConvertProgram(SKSL_FRAG_INCLUDE, &ignored, &elements); break; } + fIRGenerator->fSymbolTable->markAllFunctionsBuiltin(); Modifiers::Flag defaultPrecision; this->internalConvertProgram(text, &defaultPrecision, &elements); auto result = std::unique_ptr<Program>(new Program(kind, defaultPrecision, std::move(elements), - fIRGenerator->fSymbolTable));; + fIRGenerator->fSymbolTable)); fIRGenerator->popSymbolTable(); this->writeErrorCount(); return result; |