gfx/angle/angle-long-ident-hash.patch
author Thomas Zimmermann <tdz@users.sourceforge.net>
Thu, 17 Apr 2014 11:16:12 +0200
changeset 179011 7113f6dd5cdc328cdb5b017d0edd4732db5d58cd
parent 146042 356866ae2f6885933451a92aae838af00d659679
permissions -rw-r--r--
Bug 995912: Remove BLUEZ_DBUS_BASE_IFC from RawDBusConnection, r=qdot, echou This patch removes the constant BLUEZ_DBUS_BASE_IFC from the file RawDBusconnection.cpp. The constant is specific to BlueZ, and that's where it's located now.

From: Jeff Gilbert <jgilbert@mozilla.com>

diff --git a/gfx/angle/Makefile.in b/gfx/angle/Makefile.in
--- a/gfx/angle/Makefile.in
+++ b/gfx/angle/Makefile.in
@@ -32,16 +32,17 @@ LOCAL_INCLUDES += \
   -I$(srcdir)/src
 
 DEFINES += -DCOMPILER_IMPLEMENTATION
 
 VPATH += $(srcdir)/src/compiler
 VPATH += $(srcdir)/src/compiler/depgraph
 VPATH += $(srcdir)/src/compiler/timing
 VPATH += $(srcdir)/src/third_party/compiler
+VPATH += $(srcdir)/src/third_party/murmurhash
 
 # Target: 'translator_glsl'
 #   Requires: 'translator_common'
 # src/compiler:
 ifdef MOZ_ANGLE_RENDERER
 
 libs::
 ifdef MOZ_D3DCOMPILER_CAB
diff --git a/gfx/angle/moz.build b/gfx/angle/moz.build
--- a/gfx/angle/moz.build
+++ b/gfx/angle/moz.build
@@ -83,16 +83,21 @@ CPP_SOURCES += [
     'RestrictVertexShaderTiming.cpp',
 ]
 
 # src/third_party/compiler:
 CPP_SOURCES += [
     'ArrayBoundsClamper.cpp',
 ]
 
+# src/third_party/murmurhash:
+CPP_SOURCES += [
+    'MurmurHash3.cpp',
+]
+
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
     CPP_SOURCES += [
         'ossource_win.cpp',
     ]
 else:
     CPP_SOURCES += [
         'ossource_posix.cpp',
     ]
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,29 +1,39 @@
 //
 // 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 "third_party/murmurhash/MurmurHash3.h"
+
 namespace {
 
 TString mapLongName(size_t id, const TString& name, bool isGlobal)
 {
     ASSERT(name.size() > MAX_SHORTENED_IDENTIFIER_SIZE);
     TStringStream stream;
-    stream << "webgl_";
-    if (isGlobal)
-        stream << "g";
-    stream << id;
-    if (name[0] != '_')
-        stream << "_";
-    stream << name.substr(0, MAX_SHORTENED_IDENTIFIER_SIZE - stream.str().size());
+
+    uint64_t hash[2] = {0, 0};
+    MurmurHash3_x64_128(name.data(), name.length(), 0, hash);
+
+    // 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[0];
+    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()
diff --git a/gfx/angle/src/libGLESv2/moz.build b/gfx/angle/src/libGLESv2/moz.build
--- a/gfx/angle/src/libGLESv2/moz.build
+++ b/gfx/angle/src/libGLESv2/moz.build
@@ -71,16 +71,21 @@ CPP_SOURCES += [
     'RestrictVertexShaderTiming.cpp',
 ]
 
 # src/third_party/compiler:
 CPP_SOURCES += [
     'ArrayBoundsClamper.cpp',
 ]
 
+# src/third_party/murmurhash:
+CPP_SOURCES += [
+    'MurmurHash3.cpp',
+]
+
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
     CPP_SOURCES += [
         'ossource_win.cpp',
     ]
 else:
     CPP_SOURCES += [
         'ossource_posix.cpp',
     ]
@@ -165,13 +170,8 @@ CPP_SOURCES += [
     'TextureStorage11.cpp',
     'TextureStorage9.cpp',
     'VertexBuffer.cpp',
     'VertexBuffer9.cpp',
     'VertexBuffer11.cpp',
     'VertexDataManager.cpp',
     'VertexDeclarationCache.cpp',
 ]
-
-# src/third_party/murmurhash:
-CPP_SOURCES += [
-    'MurmurHash3.cpp',
-]