Merge pull request #133 from AWoloszyn/spirv-memory
[platform/upstream/glslang.git] / glslang / Include / intermediate.h
index cf70177..20d7323 100644 (file)
@@ -847,7 +847,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; }