Bug 774755 - 7/8 - ANGLE r1242: update README and local patches - no review
authorBenoit Jacob <bjacob@mozilla.com>
Wed, 25 Jul 2012 12:13:45 -0400
changeset 100458 c2c60b40fa7fc705db72242c97d49a82403d50ee
parent 100457 5e6ca15261afc5d8ac691a4576c7cc076fe9c890
child 100459 39c6cd95de2556733f758ad07ffaa1c8320e8acb
push id961
push useremorley@mozilla.com
push dateFri, 27 Jul 2012 09:40:53 +0000
treeherderfx-team@9d9d92bcab13 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs774755
milestone17.0a1
Bug 774755 - 7/8 - ANGLE r1242: update README and local patches - no review
gfx/angle/README.mozilla
gfx/angle/angle-abort-on-oom-in-preprocessor.patch
gfx/angle/angle-castrate-bug-241.patch
gfx/angle/angle-enforce-readpixels-spec.patch
gfx/angle/angle-impl-read-bgra.patch
gfx/angle/angle-intrinsic-msvc2005.patch
gfx/angle/angle-long-identifier-hash-spooky.patch
gfx/angle/angle-renaming-debug.patch
gfx/angle/angle-renaming-preprocessor-diagonostics.patch
gfx/angle/angle-renaming-preprocessor-directivehandler.patch
gfx/angle/angle-use-xmalloc.patch
--- 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)