Remove base/guid and unused example files
Change-Id: I7d4ce104918fd9148d49917cc4d6033b9a38fd38
Reviewed-on: https://gn-review.googlesource.com/1524
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
diff --git a/base/check_example.cc b/base/check_example.cc
deleted file mode 100644
index 7b9d8e6..0000000
--- a/base/check_example.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (c) 2011 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.
-
-// This file is meant for analyzing the code generated by the CHECK
-// macros in a small executable file that's easy to disassemble.
-
-#include "base/compiler_specific.h"
-#include "base/logging.h"
-
-// An official build shouldn't generate code to print out messages for
-// the CHECK* macros, nor should it have the strings in the
-// executable. It is also important that the CHECK() function collapse to the
-// same implementation as RELEASE_ASSERT(), in particular on Windows x86.
-// Historically, the stream eating caused additional unnecessary instructions.
-// See https://crbug.com/672699.
-
-#define BLINK_RELEASE_ASSERT_EQUIVALENT(assertion) \
- (UNLIKELY(!(assertion)) ? (IMMEDIATE_CRASH()) : (void)0)
-
-void DoCheck(bool b) {
- CHECK(b) << "DoCheck " << b;
-}
-
-void DoBlinkReleaseAssert(bool b) {
- BLINK_RELEASE_ASSERT_EQUIVALENT(b);
-}
-
-void DoCheckEq(int x, int y) {
- CHECK_EQ(x, y);
-}
-
-int main(int argc, const char* argv[]) {
- DoCheck(argc > 1);
- DoCheckEq(argc, 1);
- DoBlinkReleaseAssert(argc > 1);
-}
diff --git a/base/export_template.h b/base/export_template.h
deleted file mode 100644
index aac8b7c..0000000
--- a/base/export_template.h
+++ /dev/null
@@ -1,163 +0,0 @@
-// Copyright 2015 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.
-
-#ifndef BASE_EXPORT_TEMPLATE_H_
-#define BASE_EXPORT_TEMPLATE_H_
-
-// Synopsis
-//
-// This header provides macros for using FOO_EXPORT macros with explicit
-// template instantiation declarations and definitions.
-// Generally, the FOO_EXPORT macros are used at declarations,
-// and GCC requires them to be used at explicit instantiation declarations,
-// but MSVC requires __declspec(dllexport) to be used at the explicit
-// instantiation definitions instead.
-
-// Usage
-//
-// In a header file, write:
-//
-// extern template class EXPORT_TEMPLATE_DECLARE(FOO_EXPORT) foo<bar>;
-//
-// In a source file, write:
-//
-// template class EXPORT_TEMPLATE_DEFINE(FOO_EXPORT) foo<bar>;
-
-// Implementation notes
-//
-// The implementation of this header uses some subtle macro semantics to
-// detect what the provided FOO_EXPORT value was defined as and then
-// to dispatch to appropriate macro definitions. Unfortunately,
-// MSVC's C preprocessor is rather non-compliant and requires special
-// care to make it work.
-//
-// Issue 1.
-//
-// #define F(x)
-// F()
-//
-// MSVC emits warning C4003 ("not enough actual parameters for macro
-// 'F'), even though it's a valid macro invocation. This affects the
-// macros below that take just an "export" parameter, because export
-// may be empty.
-//
-// As a workaround, we can add a dummy parameter and arguments:
-//
-// #define F(x,_)
-// F(,)
-//
-// Issue 2.
-//
-// #define F(x) G##x
-// #define Gj() ok
-// F(j())
-//
-// The correct replacement for "F(j())" is "ok", but MSVC replaces it
-// with "Gj()". As a workaround, we can pass the result to an
-// identity macro to force MSVC to look for replacements again. (This
-// is why EXPORT_TEMPLATE_STYLE_3 exists.)
-
-#define EXPORT_TEMPLATE_DECLARE(export) \
- EXPORT_TEMPLATE_INVOKE(DECLARE, EXPORT_TEMPLATE_STYLE(export, ), export)
-#define EXPORT_TEMPLATE_DEFINE(export) \
- EXPORT_TEMPLATE_INVOKE(DEFINE, EXPORT_TEMPLATE_STYLE(export, ), export)
-
-// INVOKE is an internal helper macro to perform parameter replacements
-// and token pasting to chain invoke another macro. E.g.,
-// EXPORT_TEMPLATE_INVOKE(DECLARE, DEFAULT, FOO_EXPORT)
-// will export to call
-// EXPORT_TEMPLATE_DECLARE_DEFAULT(FOO_EXPORT, )
-// (but with FOO_EXPORT expanded too).
-#define EXPORT_TEMPLATE_INVOKE(which, style, export) \
- EXPORT_TEMPLATE_INVOKE_2(which, style, export)
-#define EXPORT_TEMPLATE_INVOKE_2(which, style, export) \
- EXPORT_TEMPLATE_##which##_##style(export, )
-
-// Default style is to apply the FOO_EXPORT macro at declaration sites.
-#define EXPORT_TEMPLATE_DECLARE_DEFAULT(export, _) export
-#define EXPORT_TEMPLATE_DEFINE_DEFAULT(export, _)
-
-// The "MSVC hack" style is used when FOO_EXPORT is defined
-// as __declspec(dllexport), which MSVC requires to be used at
-// definition sites instead.
-#define EXPORT_TEMPLATE_DECLARE_MSVC_HACK(export, _)
-#define EXPORT_TEMPLATE_DEFINE_MSVC_HACK(export, _) export
-
-// EXPORT_TEMPLATE_STYLE is an internal helper macro that identifies which
-// export style needs to be used for the provided FOO_EXPORT macro definition.
-// "", "__attribute__(...)", and "__declspec(dllimport)" are mapped
-// to "DEFAULT"; while "__declspec(dllexport)" is mapped to "MSVC_HACK".
-//
-// It's implemented with token pasting to transform the __attribute__ and
-// __declspec annotations into macro invocations. E.g., if FOO_EXPORT is
-// defined as "__declspec(dllimport)", it undergoes the following sequence of
-// macro substitutions:
-// EXPORT_TEMPLATE_STYLE(FOO_EXPORT, )
-// EXPORT_TEMPLATE_STYLE_2(__declspec(dllimport), )
-// EXPORT_TEMPLATE_STYLE_3(EXPORT_TEMPLATE_STYLE_MATCH__declspec(dllimport))
-// EXPORT_TEMPLATE_STYLE_MATCH__declspec(dllimport)
-// EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport
-// DEFAULT
-#define EXPORT_TEMPLATE_STYLE(export, _) EXPORT_TEMPLATE_STYLE_2(export, )
-#define EXPORT_TEMPLATE_STYLE_2(export, _) \
- EXPORT_TEMPLATE_STYLE_3( \
- EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA##export)
-#define EXPORT_TEMPLATE_STYLE_3(style) style
-
-// Internal helper macros for EXPORT_TEMPLATE_STYLE.
-//
-// XXX: C++ reserves all identifiers containing "__" for the implementation,
-// but "__attribute__" and "__declspec" already contain "__" and the token-paste
-// operator can only add characters; not remove them. To minimize the risk of
-// conflict with implementations, we include "foj3FJo5StF0OvIzl7oMxA" (a random
-// 128-bit string, encoded in Base64) in the macro name.
-#define EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA DEFAULT
-#define EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__attribute__(...) \
- DEFAULT
-#define EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec(arg) \
- EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_##arg
-
-// Internal helper macros for EXPORT_TEMPLATE_STYLE.
-#define EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport MSVC_HACK
-#define EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport DEFAULT
-
-// Sanity checks.
-//
-// EXPORT_TEMPLATE_TEST uses the same macro invocation pattern as
-// EXPORT_TEMPLATE_DECLARE and EXPORT_TEMPLATE_DEFINE do to check that they're
-// working correctly. When they're working correctly, the sequence of macro
-// replacements should go something like:
-//
-// EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
-//
-// static_assert(EXPORT_TEMPLATE_INVOKE(TEST_DEFAULT,
-// EXPORT_TEMPLATE_STYLE(__declspec(dllimport), ),
-// __declspec(dllimport)), "__declspec(dllimport)");
-//
-// static_assert(EXPORT_TEMPLATE_INVOKE(TEST_DEFAULT,
-// DEFAULT, __declspec(dllimport)), "__declspec(dllimport)");
-//
-// static_assert(EXPORT_TEMPLATE_TEST_DEFAULT_DEFAULT(
-// __declspec(dllimport)), "__declspec(dllimport)");
-//
-// static_assert(true, "__declspec(dllimport)");
-//
-// When they're not working correctly, a syntax error should occur instead.
-#define EXPORT_TEMPLATE_TEST(want, export) \
- static_assert(EXPORT_TEMPLATE_INVOKE( \
- TEST_##want, EXPORT_TEMPLATE_STYLE(export, ), export), \
- #export)
-#define EXPORT_TEMPLATE_TEST_DEFAULT_DEFAULT(...) true
-#define EXPORT_TEMPLATE_TEST_MSVC_HACK_MSVC_HACK(...) true
-
-EXPORT_TEMPLATE_TEST(DEFAULT, );
-EXPORT_TEMPLATE_TEST(DEFAULT, __attribute__((visibility("default"))));
-EXPORT_TEMPLATE_TEST(MSVC_HACK, __declspec(dllexport));
-EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
-
-#undef EXPORT_TEMPLATE_TEST
-#undef EXPORT_TEMPLATE_TEST_DEFAULT_DEFAULT
-#undef EXPORT_TEMPLATE_TEST_MSVC_HACK_MSVC_HACK
-
-#endif // BASE_EXPORT_TEMPLATE_H_
diff --git a/base/guid.cc b/base/guid.cc
deleted file mode 100644
index 2a23658..0000000
--- a/base/guid.cc
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright (c) 2012 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.
-
-#include "base/guid.h"
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "base/rand_util.h"
-#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
-
-namespace base {
-
-namespace {
-
-bool IsLowerHexDigit(char c) {
- return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f');
-}
-
-bool IsValidGUIDInternal(const base::StringPiece& guid, bool strict) {
- const size_t kGUIDLength = 36U;
- if (guid.length() != kGUIDLength)
- return false;
-
- for (size_t i = 0; i < guid.length(); ++i) {
- char current = guid[i];
- if (i == 8 || i == 13 || i == 18 || i == 23) {
- if (current != '-')
- return false;
- } else {
- if ((strict && !IsLowerHexDigit(current)) || !IsHexDigit(current))
- return false;
- }
- }
-
- return true;
-}
-
-} // namespace
-
-std::string GenerateGUID() {
- uint64_t sixteen_bytes[2];
- // Use base::RandBytes instead of crypto::RandBytes, because crypto calls the
- // base version directly, and to prevent the dependency from base/ to crypto/.
- base::RandBytes(&sixteen_bytes, sizeof(sixteen_bytes));
-
- // Set the GUID to version 4 as described in RFC 4122, section 4.4.
- // The format of GUID version 4 must be xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,
- // where y is one of [8, 9, A, B].
-
- // Clear the version bits and set the version to 4:
- sixteen_bytes[0] &= 0xffffffff'ffff0fffULL;
- sixteen_bytes[0] |= 0x00000000'00004000ULL;
-
- // Set the two most significant bits (bits 6 and 7) of the
- // clock_seq_hi_and_reserved to zero and one, respectively:
- sixteen_bytes[1] &= 0x3fffffff'ffffffffULL;
- sixteen_bytes[1] |= 0x80000000'00000000ULL;
-
- return RandomDataToGUIDString(sixteen_bytes);
-}
-
-bool IsValidGUID(const base::StringPiece& guid) {
- return IsValidGUIDInternal(guid, false /* strict */);
-}
-
-bool IsValidGUIDOutputString(const base::StringPiece& guid) {
- return IsValidGUIDInternal(guid, true /* strict */);
-}
-
-std::string RandomDataToGUIDString(const uint64_t bytes[2]) {
- return StringPrintf("%08x-%04x-%04x-%04x-%012llx",
- static_cast<unsigned int>(bytes[0] >> 32),
- static_cast<unsigned int>((bytes[0] >> 16) & 0x0000ffff),
- static_cast<unsigned int>(bytes[0] & 0x0000ffff),
- static_cast<unsigned int>(bytes[1] >> 48),
- bytes[1] & 0x0000ffff'ffffffffULL);
-}
-
-} // namespace base
diff --git a/base/guid.h b/base/guid.h
deleted file mode 100644
index 9b0eb28..0000000
--- a/base/guid.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (c) 2012 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.
-
-#ifndef BASE_GUID_H_
-#define BASE_GUID_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "base/base_export.h"
-#include "base/strings/string_piece.h"
-#include "build_config.h"
-
-namespace base {
-
-// Generate a 128-bit random GUID in the form of version 4 as described in
-// RFC 4122, section 4.4.
-// The format of GUID version 4 must be xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,
-// where y is one of [8, 9, A, B].
-// The hexadecimal values "a" through "f" are output as lower case characters.
-//
-// A cryptographically secure random source will be used, but consider using
-// UnguessableToken for greater type-safety if GUID format is unnecessary.
-BASE_EXPORT std::string GenerateGUID();
-
-// Returns true if the input string conforms to the version 4 GUID format.
-// Note that this does NOT check if the hexadecimal values "a" through "f"
-// are in lower case characters, as Version 4 RFC says onput they're
-// case insensitive. (Use IsValidGUIDOutputString for checking if the
-// given string is valid output string)
-BASE_EXPORT bool IsValidGUID(const base::StringPiece& guid);
-
-// Returns true if the input string is valid version 4 GUID output string.
-// This also checks if the hexadecimal values "a" through "f" are in lower
-// case characters.
-BASE_EXPORT bool IsValidGUIDOutputString(const base::StringPiece& guid);
-
-// For unit testing purposes only. Do not use outside of tests.
-BASE_EXPORT std::string RandomDataToGUIDString(const uint64_t bytes[2]);
-
-} // namespace base
-
-#endif // BASE_GUID_H_
diff --git a/build/gen.py b/build/gen.py
index 01fe35f..3bf6fac 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -688,7 +688,6 @@
'base/files/file_util_win.cc',
'base/files/file_win.cc',
'base/files/memory_mapped_file_win.cc',
- 'base/guid.cc',
'base/logging_win.cc',
'base/message_loop/message_pump_win.cc',
'base/native_library_win.cc',