|
1 Fix for https://code.google.com/p/angleproject/issues/detail?id=651 |
|
2 |
|
3 See https://bugzilla.mozilla.org/show_bug.cgi?id=1025576 for details. |
|
4 |
|
5 diff --git a/gfx/angle/src/compiler/SymbolTable.cpp b/gfx/angle/src/compiler/SymbolTable.cpp |
|
6 --- a/gfx/angle/src/compiler/SymbolTable.cpp |
|
7 +++ b/gfx/angle/src/compiler/SymbolTable.cpp |
|
8 @@ -166,17 +166,18 @@ TFunction::~TFunction() |
|
9 } |
|
10 |
|
11 // |
|
12 // Symbol table levels are a map of pointers to symbols that have to be deleted. |
|
13 // |
|
14 TSymbolTableLevel::~TSymbolTableLevel() |
|
15 { |
|
16 for (tLevel::iterator it = level.begin(); it != level.end(); ++it) |
|
17 - delete (*it).second; |
|
18 + if ((*it).first == (*it).second->getMangledName()) |
|
19 + delete (*it).second; |
|
20 } |
|
21 |
|
22 // |
|
23 // Change all function entries in the table with the non-mangled name |
|
24 // to be related to the provided built-in operation. This is a low |
|
25 // performance operation, and only intended for symbol tables that |
|
26 // live across a large number of compiles. |
|
27 // |