From 395777d9bfb0187c17b84aae7ad0dae77489ddbb Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Mon, 30 Jun 2014 18:34:53 +0200 Subject: Fix crash in TSymbolTableLevel::~TSymbolTableLevel with gcc 4.9 WebGL crashes when chromium is compiled with gcc 4.9, because TSymbolTableLevel::~TSymbolTableLevel does double delete of e.g. TFunctions because they are inserted in the table with both their name and mangled name. The fix for this should reach stable with m37. https://code.google.com/p/angleproject/issues/detail?id=651 Patch by Mike Hommey https://bugzilla.mozilla.org/show_bug.cgi?id=1025576 Change-Id: I0571478759666bcb55633dd4e630c5b42216d949 Reviewed-by: Jocelyn Turcotte --- chromium/third_party/angle/src/compiler/SymbolTable.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chromium/third_party/angle/src/compiler/SymbolTable.cpp b/chromium/third_party/angle/src/compiler/SymbolTable.cpp index a7ce21680f5..715e1361626 100644 --- a/chromium/third_party/angle/src/compiler/SymbolTable.cpp +++ b/chromium/third_party/angle/src/compiler/SymbolTable.cpp @@ -171,7 +171,8 @@ TFunction::~TFunction() TSymbolTableLevel::~TSymbolTableLevel() { for (tLevel::iterator it = level.begin(); it != level.end(); ++it) - delete (*it).second; + if ((*it).first == (*it).second->getMangledName()) + delete (*it).second; } // -- cgit v1.2.1