Bug 774755 - 7/8 - ANGLE r1242: update README and local patches - no review
--- a/gfx/angle/README.mozilla
+++ b/gfx/angle/README.mozilla
@@ -1,24 +1,40 @@
This is the ANGLE project, from http://code.google.com/p/angleproject/
-Current revision: r963
+Current revision: r1242
== Applied local patches ==
In this order:
- angle-renaming-debug.patch - rename debug.h to compilerdebug.h to avoid conflict in our makefiles
- angle-intrinsic-msvc2005.patch - work around a MSVC 2005 compile error
- angle-use-xmalloc.patch - see bug 680840. Can drop this patch whenever the new preprocessor lands.
- angle-castrate-bug-241.patch - see bug 699033 / angle bug 241
- angle-enforce-readpixels-spec.patch - see bug 724476.
- angle-impl-read-bgra.patch - see bug 724476.
- gfx/angle/angle-long-identifier-hash-spooky.patch - see bug 676071
+
+ angle-renaming-debug.patch
+ rename debug.h to compilerdebug.h to avoid conflict in our makefiles
+
+ angle-renaming-preprocessor-diagonostics.patch
+ rename one of the two Diagnostics.cpp to avoid conflict in our makefiles
+
+ angle-renaming-preprocessor-directivehandler.patch
+ rename one of the two DirectiveHandler.cpp to avoid conflict in our makefiles
+
+ angle-enforce-readpixels-spec.patch
+ see bug 724476
+
+ angle-impl-read-bgra.patch
+ see bug 724476
+
+ gfx/angle/angle-long-identifier-hash-spooky.patch
+ see bug 676071
+
+ angle-abort-on-oom-in-preprocessor.patch
+ see bug 680840. Probably not useful anymore now that we're on the new
+ preprocessor, but it doesn't hurt to keep it around a bit longer.
In addition to these patches, the Makefile.in files are ours, they're not present in upsteam ANGLE.
+Therefore, changes made to the Makefile.in files should not be stored in the local .patch files.
== How to update this ANGLE copy ==
1. Unapply patches
2. Apply diff with new ANGLE version
3. Reapply patches.
4. Check for changes in src/build_angle.gyp, update our Makefile.in files accordingly. Note that a single file may be recorded in more than one Makefile.
new file mode 100644
--- /dev/null
+++ b/gfx/angle/angle-abort-on-oom-in-preprocessor.patch
@@ -0,0 +1,29 @@
+# HG changeset patch
+# Parent 11023ab3d23865b71678e9a4b22a45646ec0c0f0
+diff --git a/gfx/angle/src/compiler/preprocessor/atom.c b/gfx/angle/src/compiler/preprocessor/atom.c
+--- a/gfx/angle/src/compiler/preprocessor/atom.c
++++ b/gfx/angle/src/compiler/preprocessor/atom.c
+@@ -327,22 +327,17 @@ static int GrowAtomTable(AtomTable *atab
+ newmap = realloc(atable->amap, sizeof(int)*size);
+ newrev = realloc(atable->arev, sizeof(int)*size);
+ } else {
+ newmap = malloc(sizeof(int)*size);
+ newrev = malloc(sizeof(int)*size);
+ atable->size = 0;
+ }
+ if (!newmap || !newrev) {
+- /* failed to grow -- error */
+- if (newmap)
+- atable->amap = newmap;
+- if (newrev)
+- atable->arev = newrev;
+- return -1;
++ abort();
+ }
+ memset(&newmap[atable->size], 0, (size - atable->size) * sizeof(int));
+ memset(&newrev[atable->size], 0, (size - atable->size) * sizeof(int));
+ atable->amap = newmap;
+ atable->arev = newrev;
+ atable->size = size;
+ }
+ return 0;
deleted file mode 100644
--- a/gfx/angle/angle-castrate-bug-241.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-# HG changeset patch
-# User Benoit Jacob <bjacob@mozilla.com>
-# Parent 7dcbce54a953090ae8e537f93c6c99ab8eb0dc62
-
-diff --git a/gfx/angle/README.mozilla b/gfx/angle/README.mozilla
---- a/gfx/angle/README.mozilla
-+++ b/gfx/angle/README.mozilla
-@@ -4,16 +4,17 @@ Current revision: r963
-
- == Applied local patches ==
-
- In this order:
- angle-renaming-debug.patch - rename debug.h to compilerdebug.h to avoid conflict in our makefiles
- angle-intrinsic-msvc2005.patch - work around a MSVC 2005 compile error
- angle-limit-identifiers-to-250-chars.patch - see bug 675625
- angle-use-xmalloc.patch - see bug 680840. Can drop this patch whenever the new preprocessor lands.
-+ angle-castrate-bug-241.patch - see bug 699033 / angle bug 241
-
- In addition to these patches, the Makefile.in files are ours, they're not present in upsteam ANGLE.
-
- == How to update this ANGLE copy ==
-
- 1. Unapply patches
- 2. Apply diff with new ANGLE version
- 3. Reapply patches.
-diff --git a/gfx/angle/src/compiler/Types.h b/gfx/angle/src/compiler/Types.h
---- a/gfx/angle/src/compiler/Types.h
-+++ b/gfx/angle/src/compiler/Types.h
-@@ -5,16 +5,17 @@
- //
-
- #ifndef _TYPES_INCLUDED
- #define _TYPES_INCLUDED
-
- #include "compiler/BaseTypes.h"
- #include "compiler/Common.h"
- #include "compiler/compilerdebug.h"
-+#include <cstdlib>
-
- //
- // Need to have association of line numbers to types in a list for building structs.
- //
- class TType;
- struct TTypeLine {
- TType* type;
- int line;
-@@ -203,17 +204,17 @@ public:
- bool isVector() const { return size > 1 && !matrix; }
- bool isScalar() const { return size == 1 && !matrix && !structure; }
-
- TTypeList* getStruct() const { return structure; }
- void setStruct(TTypeList* s) { structure = s; computeDeepestStructNesting(); }
-
- const TString& getTypeName() const
- {
-- assert(typeName);
-+ if(!typeName) abort();
- return *typeName;
- }
- void setTypeName(const TString& n)
- {
- typeName = NewPoolTString(n.c_str());
- }
-
- bool isField() const { return fieldName != 0; }
--- a/gfx/angle/angle-enforce-readpixels-spec.patch
+++ b/gfx/angle/angle-enforce-readpixels-spec.patch
@@ -1,15 +1,14 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-Bug 724476 - ANGLE Bug 293 - Enforce readPixels format/type semantics
-
+# HG changeset patch
+# Parent a1fed68f51737972901e0d6fc829d3e044a453bd
diff --git a/gfx/angle/src/libGLESv2/libGLESv2.cpp b/gfx/angle/src/libGLESv2/libGLESv2.cpp
--- a/gfx/angle/src/libGLESv2/libGLESv2.cpp
+++ b/gfx/angle/src/libGLESv2/libGLESv2.cpp
-@@ -98,27 +98,16 @@ bool validReadFormatType(GLenum format,
+@@ -231,27 +231,16 @@ bool validReadFormatType(GLenum format,
switch (type)
{
case GL_UNSIGNED_BYTE:
break;
default:
return false;
}
break;
--- a/gfx/angle/angle-impl-read-bgra.patch
+++ b/gfx/angle/angle-impl-read-bgra.patch
@@ -1,15 +1,14 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-Bug 724476 - ANGLE Bug 294 - Use BGRA/UBYTE as exposed fast format/type for readPixels
-
+# HG changeset patch
+# Parent 97ded57f965865c06306a8ef82d082064542caff
diff --git a/gfx/angle/src/libGLESv2/Context.cpp b/gfx/angle/src/libGLESv2/Context.cpp
--- a/gfx/angle/src/libGLESv2/Context.cpp
+++ b/gfx/angle/src/libGLESv2/Context.cpp
-@@ -2520,16 +2520,17 @@ void Context::readPixels(GLint x, GLint
+@@ -2585,16 +2585,17 @@ void Context::readPixels(GLint x, GLint
{
if (desc.Format == D3DFMT_A8R8G8B8 &&
format == GL_BGRA_EXT &&
type == GL_UNSIGNED_BYTE)
{
// Fast path for EXT_read_format_bgra, given
// an RGBA source buffer. Note that buffers with no
// alpha go through the slow path below.
@@ -17,17 +16,17 @@ diff --git a/gfx/angle/src/libGLESv2/Con
memcpy(dest + j * outputPitch,
source + j * inputPitch,
(rect.right - rect.left) * 4);
continue;
}
for (int i = 0; i < rect.right - rect.left; i++)
{
-@@ -2666,20 +2667,20 @@ void Context::readPixels(GLint x, GLint
+@@ -2732,20 +2733,20 @@ void Context::readPixels(GLint x, GLint
((unsigned short)( a + 0.5f) << 15) |
((unsigned short)(31 * r + 0.5f) << 10) |
((unsigned short)(31 * g + 0.5f) << 5) |
((unsigned short)(31 * b + 0.5f) << 0);
break;
default: UNREACHABLE();
}
break;
deleted file mode 100644
--- a/gfx/angle/angle-intrinsic-msvc2005.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-# HG changeset patch
-# Parent 6ee54a11fd135a2b594db77f7eaf83f06ee7b1d8
-diff --git a/gfx/angle/src/libGLESv2/Texture.cpp b/gfx/angle/src/libGLESv2/Texture.cpp
---- a/gfx/angle/src/libGLESv2/Texture.cpp
-+++ b/gfx/angle/src/libGLESv2/Texture.cpp
-@@ -8,16 +8,22 @@
- // Texture2D and TextureCubeMap. Implements GL texture objects and related
- // functionality. [OpenGL ES 2.0.24] section 3.7 page 63.
-
- #include "libGLESv2/Texture.h"
-
- #include <d3dx9tex.h>
-
- #include <algorithm>
-+
-+#if _MSC_VER <= 1400
-+#define _interlockedbittestandreset _interlockedbittestandreset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR
-+#define _interlockedbittestandset _interlockedbittestandset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR
-+#endif
-+
- #include <intrin.h>
-
- #include "common/debug.h"
-
- #include "libEGL/Display.h"
-
- #include "libGLESv2/main.h"
- #include "libGLESv2/mathutil.h"
-diff --git a/gfx/angle/src/libGLESv2/mathutil.h b/gfx/angle/src/libGLESv2/mathutil.h
---- a/gfx/angle/src/libGLESv2/mathutil.h
-+++ b/gfx/angle/src/libGLESv2/mathutil.h
-@@ -3,16 +3,21 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- //
-
- // mathutil.h: Math and bit manipulation functions.
-
- #ifndef LIBGLESV2_MATHUTIL_H_
- #define LIBGLESV2_MATHUTIL_H_
-+
-+#if _MSC_VER <= 1400
-+#define _interlockedbittestandreset _interlockedbittestandreset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR
-+#define _interlockedbittestandset _interlockedbittestandset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR
-+#endif
-
- #include <intrin.h>
- #include <math.h>
- #include <windows.h>
-
- namespace gl
- {
- inline bool isPow2(int x)
--- a/gfx/angle/angle-long-identifier-hash-spooky.patch
+++ b/gfx/angle/angle-long-identifier-hash-spooky.patch
@@ -1,36 +1,15 @@
# HG changeset patch
-# Parent 69255fe4cb94f1681bc9200db37c0ad3de171abc
+# Parent c5e7517cbb1c38ce9821ba3deca88768b4dff066
-diff --git a/gfx/angle/Makefile.in b/gfx/angle/Makefile.in
---- a/gfx/angle/Makefile.in
-+++ b/gfx/angle/Makefile.in
-@@ -79,16 +79,17 @@ CPPSRCS = \
- SymbolTable.cpp \
- VariableInfo.cpp \
- compilerdebug.cpp \
- ossource_nspr.cpp \
- util.cpp \
- ValidateLimitations.cpp \
- ForLoopUnroll.cpp \
- MapLongVariableNames.cpp \
-+ spooky.cpp \
- BuiltInFunctionEmulator.cpp \
- $(NULL)
-
- # flex/yacc generated files
- CPPSRCS += \
- glslang_lex.cpp \
- glslang_tab.cpp \
- $(NULL)
diff --git a/gfx/angle/src/compiler/MapLongVariableNames.cpp b/gfx/angle/src/compiler/MapLongVariableNames.cpp
--- a/gfx/angle/src/compiler/MapLongVariableNames.cpp
+++ b/gfx/angle/src/compiler/MapLongVariableNames.cpp
-@@ -1,27 +1,30 @@
+@@ -1,29 +1,36 @@
//
// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
#include "compiler/MapLongVariableNames.h"
+#include "spooky.h"
@@ -39,25 +18,33 @@ diff --git a/gfx/angle/src/compiler/MapL
TString mapLongName(int id, const TString& name, bool isGlobal)
{
ASSERT(name.size() > MAX_SHORTENED_IDENTIFIER_SIZE);
TStringStream stream;
- stream << "webgl_";
- if (isGlobal)
- stream << "g";
-- stream << id << "_";
+- stream << id;
+- if (name[0] != '_')
+- stream << "_";
- stream << name.substr(0, MAX_SHORTENED_IDENTIFIER_SIZE - stream.str().size());
+ uint64 hash = SpookyHash::Hash64(name.data(), name.length(), 0);
-+ stream << "webgl_"
++
++ // We want to avoid producing a string with a double underscore,
++ // which would be an illegal GLSL identifier. We can assume that the
++ // original identifier doesn't have a double underscore, otherwise
++ // it's illegal anyway.
++ stream << (name[0] == '_' ? "webgl" : "webgl_")
+ << name.substr(0, 9)
-+ << "_"
++ << (name[8] == '_' ? "" : "_")
+ << std::hex
+ << hash;
-+ ASSERT(stream.str().length() == MAX_SHORTENED_IDENTIFIER_SIZE);
++ ASSERT(stream.str().length() <= MAX_SHORTENED_IDENTIFIER_SIZE);
++ ASSERT(stream.str().length() >= MAX_SHORTENED_IDENTIFIER_SIZE - 2);
return stream.str();
}
LongNameMap* gLongNameMapInstance = NULL;
} // anonymous namespace
LongNameMap::LongNameMap()
@@ -707,50 +694,8 @@ new file mode 100644
+ uint64 m_data[2*sc_numVars]; // unhashed data, for partial messages
+ uint64 m_state[sc_numVars]; // internal state of the hash
+ size_t m_length; // total length of the input so far
+ uint8 m_remainder; // length of unhashed data stashed in m_data
+};
+
+
+
-diff --git a/gfx/angle/src/libEGL/Makefile.in b/gfx/angle/src/libEGL/Makefile.in
---- a/gfx/angle/src/libEGL/Makefile.in
-+++ b/gfx/angle/src/libEGL/Makefile.in
-@@ -91,16 +91,17 @@ CPPSRCS = \
- SymbolTable.cpp \
- VariableInfo.cpp \
- compilerdebug.cpp \
- ossource_win.cpp \
- util.cpp \
- ValidateLimitations.cpp \
- ForLoopUnroll.cpp \
- MapLongVariableNames.cpp \
-+ spooky.cpp \
- BuiltInFunctionEmulator.cpp \
- $(NULL)
-
- # flex/yacc generated files
- CPPSRCS += \
- glslang_lex.cpp \
- glslang_tab.cpp \
- $(NULL)
-diff --git a/gfx/angle/src/libGLESv2/Makefile.in b/gfx/angle/src/libGLESv2/Makefile.in
---- a/gfx/angle/src/libGLESv2/Makefile.in
-+++ b/gfx/angle/src/libGLESv2/Makefile.in
-@@ -91,16 +91,17 @@ CPPSRCS = \
- SymbolTable.cpp \
- VariableInfo.cpp \
- compilerdebug.cpp \
- ossource_win.cpp \
- util.cpp \
- ValidateLimitations.cpp \
- ForLoopUnroll.cpp \
- MapLongVariableNames.cpp \
-+ spooky.cpp \
- BuiltInFunctionEmulator.cpp \
- $(NULL)
-
- # flex/yacc generated files
- CPPSRCS += \
- glslang_lex.cpp \
- glslang_tab.cpp \
- $(NULL)
--- a/gfx/angle/angle-renaming-debug.patch
+++ b/gfx/angle/angle-renaming-debug.patch
@@ -1,32 +1,55 @@
# HG changeset patch
-# Parent 326590fb862cf7e277487f48c7a434bde3566ea0
-diff --git a/gfx/angle/Makefile.in b/gfx/angle/Makefile.in
---- a/gfx/angle/Makefile.in
-+++ b/gfx/angle/Makefile.in
-@@ -75,17 +75,17 @@ CPPSRCS = \
- parseConst.cpp \
- ParseHelper.cpp \
- PoolAlloc.cpp \
- QualifierAlive.cpp \
- RemoveTree.cpp \
- ShaderLang.cpp \
- SymbolTable.cpp \
- VariableInfo.cpp \
-- debug.cpp \
-+ compilerdebug.cpp \
- ossource_nspr.cpp \
- util.cpp \
- ValidateLimitations.cpp \
- ForLoopUnroll.cpp \
- MapLongVariableNames.cpp \
- BuiltInFunctionEmulator.cpp \
- $(NULL)
+# Parent 8e2ee5b1a34208fd10f501fdee330878e20df599
+
+diff --git a/gfx/angle/src/compiler/Diagnostics.cpp b/gfx/angle/src/compiler/Diagnostics.cpp
+--- a/gfx/angle/src/compiler/Diagnostics.cpp
++++ b/gfx/angle/src/compiler/Diagnostics.cpp
+@@ -1,17 +1,17 @@
+ //
+ // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ //
+
+ #include "compiler/Diagnostics.h"
+
+-#include "compiler/debug.h"
++#include "compiler/compilerdebug.h"
+ #include "compiler/InfoSink.h"
+ #include "compiler/preprocessor/new/SourceLocation.h"
+ TDiagnostics::TDiagnostics(TInfoSink& infoSink) :
+ mInfoSink(infoSink),
+ mNumErrors(0),
+ mNumWarnings(0)
+ {
+diff --git a/gfx/angle/src/compiler/DirectiveHandler.cpp b/gfx/angle/src/compiler/DirectiveHandler.cpp
+--- a/gfx/angle/src/compiler/DirectiveHandler.cpp
++++ b/gfx/angle/src/compiler/DirectiveHandler.cpp
+@@ -3,17 +3,17 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ //
+
+ #include "compiler/DirectiveHandler.h"
+
+ #include <sstream>
+
+-#include "compiler/debug.h"
++#include "compiler/compilerdebug.h"
+ #include "compiler/Diagnostics.h"
+
+ static TBehavior getBehavior(const std::string& str)
+ {
+ static const std::string kRequire("require");
+ static const std::string kEnable("enable");
+ static const std::string kDisable("disable");
+ static const std::string kWarn("warn");
diff --git a/gfx/angle/src/compiler/OutputGLSLBase.cpp b/gfx/angle/src/compiler/OutputGLSLBase.cpp
--- a/gfx/angle/src/compiler/OutputGLSLBase.cpp
+++ b/gfx/angle/src/compiler/OutputGLSLBase.cpp
@@ -1,16 +1,16 @@
//
// Copyright (c) 2002-2011 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -41,35 +64,35 @@ diff --git a/gfx/angle/src/compiler/Outp
TString getTypeName(const TType& type)
{
TInfoSinkBase out;
if (type.isMatrix())
{
diff --git a/gfx/angle/src/compiler/OutputHLSL.cpp b/gfx/angle/src/compiler/OutputHLSL.cpp
--- a/gfx/angle/src/compiler/OutputHLSL.cpp
+++ b/gfx/angle/src/compiler/OutputHLSL.cpp
-@@ -1,17 +1,17 @@
- //
- // Copyright (c) 2002-2011 The ANGLE Project Authors. All rights reserved.
+@@ -2,17 +2,17 @@
+ // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
#include "compiler/OutputHLSL.h"
+ #include "common/angleutils.h"
-#include "compiler/debug.h"
+#include "compiler/compilerdebug.h"
#include "compiler/InfoSink.h"
- #include "compiler/UnfoldSelect.h"
+ #include "compiler/UnfoldShortCircuit.h"
#include "compiler/SearchSymbol.h"
+ #include "compiler/DetectDiscontinuity.h"
#include <stdio.h>
#include <algorithm>
- namespace sh
diff --git a/gfx/angle/src/compiler/Types.h b/gfx/angle/src/compiler/Types.h
--- a/gfx/angle/src/compiler/Types.h
+++ b/gfx/angle/src/compiler/Types.h
@@ -4,17 +4,17 @@
// found in the LICENSE file.
//
#ifndef _TYPES_INCLUDED
@@ -82,41 +105,44 @@ diff --git a/gfx/angle/src/compiler/Type
//
// Need to have association of line numbers to types in a list for building structs.
//
class TType;
struct TTypeLine {
TType* type;
int line;
-diff --git a/gfx/angle/src/compiler/compilerdebug.cpp b/gfx/angle/src/compiler/compilerdebug.cpp
---- a/gfx/angle/src/compiler/compilerdebug.cpp
+diff --git a/gfx/angle/src/compiler/debug.cpp b/gfx/angle/src/compiler/compilerdebug.cpp
+rename from gfx/angle/src/compiler/debug.cpp
+rename to gfx/angle/src/compiler/compilerdebug.cpp
+--- a/gfx/angle/src/compiler/debug.cpp
+++ b/gfx/angle/src/compiler/compilerdebug.cpp
@@ -1,17 +1,17 @@
//
// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
--// debug.cpp: Debugging utilities.
-+// compilerdebug.cpp: Debugging utilities.
+ // debug.cpp: Debugging utilities.
-#include "compiler/debug.h"
+#include "compiler/compilerdebug.h"
#include <stdarg.h>
#include <stdio.h>
+ #include "compiler/InitializeParseContext.h"
#include "compiler/ParseHelper.h"
static const int kTraceBufferLen = 1024;
-
-diff --git a/gfx/angle/src/compiler/compilerdebug.h b/gfx/angle/src/compiler/compilerdebug.h
---- a/gfx/angle/src/compiler/compilerdebug.h
+diff --git a/gfx/angle/src/compiler/debug.h b/gfx/angle/src/compiler/compilerdebug.h
+rename from gfx/angle/src/compiler/debug.h
+rename to gfx/angle/src/compiler/compilerdebug.h
+--- a/gfx/angle/src/compiler/debug.h
+++ b/gfx/angle/src/compiler/compilerdebug.h
@@ -1,15 +1,15 @@
//
// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
@@ -128,17 +154,17 @@ diff --git a/gfx/angle/src/compiler/comp
#include <assert.h>
#ifdef _DEBUG
#define TRACE_ENABLED // define to enable debug message tracing
diff --git a/gfx/angle/src/compiler/osinclude.h b/gfx/angle/src/compiler/osinclude.h
--- a/gfx/angle/src/compiler/osinclude.h
+++ b/gfx/angle/src/compiler/osinclude.h
-@@ -31,17 +31,17 @@
+@@ -32,17 +32,17 @@
#include <windows.h>
#elif defined(ANGLE_OS_POSIX)
#include <pthread.h>
#include <semaphore.h>
#include <errno.h>
#endif // ANGLE_USE_NSPR
@@ -150,49 +176,71 @@ diff --git a/gfx/angle/src/compiler/osin
//
#if defined(ANGLE_USE_NSPR)
typedef PRUintn OS_TLSIndex;
#define OS_INVALID_TLS_INDEX 0xFFFFFFFF
#elif defined(ANGLE_OS_WIN)
diff --git a/gfx/angle/src/compiler/preprocessor/atom.c b/gfx/angle/src/compiler/preprocessor/atom.c
--- a/gfx/angle/src/compiler/preprocessor/atom.c
+++ b/gfx/angle/src/compiler/preprocessor/atom.c
-@@ -45,17 +45,17 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILI
- //
+@@ -46,17 +46,17 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILI
// atom.c
//
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+ #include "common/angleutils.h"
-#include "compiler/debug.h"
+#include "compiler/compilerdebug.h"
#include "compiler/preprocessor/slglobals.h"
#undef malloc
#undef realloc
#undef free
///////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////// String table: //////////////////////////////////////
diff --git a/gfx/angle/src/compiler/preprocessor/tokens.c b/gfx/angle/src/compiler/preprocessor/tokens.c
--- a/gfx/angle/src/compiler/preprocessor/tokens.c
+++ b/gfx/angle/src/compiler/preprocessor/tokens.c
-@@ -45,17 +45,17 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILI
- // tokens.c
+@@ -46,17 +46,17 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILI
//
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
+ #include "common/angleutils.h"
-#include "compiler/debug.h"
+#include "compiler/compilerdebug.h"
#include "compiler/preprocessor/slglobals.h"
#include "compiler/util.h"
- ///////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////// Preprocessor and Token Recorder and Playback: ////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////////////
+ #if defined(_MSC_VER)
+ #pragma warning(disable: 4054)
+ #pragma warning(disable: 4152)
+ #endif
- /*
+diff --git a/gfx/angle/src/compiler/translator_common.vcproj b/gfx/angle/src/compiler/translator_common.vcproj
+--- a/gfx/angle/src/compiler/translator_common.vcproj
++++ b/gfx/angle/src/compiler/translator_common.vcproj
+@@ -580,17 +580,17 @@
+ RelativePath=".\Common.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ConstantUnion.h"
+ >
+ </File>
+ <File
+- RelativePath=".\debug.h"
++ RelativePath=".\compilerdebug.h"
+ >
+ </File>
+ <File
+ RelativePath=".\DetectRecursion.h"
+ >
+ </File>
+ <File
+ RelativePath=".\Diagnostics.h"
new file mode 100644
--- /dev/null
+++ b/gfx/angle/angle-renaming-preprocessor-diagonostics.patch
@@ -0,0 +1,6 @@
+# HG changeset patch
+# Parent 2cd2556d673d90f79dc29a78a927d2a38b92e14b
+
+diff --git a/gfx/angle/src/compiler/preprocessor/new/Diagnostics.cpp b/gfx/angle/src/compiler/preprocessor/new/PreprocessorDiagnostics.cpp
+rename from gfx/angle/src/compiler/preprocessor/new/Diagnostics.cpp
+rename to gfx/angle/src/compiler/preprocessor/new/PreprocessorDiagnostics.cpp
new file mode 100644
--- /dev/null
+++ b/gfx/angle/angle-renaming-preprocessor-directivehandler.patch
@@ -0,0 +1,6 @@
+# HG changeset patch
+# Parent a98ccd93f2ab811670cb50edca50f6381274a345
+
+diff --git a/gfx/angle/src/compiler/preprocessor/new/DirectiveHandler.cpp b/gfx/angle/src/compiler/preprocessor/new/PreprocessorDirectiveHandler.cpp
+rename from gfx/angle/src/compiler/preprocessor/new/DirectiveHandler.cpp
+rename to gfx/angle/src/compiler/preprocessor/new/PreprocessorDirectiveHandler.cpp
deleted file mode 100644
--- a/gfx/angle/angle-use-xmalloc.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-# HG changeset patch
-# Parent 93033f21b121382b50e5bc9787edf704d6906508
-diff --git a/gfx/angle/Makefile.in b/gfx/angle/Makefile.in
---- a/gfx/angle/Makefile.in
-+++ b/gfx/angle/Makefile.in
-@@ -129,16 +129,18 @@ CSRCS = \
- $(NULL)
-
- DEFINES += -DANGLE_USE_NSPR -DANGLE_BUILD -DCOMPILER_IMPLEMENTATION
-
- #these defines are from ANGLE's build_angle.gyp
- DEFINES += -DANGLE_DISABLE_TRACE
- DEFINES += -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL0
-
-+EXTRA_DSO_LDOPTS = $(MOZALLOC_LIB)
-+
- ifdef MOZ_ANGLE
-
- # libEGL depends on (links against!) libGLESv2!
- DIRS = src/libGLESv2 src/libEGL
-
- libs::
- expand "$(MOZ_D3DX9_CAB)" -F:$(MOZ_D3DX9_DLL) "$(DIST)/bin"
- expand "$(MOZ_D3DCOMPILER_CAB)" -F:$(MOZ_D3DCOMPILER_DLL) "$(DIST)/bin"
-diff --git a/gfx/angle/src/compiler/preprocessor/atom.c b/gfx/angle/src/compiler/preprocessor/atom.c
---- a/gfx/angle/src/compiler/preprocessor/atom.c
-+++ b/gfx/angle/src/compiler/preprocessor/atom.c
-@@ -48,16 +48,18 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILI
-
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-
- #include "compiler/compilerdebug.h"
- #include "compiler/preprocessor/slglobals.h"
-
-+#include "../../../../../memory/mozalloc/mozalloc.h"
-+
- #undef malloc
- #undef realloc
- #undef free
-
- ///////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////// String table: //////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////////////
-
-@@ -318,31 +320,23 @@ static int AddAtomFixed(AtomTable *atabl
- */
-
- static int GrowAtomTable(AtomTable *atable, int size)
- {
- int *newmap, *newrev;
-
- if (atable->size < size) {
- if (atable->amap) {
-- newmap = realloc(atable->amap, sizeof(int)*size);
-- newrev = realloc(atable->arev, sizeof(int)*size);
-+ newmap = moz_xrealloc(atable->amap, sizeof(int)*size);
-+ newrev = moz_xrealloc(atable->arev, sizeof(int)*size);
- } else {
-- newmap = malloc(sizeof(int)*size);
-- newrev = malloc(sizeof(int)*size);
-+ newmap = moz_xmalloc(sizeof(int)*size);
-+ newrev = moz_xmalloc(sizeof(int)*size);
- atable->size = 0;
- }
-- if (!newmap || !newrev) {
-- /* failed to grow -- error */
-- if (newmap)
-- atable->amap = newmap;
-- if (newrev)
-- atable->arev = newrev;
-- return -1;
-- }
- memset(&newmap[atable->size], 0, (size - atable->size) * sizeof(int));
- memset(&newrev[atable->size], 0, (size - atable->size) * sizeof(int));
- atable->amap = newmap;
- atable->arev = newrev;
- atable->size = size;
- }
- return 0;
- } // GrowAtomTable
-diff --git a/gfx/angle/src/libEGL/Makefile.in b/gfx/angle/src/libEGL/Makefile.in
---- a/gfx/angle/src/libEGL/Makefile.in
-+++ b/gfx/angle/src/libEGL/Makefile.in
-@@ -153,8 +153,10 @@ RCFILE = $(srcdir)/libEGL.rc
- include $(topsrcdir)/config/rules.mk
-
- EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3d9.lib" \
- "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/dxguid.lib" \
- "$(DIST)/lib/libGLESv2.lib" \
- dwmapi.lib \
- delayimp.lib \
- /delayload:dwmapi.dll
-+
-+EXTRA_DSO_LDOPTS += $(MOZALLOC_LIB)
-diff --git a/gfx/angle/src/libGLESv2/Makefile.in b/gfx/angle/src/libGLESv2/Makefile.in
---- a/gfx/angle/src/libGLESv2/Makefile.in
-+++ b/gfx/angle/src/libGLESv2/Makefile.in
-@@ -162,8 +162,10 @@ CPPSRCS += \
- DEFFILE = $(srcdir)/libGLESv2.def
- RCFILE = $(srcdir)/libGLESv2.rc
-
- include $(topsrcdir)/config/rules.mk
-
- EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3d9.lib" \
- "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3dx9.lib" \
- "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/D3DCompiler.lib"
-+
-+EXTRA_DSO_LDOPTS += $(MOZALLOC_LIB)