summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@digia.com>2014-06-30 18:34:53 +0200
committerAndras Becsi <andras.becsi@digia.com>2014-07-04 12:55:32 +0200
commit395777d9bfb0187c17b84aae7ad0dae77489ddbb (patch)
treed69d6400db0a4da96e449cbe1557a0f2d6ca2c84
parent622cb04cc077a10d04c46798af8d132811ac9de3 (diff)
<third_party/angle> 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 <mh+mozilla@glandium.org> https://bugzilla.mozilla.org/show_bug.cgi?id=1025576 Change-Id: I0571478759666bcb55633dd4e630c5b42216d949 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
-rw-r--r--chromium/third_party/angle/src/compiler/SymbolTable.cpp3
1 files changed, 2 insertions, 1 deletions
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;
}
//