Free memory associated with SPIR-V generation.
[platform/upstream/glslang.git] / glslang / Include / intermediate.h
index 59955fc..ebd4439 100644 (file)
@@ -784,7 +784,9 @@ class TIntermAggregate : public TIntermOperator {
 public:
     TIntermAggregate() : TIntermOperator(EOpNull), userDefined(false), pragmaTable(0) { }
     TIntermAggregate(TOperator o) : TIntermOperator(o), pragmaTable(0) { }
-    ~TIntermAggregate() { delete pragmaTable; }
+    // Since pragmaTable is allocated with the PoolAllocator, we
+    // only want to destroy it, not free the associated memory.
+    ~TIntermAggregate() { pragmaTable->~TPragmaTable(); }
     virtual       TIntermAggregate* getAsAggregate()       { return this; }
     virtual const TIntermAggregate* getAsAggregate() const { return this; }
     virtual void setOperator(TOperator o) { op = o; }