fixed skslc SPIR-V memory error

BUG=skia:6446

Change-Id: Ibc55124db60d6a05964ddcd02d285e313379f93e
Reviewed-on: https://skia-review.googlesource.com/10756
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/sksl/SkSLSPIRVCodeGenerator.cpp b/src/sksl/SkSLSPIRVCodeGenerator.cpp
index 93ec4ce..2fa4e64 100644
--- a/src/sksl/SkSLSPIRVCodeGenerator.cpp
+++ b/src/sksl/SkSLSPIRVCodeGenerator.cpp
@@ -1865,7 +1865,7 @@
         // need to remap to a top-left coordinate system
         if (fRTHeightStructId == (SpvId) -1) {
             // height variable hasn't been written yet
-            std::shared_ptr<SymbolTable> st(new SymbolTable(fErrors));
+            std::shared_ptr<SymbolTable> st(new SymbolTable(&fErrors));
             ASSERT(fRTHeightFieldIndex == (SpvId) -1);
             std::vector<Type::Field> fields;
             fields.emplace_back(Modifiers(), SkString(SKSL_RTHEIGHT_NAME),
@@ -1874,8 +1874,12 @@
             Type intfStruct(Position(), name, fields);
             Layout layout(-1, -1, 1, -1, -1, -1, -1, false, false, false, Layout::Format::kUnspecified,
                           false, Layout::kUnspecified_Primitive, -1, -1);
-            Variable intfVar(Position(), Modifiers(layout, Modifiers::kUniform_Flag), name,
-                             intfStruct, Variable::kGlobal_Storage);
+            Variable* intfVar = new Variable(Position(),
+                                             Modifiers(layout, Modifiers::kUniform_Flag),
+                                             name,
+                                             intfStruct,
+                                             Variable::kGlobal_Storage);
+            fSynthetics.takeOwnership(intfVar);
             InterfaceBlock intf(Position(), intfVar, name, SkString(""),
                                 std::vector<std::unique_ptr<Expression>>(), st);
             fRTHeightStructId = this->writeInterfaceBlock(intf);