summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2022-09-05 11:13:36 +0000
committerMoonchild <moonchild@palemoon.org>2022-09-05 11:13:36 +0000
commitb1b57cefa34927cdf1461fd1700c88592a2ff602 (patch)
tree7b7ac1511050dfb06f315d9f4c1cca64d485e431
parent74124f150b7167b69f0f4ae6657489c5db556ad3 (diff)
parent6619e475ab51abb9417ce52f230645df18bbc2bb (diff)
downloaduxp-b1b57cefa34927cdf1461fd1700c88592a2ff602.tar.gz
Merge pull request 'Stop using deprecated ext/hash_map and FreeBSD/clang fixes.' (#2001) from dbsoft/UXP:freebsdfix into master
Reviewed-on: https://repo.palemoon.org/MoonchildProductions/UXP/pulls/2001
-rwxr-xr-xgfx/angle/src/compiler/translator/EmulateGLFragColorBroadcast.h4
-rw-r--r--ipc/chromium/src/base/file_path.h23
-rw-r--r--ipc/chromium/src/base/hash_tables.h111
-rw-r--r--ipc/chromium/src/base/id_map.h4
-rw-r--r--security/generate_mapfile.py4
5 files changed, 7 insertions, 139 deletions
diff --git a/gfx/angle/src/compiler/translator/EmulateGLFragColorBroadcast.h b/gfx/angle/src/compiler/translator/EmulateGLFragColorBroadcast.h
index 627c4c67fe..34d4b79f9f 100755
--- a/gfx/angle/src/compiler/translator/EmulateGLFragColorBroadcast.h
+++ b/gfx/angle/src/compiler/translator/EmulateGLFragColorBroadcast.h
@@ -11,10 +11,12 @@
#define COMPILER_TRANSLATOR_EMULATEGLFRAGCOLORBROADCAST_H_
#include <vector>
+// For COMPILER_EXPORT
+#include "GLSLANG/ShaderLang.h"
namespace sh
{
-struct OutputVariable;
+struct COMPILER_EXPORT OutputVariable;
}
class TIntermNode;
diff --git a/ipc/chromium/src/base/file_path.h b/ipc/chromium/src/base/file_path.h
index 42708a5241..eda2596d2d 100644
--- a/ipc/chromium/src/base/file_path.h
+++ b/ipc/chromium/src/base/file_path.h
@@ -70,7 +70,6 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
-#include "base/hash_tables.h"
// Windows-style drive letter support and pathname separator characters can be
// enabled and disabled independently, to aid testing. These #defines are
@@ -251,26 +250,4 @@ class FilePath {
#define FILE_PATH_LITERAL(x) L ## x
#endif // OS_WIN
-// Implement hash function so that we can use FilePaths in hashsets and maps.
-#if defined(COMPILER_GCC)
-namespace __gnu_cxx {
-
-template<>
-struct hash<FilePath> {
- size_t operator()(const FilePath& f) const {
- return hash<FilePath::StringType>()(f.value());
- }
-};
-
-} // namespace __gnu_cxx
-#elif defined(COMPILER_MSVC)
-namespace stdext {
-
-inline size_t hash_value(const FilePath& f) {
- return hash_value(f.value());
-}
-
-} // namespace stdext
-#endif // COMPILER
-
#endif // BASE_FILE_PATH_H_
diff --git a/ipc/chromium/src/base/hash_tables.h b/ipc/chromium/src/base/hash_tables.h
deleted file mode 100644
index 1df618f43e..0000000000
--- a/ipc/chromium/src/base/hash_tables.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-//
-// Deal with the differences between Microsoft and GNU implemenations
-// of hash_map. Allows all platforms to use |base::hash_map| and
-// |base::hash_set|.
-// eg:
-// base::hash_map<int> my_map;
-// base::hash_set<int> my_set;
-//
-
-#ifndef BASE_HASH_TABLES_H_
-#define BASE_HASH_TABLES_H_
-
-#include "build/build_config.h"
-
-#include "base/string16.h"
-
-#if defined(COMPILER_MSVC)
-#pragma push_macro("_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS")
-#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
-
-#include <hash_map>
-#include <hash_set>
-
-#pragma pop_macro("_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS")
-
-namespace base {
-using stdext::hash_map;
-using stdext::hash_set;
-}
-#elif defined(COMPILER_GCC)
-// This is a hack to disable the gcc 4.4 warning about hash_map and hash_set
-// being deprecated. We can get rid of this when we upgrade to VS2008 and we
-// can use <tr1/unordered_map> and <tr1/unordered_set>.
-#ifdef __DEPRECATED
-#define CHROME_OLD__DEPRECATED __DEPRECATED
-#undef __DEPRECATED
-#endif
-
-#include <ext/hash_map>
-#include <ext/hash_set>
-#include <string>
-
-#ifdef CHROME_OLD__DEPRECATED
-#define __DEPRECATED CHROME_OLD__DEPRECATED
-#undef CHROME_OLD__DEPRECATED
-#endif
-
-namespace base {
-using __gnu_cxx::hash_map;
-using __gnu_cxx::hash_set;
-} // namespace base
-
-namespace __gnu_cxx {
-
-// The GNU C++ library provides identiy hash functions for many integral types,
-// but not for |long long|. This hash function will truncate if |size_t| is
-// narrower than |long long|. This is probably good enough for what we will
-// use it for.
-
-#define DEFINE_TRIVIAL_HASH(integral_type) \
- template<> \
- struct hash<integral_type> { \
- std::size_t operator()(integral_type value) const { \
- return static_cast<std::size_t>(value); \
- } \
- }
-
-DEFINE_TRIVIAL_HASH(long long);
-DEFINE_TRIVIAL_HASH(unsigned long long);
-
-#undef DEFINE_TRIVIAL_HASH
-
-// Implement string hash functions so that strings of various flavors can
-// be used as keys in STL maps and sets. The hash algorithm comes from the
-// GNU C++ library, in <tr1/functional>. It is duplicated here because GCC
-// versions prior to 4.3.2 are unable to compile <tr1/functional> when RTTI
-// is disabled, as it is in our build.
-
-#define DEFINE_STRING_HASH(string_type) \
- template<> \
- struct hash<string_type> { \
- std::size_t operator()(const string_type& s) const { \
- std::size_t result = 0; \
- for (string_type::const_iterator i = s.begin(); i != s.end(); ++i) \
- result = (result * 131) + *i; \
- return result; \
- } \
- }
-
-DEFINE_STRING_HASH(std::string);
-DEFINE_STRING_HASH(std::wstring);
-
-#if defined(WCHAR_T_IS_UTF32)
-// If string16 and std::wstring are not the same type, provide a
-// specialization for string16.
-DEFINE_STRING_HASH(string16);
-#endif // WCHAR_T_IS_UTF32
-
-#undef DEFINE_STRING_HASH
-
-} // namespace __gnu_cxx
-
-#endif // COMPILER
-
-#endif // BASE_HASH_TABLES_H_
diff --git a/ipc/chromium/src/base/id_map.h b/ipc/chromium/src/base/id_map.h
index 6e15d504e7..bc69b0f041 100644
--- a/ipc/chromium/src/base/id_map.h
+++ b/ipc/chromium/src/base/id_map.h
@@ -7,8 +7,8 @@
#define BASE_ID_MAP_H__
#include "base/basictypes.h"
-#include "base/hash_tables.h"
#include "base/logging.h"
+#include <unordered_map>
// This object maintains a list of IDs that can be quickly converted to
// pointers to objects. It is implemented as a hash table, optimized for
@@ -21,7 +21,7 @@
template<class T>
class IDMap {
private:
- typedef base::hash_map<int32_t, T*> HashTable;
+ typedef std::unordered_map<int32_t, T*> HashTable;
typedef typename HashTable::iterator iterator;
public:
diff --git a/security/generate_mapfile.py b/security/generate_mapfile.py
index 71e5066e78..3ae1de8816 100644
--- a/security/generate_mapfile.py
+++ b/security/generate_mapfile.py
@@ -19,10 +19,10 @@ import buildconfig
def main(output, input):
# There's a check in old-configure.in under the system-nss handling
# that should match this.
- if buildconfig.substs['OS_ARCH'] not in ('Linux', 'SunOS', 'Darwin'):
+ if buildconfig.substs['OS_ARCH'] not in ('Linux', 'SunOS', 'Darwin', 'FreeBSD'):
print "Error: unhandled OS_ARCH %s" % buildconfig.substs['OS_ARCH']
return 1
- is_linux = buildconfig.substs['OS_ARCH'] in ('Linux', 'SunOS')
+ is_linux = buildconfig.substs['OS_ARCH'] in ('Linux', 'SunOS', 'FreeBSD')
with open(input, 'rb') as f:
for line in f: