| Index: third_party/re2/util/util.h
|
| diff --git a/third_party/re2/util/util.h b/third_party/re2/util/util.h
|
| index c59d91f2ccf85d356a39fc9012ad74543b197212..a4fdfcc936ac99577b5380216d3fe42f95a37f75 100644
|
| --- a/third_party/re2/util/util.h
|
| +++ b/third_party/re2/util/util.h
|
| @@ -9,18 +9,16 @@
|
| #include <stdio.h>
|
| #include <string.h>
|
| #include <stdint.h>
|
| -#include <stddef.h> // For size_t
|
| +#include <stddef.h> // For size_t
|
| #include <assert.h>
|
| #include <stdarg.h>
|
| -#include <time.h> // For clock_gettime, CLOCK_REALTIME
|
| -#include <ctype.h> // For isdigit, isalpha
|
| -
|
| -#if !defined(_WIN32)
|
| -#include <sys/time.h> // For gettimeofday
|
| +#ifndef WIN32
|
| +#include <sys/time.h>
|
| #endif
|
| +#include <time.h>
|
| +#include <ctype.h> // For isdigit, isalpha.
|
|
|
| // C++
|
| -#include <ctime>
|
| #include <vector>
|
| #include <string>
|
| #include <algorithm>
|
| @@ -30,6 +28,9 @@
|
| #include <ostream>
|
| #include <utility>
|
| #include <set>
|
| +
|
| +#include "build/build_config.h"
|
| +#include "base/third_party/dynamic_annotations/dynamic_annotations.h"
|
|
|
| // Use std names.
|
| using std::set;
|
| @@ -45,7 +46,7 @@
|
| using std::swap;
|
| using std::make_pair;
|
|
|
| -#if defined(__GNUC__) && !defined(USE_CXX0X) && !defined(_LIBCPP_ABI_VERSION)
|
| +#if defined(__GNUC__) && !defined(USE_CXX0X) && !defined(_LIBCPP_ABI_VERSION) && !defined(OS_ANDROID)
|
|
|
| #include <tr1/unordered_set>
|
| using std::tr1::unordered_set;
|
| @@ -53,22 +54,11 @@
|
| #else
|
|
|
| #include <unordered_set>
|
| -#if defined(_WIN32)
|
| +#if defined(WIN32) || (defined(OS_ANDROID) && !defined(_LIBCPP_ABI_VERSION))
|
| using std::tr1::unordered_set;
|
| #else
|
| using std::unordered_set;
|
| #endif
|
| -
|
| -#endif
|
| -
|
| -#ifdef _WIN32
|
| -
|
| -#define snprintf _snprintf_s
|
| -#define stricmp _stricmp
|
| -#define strtof strtod /* not really correct but best we can do */
|
| -#define strtoll _strtoi64
|
| -#define strtoull _strtoui64
|
| -#define vsnprintf vsnprintf_s
|
|
|
| #endif
|
|
|
| @@ -87,31 +77,35 @@
|
| typedef unsigned int uint;
|
| typedef unsigned short ushort;
|
|
|
| -// Prevent the compiler from complaining about or optimizing away variables
|
| -// that appear unused.
|
| -#undef ATTRIBUTE_UNUSED
|
| -#if defined(__GNUC__)
|
| -#define ATTRIBUTE_UNUSED __attribute__ ((unused))
|
| -#else
|
| -#define ATTRIBUTE_UNUSED
|
| -#endif
|
| -
|
| // COMPILE_ASSERT causes a compile error about msg if expr is not true.
|
| #if __cplusplus >= 201103L
|
| #define COMPILE_ASSERT(expr, msg) static_assert(expr, #msg)
|
| #else
|
| template<bool> struct CompileAssert {};
|
| #define COMPILE_ASSERT(expr, msg) \
|
| - typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] ATTRIBUTE_UNUSED
|
| + typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
|
| #endif
|
|
|
| -// DISALLOW_COPY_AND_ASSIGN disallows the copy and operator= functions.
|
| +// DISALLOW_EVIL_CONSTRUCTORS disallows the copy and operator= functions.
|
| // It goes in the private: declarations in a class.
|
| -#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
|
| +#define DISALLOW_EVIL_CONSTRUCTORS(TypeName) \
|
| TypeName(const TypeName&); \
|
| void operator=(const TypeName&)
|
|
|
| -#define arraysize(array) (int)(sizeof(array)/sizeof((array)[0]))
|
| +#define arraysize(array) (sizeof(array)/sizeof((array)[0]))
|
| +
|
| +// Fake lock annotations. For real ones, see
|
| +// http://code.google.com/p/data-race-test/
|
| +#ifndef ANNOTATE_PUBLISH_MEMORY_RANGE
|
| +#define ANNOTATE_PUBLISH_MEMORY_RANGE(a, b)
|
| +#define ANNOTATE_IGNORE_WRITES_BEGIN()
|
| +#define ANNOTATE_IGNORE_WRITES_END()
|
| +#define ANNOTATE_BENIGN_RACE(a, b)
|
| +#define NO_THREAD_SAFETY_ANALYSIS
|
| +#define ANNOTATE_HAPPENS_BEFORE(x)
|
| +#define ANNOTATE_HAPPENS_AFTER(x)
|
| +#define ANNOTATE_UNPROTECTED_READ(x) (x)
|
| +#endif
|
|
|
| class StringPiece;
|
|
|
| @@ -138,10 +132,17 @@
|
| return ((uint64)x << 32) | y;
|
| }
|
|
|
| -bool RunningOnValgrind();
|
| +inline bool RunningOnValgrindOrMemorySanitizer() {
|
| +#if defined(MEMORY_SANITIZER)
|
| + return true;
|
| +#else
|
| + return RunningOnValgrind();
|
| +#endif
|
| +}
|
|
|
| } // namespace re2
|
|
|
| +#include "util/arena.h"
|
| #include "util/logging.h"
|
| #include "util/mutex.h"
|
| #include "util/utf.h"
|
|
|