Libmv: Yet again update to the latest version
Again brings some fixes for MSVC-2015 and keeps it easier to backport the fixes into upstream.
This commit is contained in:
parent
99da8e1ed8
commit
619946253e
Notes:
blender-bot
2023-02-14 08:19:30 +01:00
Referenced by issue #47105, Blender does build in windows with Cmake MVSC: libmv error
|
@ -277,6 +277,7 @@ if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING))
|
|||
third_party/gflags/config.h
|
||||
third_party/gflags/gflags/gflags_completions.h
|
||||
third_party/gflags/gflags/gflags_declare.h
|
||||
third_party/gflags/gflags/gflags_gflags.h
|
||||
third_party/gflags/gflags/gflags.h
|
||||
third_party/gflags/mutex.h
|
||||
third_party/gflags/util.h
|
||||
|
|
|
@ -1,3 +1,17 @@
|
|||
commit df7642b270e8e43685e9ffb404b59d7b226a9f60
|
||||
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
||||
Date: Thu Dec 31 17:56:12 2015 +0500
|
||||
|
||||
Alternative fix for missing prototype for a couple of functions
|
||||
|
||||
commit 08f685797b7d776cdaa579136c82b15ddc6ffb30
|
||||
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
||||
Date: Thu Dec 31 17:33:05 2015 +0500
|
||||
|
||||
Update GFlags to the latest upstream version
|
||||
|
||||
Makes it easier to synchronize some compiler/warning fixes.
|
||||
|
||||
commit e0ef5b09203e3906a555e6c2010f25cb667da9cd
|
||||
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
||||
Date: Thu Dec 31 16:15:59 2015 +0500
|
||||
|
@ -608,62 +622,3 @@ Date: Thu Apr 17 16:26:12 2014 +0600
|
|||
CC: jta
|
||||
|
||||
Differential Revision: https://developer.blender.org/D335
|
||||
|
||||
commit 313252083f6dfa69a93c287bed81dec616503c1b
|
||||
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
||||
Date: Tue Apr 15 18:23:38 2014 +0600
|
||||
|
||||
Fix failure of the image transform linear test
|
||||
|
||||
Mainly was caused by the flakyness of image rotation in cases
|
||||
when image has even size. The test was expecting the transform
|
||||
code to rotate the image around pixel corner, which isn't a
|
||||
common behavior in image processing applications. Rotation
|
||||
is usually done around the pixel center.
|
||||
|
||||
So now made it so RotateImage() rotates the image around the
|
||||
pixel center which gives 100% proper result for odd sized images
|
||||
(i.e. center pixel stays untouched).
|
||||
|
||||
Also made the tests to use odd image sizes which are more
|
||||
predictable by the humans. We can use even sized images in the
|
||||
tests as well but their result wouldn't be so much spectacular.
|
||||
|
||||
Another issue with the tests was caused by RescaleImageTranslation
|
||||
test which did expect things which are not happening in the
|
||||
function.
|
||||
|
||||
Reviewers: keir
|
||||
|
||||
Reviewed By: keir
|
||||
|
||||
Differential Revision: https://developer.blender.org/D463
|
||||
|
||||
commit 80d6945bf5f996b97cd41df0e422afce5e10e7f9
|
||||
Author: Sergey Sharybin <sergey.vfx@gmail.com>
|
||||
Date: Mon Apr 14 00:01:32 2014 +0600
|
||||
|
||||
Unit tests for feature detector
|
||||
|
||||
Currently covers only simplest cases with synthetic images.
|
||||
Also at this point mainly Harris detector is being testes,
|
||||
other detectors behaves a bit unexpected on synthetic images
|
||||
and this is to be investigated further.
|
||||
|
||||
Tests will be extended further later.
|
||||
|
||||
Additional change:
|
||||
|
||||
- Added constructor to Feature structure
|
||||
- Added operator << for feature for easier debug dumps.
|
||||
|
||||
TODO: Some tests are not giving the result which i was expected
|
||||
to. This is to be investigated further by finding the reference
|
||||
detector implementation. For until then keeping that tests
|
||||
commented out.
|
||||
|
||||
Reviewers: keir
|
||||
|
||||
Reviewed By: keir
|
||||
|
||||
Differential Revision: https://developer.blender.org/D316
|
||||
|
|
|
@ -141,6 +141,7 @@ third_party/gflags/gflags.cc
|
|||
third_party/gflags/gflags_completions.cc
|
||||
third_party/gflags/gflags/gflags_completions.h
|
||||
third_party/gflags/gflags/gflags_declare.h
|
||||
third_party/gflags/gflags/gflags_gflags.h
|
||||
third_party/gflags/gflags/gflags.h
|
||||
third_party/gflags/gflags_reporting.cc
|
||||
third_party/gflags/mutex.h
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
* Tue Mar 24 2014 - Andreas Schuh <andreas.schuh.84@gmail.com>
|
||||
|
||||
- gflags: version 2.1.2
|
||||
- Moved project to GitHub
|
||||
- Added GFLAGS_NAMESPACE definition to gflags_declare.h
|
||||
- Fixed issue 94: Keep "google" as primary namespace and import symbols into "gflags" namespace
|
||||
- Fixed issue 96: Fix binary ABI compatibility with gflags 2.0 using "google" as primary namespace
|
||||
- Fixed issue 97/101: Removed (patched) CMake modules and enabled C language instead
|
||||
- Fixed issue 103: Set CMake policy CMP0042 to silence warning regarding MACOS_RPATH setting
|
||||
|
||||
* Sun Mar 20 2014 - Andreas Schuh <google-gflags@googlegroups.com>
|
||||
|
||||
- gflags: version 2.1.1
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
/* #undef HAVE_FNMATCH_H */
|
||||
|
||||
// Define if you have the <shlwapi.h> header file (Windows 2000/XP).
|
||||
#undef HAVE_SHLWAPI_H
|
||||
/* #undef HAVE_SHLWAPI_H */
|
||||
|
||||
// Define if you have the strtoll function.
|
||||
#define HAVE_STRTOLL
|
||||
|
@ -58,22 +58,19 @@
|
|||
#define PACKAGE_NAME gflags
|
||||
|
||||
// Define to the full name and version of this package.
|
||||
#define PACKAGE_STRING gflags 2.1.1
|
||||
#define PACKAGE_STRING gflags 2.2.0
|
||||
|
||||
// Define to the one symbol short name of this package.
|
||||
#define PACKAGE_TARNAME gflags-2.1.1
|
||||
#define PACKAGE_TARNAME gflags-2.2.0
|
||||
|
||||
// Define to the version of this package.
|
||||
#define PACKAGE_VERSION 2.1.1
|
||||
#define PACKAGE_VERSION 2.2.0
|
||||
|
||||
// Version number of package.
|
||||
#define VERSION PACKAGE_VERSION
|
||||
|
||||
// Define to the address where bug reports for this package should be sent.
|
||||
#define PACKAGE_BUGREPORT https://code.google.com/p/gflags/issues/
|
||||
|
||||
// Namespace of gflags library symbols.
|
||||
#define GFLAGS_NAMESPACE gflags
|
||||
#define PACKAGE_BUGREPORT https://github.com/schuhschuh/gflags/issues
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Path separator
|
||||
|
|
|
@ -111,6 +111,9 @@
|
|||
#include "mutex.h"
|
||||
#include "util.h"
|
||||
|
||||
using namespace MUTEX_NAMESPACE;
|
||||
|
||||
|
||||
// Special flags, type 1: the 'recursive' flags. They set another flag's val.
|
||||
DEFINE_string(flagfile, "", "load flags from file");
|
||||
DEFINE_string(fromenv, "", "set flags from the environment"
|
||||
|
|
|
@ -94,7 +94,7 @@
|
|||
#endif
|
||||
|
||||
|
||||
namespace gflags {
|
||||
namespace GFLAGS_NAMESPACE {
|
||||
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
@ -136,7 +136,7 @@ extern GFLAGS_DLL_DECL bool RegisterFlagValidator(const std::string* flag, bool
|
|||
// Convenience macro for the registration of a flag validator
|
||||
#define DEFINE_validator(name, validator) \
|
||||
static const bool name##_validator_registered = \
|
||||
gflags::RegisterFlagValidator(&FLAGS_##name, validator)
|
||||
GFLAGS_NAMESPACE::RegisterFlagValidator(&FLAGS_##name, validator)
|
||||
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
@ -442,7 +442,7 @@ class GFLAGS_DLL_DECL FlagRegisterer {
|
|||
extern GFLAGS_DLL_DECL const char kStrippedFlagHelp[];
|
||||
|
||||
|
||||
} // namespace gflags
|
||||
} // namespace GFLAGS_NAMESPACE
|
||||
|
||||
|
||||
#ifndef SWIG // In swig, ignore the main flag declarations
|
||||
|
@ -450,7 +450,7 @@ extern GFLAGS_DLL_DECL const char kStrippedFlagHelp[];
|
|||
#if defined(STRIP_FLAG_HELP) && STRIP_FLAG_HELP > 0
|
||||
// Need this construct to avoid the 'defined but not used' warning.
|
||||
#define MAYBE_STRIPPED_HELP(txt) \
|
||||
(false ? (txt) : gflags::kStrippedFlagHelp)
|
||||
(false ? (txt) : GFLAGS_NAMESPACE::kStrippedFlagHelp)
|
||||
#else
|
||||
#define MAYBE_STRIPPED_HELP(txt) txt
|
||||
#endif
|
||||
|
@ -472,7 +472,7 @@ extern GFLAGS_DLL_DECL const char kStrippedFlagHelp[];
|
|||
/* We always want to export defined variables, dll or no */ \
|
||||
GFLAGS_DLL_DEFINE_FLAG type FLAGS_##name = FLAGS_nono##name; \
|
||||
type FLAGS_no##name = FLAGS_nono##name; \
|
||||
static gflags::FlagRegisterer o_##name( \
|
||||
static GFLAGS_NAMESPACE::FlagRegisterer o_##name( \
|
||||
#name, #type, MAYBE_STRIPPED_HELP(help), __FILE__, \
|
||||
&FLAGS_##name, &FLAGS_no##name); \
|
||||
} \
|
||||
|
@ -500,20 +500,20 @@ GFLAGS_DLL_DECL bool IsBoolFlag(bool from);
|
|||
#define DEFINE_bool(name, val, txt) \
|
||||
namespace fLB { \
|
||||
typedef ::fLB::CompileAssert FLAG_##name##_value_is_not_a_bool[ \
|
||||
(sizeof(::fLB::IsBoolFlag(val)) != sizeof(double)) ? 1 : -1]; \
|
||||
(sizeof(::fLB::IsBoolFlag(val)) != sizeof(double))? 1: -1]; \
|
||||
} \
|
||||
DEFINE_VARIABLE(bool, B, name, val, txt)
|
||||
|
||||
#define DEFINE_int32(name, val, txt) \
|
||||
DEFINE_VARIABLE(gflags::int32, I, \
|
||||
DEFINE_VARIABLE(GFLAGS_NAMESPACE::int32, I, \
|
||||
name, val, txt)
|
||||
|
||||
#define DEFINE_int64(name, val, txt) \
|
||||
DEFINE_VARIABLE(gflags::int64, I64, \
|
||||
DEFINE_VARIABLE(GFLAGS_NAMESPACE::int64, I64, \
|
||||
name, val, txt)
|
||||
|
||||
#define DEFINE_uint64(name,val, txt) \
|
||||
DEFINE_VARIABLE(gflags::uint64, U64, \
|
||||
DEFINE_VARIABLE(GFLAGS_NAMESPACE::uint64, U64, \
|
||||
name, val, txt)
|
||||
|
||||
#define DEFINE_double(name, val, txt) \
|
||||
|
@ -554,7 +554,7 @@ inline clstring* dont_pass0toDEFINE_string(char *stringspot,
|
|||
clstring* const FLAGS_no##name = ::fLS:: \
|
||||
dont_pass0toDEFINE_string(s_##name[0].s, \
|
||||
val); \
|
||||
static gflags::FlagRegisterer o_##name( \
|
||||
static GFLAGS_NAMESPACE::FlagRegisterer o_##name( \
|
||||
#name, "string", MAYBE_STRIPPED_HELP(txt), __FILE__, \
|
||||
s_##name[0].s, new (s_##name[1].s) clstring(*FLAGS_no##name)); \
|
||||
extern GFLAGS_DLL_DEFINE_FLAG clstring& FLAGS_##name; \
|
||||
|
@ -565,4 +565,9 @@ inline clstring* dont_pass0toDEFINE_string(char *stringspot,
|
|||
|
||||
#endif // SWIG
|
||||
|
||||
|
||||
// Import gflags library symbols into alternative/deprecated namespace(s)
|
||||
#include "gflags_gflags.h"
|
||||
|
||||
|
||||
#endif // GFLAGS_GFLAGS_H_
|
||||
|
|
|
@ -112,7 +112,7 @@ $ complete -o bashdefault -o default -o nospace -C \
|
|||
#ifndef GFLAGS_COMPLETIONS_H_
|
||||
#define GFLAGS_COMPLETIONS_H_
|
||||
|
||||
namespace gflags {
|
||||
namespace google {
|
||||
|
||||
extern void HandleCommandLineCompletions(void);
|
||||
|
||||
|
|
|
@ -37,12 +37,17 @@
|
|||
#ifndef GFLAGS_DECLARE_H_
|
||||
#define GFLAGS_DECLARE_H_
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Namespace of gflags library symbols.
|
||||
#define GFLAGS_NAMESPACE google
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Windows DLL import/export.
|
||||
|
||||
// We always want to import the symbols of the gflags library
|
||||
#ifndef GFLAGS_DLL_DECL
|
||||
# if 0 && defined(_MSC_VER)
|
||||
# if 1 && defined(_MSC_VER)
|
||||
# define GFLAGS_DLL_DECL __declspec(dllimport)
|
||||
# else
|
||||
# define GFLAGS_DLL_DECL
|
||||
|
@ -51,7 +56,7 @@
|
|||
|
||||
// We always want to import variables declared in user code
|
||||
#ifndef GFLAGS_DLL_DECLARE_FLAG
|
||||
# if 0 && defined(_MSC_VER)
|
||||
# ifdef _MSC_VER
|
||||
# define GFLAGS_DLL_DECLARE_FLAG __declspec(dllimport)
|
||||
# else
|
||||
# define GFLAGS_DLL_DECLARE_FLAG
|
||||
|
@ -69,7 +74,7 @@
|
|||
# include <inttypes.h> // a third place for uint32_t or u_int32_t
|
||||
#endif
|
||||
|
||||
namespace gflags {
|
||||
namespace GFLAGS_NAMESPACE {
|
||||
|
||||
#if 1 // C99
|
||||
typedef int32_t int32;
|
||||
|
@ -90,7 +95,7 @@ typedef unsigned __int64 uint64;
|
|||
# error Do not know how to define a 32-bit integer quantity on your system
|
||||
#endif
|
||||
|
||||
} // namespace gflags
|
||||
} // namespace GFLAGS_NAMESPACE
|
||||
|
||||
|
||||
namespace fLS {
|
||||
|
@ -113,13 +118,13 @@ typedef std::string clstring;
|
|||
DECLARE_VARIABLE(bool, B, name)
|
||||
|
||||
#define DECLARE_int32(name) \
|
||||
DECLARE_VARIABLE(::gflags::int32, I, name)
|
||||
DECLARE_VARIABLE(::GFLAGS_NAMESPACE::int32, I, name)
|
||||
|
||||
#define DECLARE_int64(name) \
|
||||
DECLARE_VARIABLE(::gflags::int64, I64, name)
|
||||
DECLARE_VARIABLE(::GFLAGS_NAMESPACE::int64, I64, name)
|
||||
|
||||
#define DECLARE_uint64(name) \
|
||||
DECLARE_VARIABLE(::gflags::uint64, U64, name)
|
||||
DECLARE_VARIABLE(::GFLAGS_NAMESPACE::uint64, U64, name)
|
||||
|
||||
#define DECLARE_double(name) \
|
||||
DECLARE_VARIABLE(double, D, name)
|
||||
|
|
|
@ -0,0 +1,101 @@
|
|||
// Copyright (c) 2014, Andreas Schuh
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Imports the gflags library symbols into an alternative/deprecated namespace.
|
||||
|
||||
#ifndef GFLAGS_GFLAGS_H_
|
||||
# error The internal header gflags_gflags.h may only be included by gflags.h
|
||||
#endif
|
||||
|
||||
#ifndef GFLAGS_NS_GFLAGS_H_
|
||||
#define GFLAGS_NS_GFLAGS_H_
|
||||
|
||||
|
||||
namespace gflags {
|
||||
|
||||
|
||||
using GFLAGS_NAMESPACE::int32;
|
||||
using GFLAGS_NAMESPACE::uint32;
|
||||
using GFLAGS_NAMESPACE::int64;
|
||||
using GFLAGS_NAMESPACE::uint64;
|
||||
|
||||
using GFLAGS_NAMESPACE::RegisterFlagValidator;
|
||||
using GFLAGS_NAMESPACE::CommandLineFlagInfo;
|
||||
using GFLAGS_NAMESPACE::GetAllFlags;
|
||||
using GFLAGS_NAMESPACE::ShowUsageWithFlags;
|
||||
using GFLAGS_NAMESPACE::ShowUsageWithFlagsRestrict;
|
||||
using GFLAGS_NAMESPACE::DescribeOneFlag;
|
||||
using GFLAGS_NAMESPACE::SetArgv;
|
||||
using GFLAGS_NAMESPACE::GetArgvs;
|
||||
using GFLAGS_NAMESPACE::GetArgv;
|
||||
using GFLAGS_NAMESPACE::GetArgv0;
|
||||
using GFLAGS_NAMESPACE::GetArgvSum;
|
||||
using GFLAGS_NAMESPACE::ProgramInvocationName;
|
||||
using GFLAGS_NAMESPACE::ProgramInvocationShortName;
|
||||
using GFLAGS_NAMESPACE::ProgramUsage;
|
||||
using GFLAGS_NAMESPACE::VersionString;
|
||||
using GFLAGS_NAMESPACE::GetCommandLineOption;
|
||||
using GFLAGS_NAMESPACE::GetCommandLineFlagInfo;
|
||||
using GFLAGS_NAMESPACE::GetCommandLineFlagInfoOrDie;
|
||||
using GFLAGS_NAMESPACE::FlagSettingMode;
|
||||
using GFLAGS_NAMESPACE::SET_FLAGS_VALUE;
|
||||
using GFLAGS_NAMESPACE::SET_FLAG_IF_DEFAULT;
|
||||
using GFLAGS_NAMESPACE::SET_FLAGS_DEFAULT;
|
||||
using GFLAGS_NAMESPACE::SetCommandLineOption;
|
||||
using GFLAGS_NAMESPACE::SetCommandLineOptionWithMode;
|
||||
using GFLAGS_NAMESPACE::FlagSaver;
|
||||
using GFLAGS_NAMESPACE::CommandlineFlagsIntoString;
|
||||
using GFLAGS_NAMESPACE::ReadFlagsFromString;
|
||||
using GFLAGS_NAMESPACE::AppendFlagsIntoFile;
|
||||
using GFLAGS_NAMESPACE::ReadFromFlagsFile;
|
||||
using GFLAGS_NAMESPACE::BoolFromEnv;
|
||||
using GFLAGS_NAMESPACE::Int32FromEnv;
|
||||
using GFLAGS_NAMESPACE::Int64FromEnv;
|
||||
using GFLAGS_NAMESPACE::Uint64FromEnv;
|
||||
using GFLAGS_NAMESPACE::DoubleFromEnv;
|
||||
using GFLAGS_NAMESPACE::StringFromEnv;
|
||||
using GFLAGS_NAMESPACE::SetUsageMessage;
|
||||
using GFLAGS_NAMESPACE::SetVersionString;
|
||||
using GFLAGS_NAMESPACE::ParseCommandLineNonHelpFlags;
|
||||
using GFLAGS_NAMESPACE::HandleCommandLineHelpFlags;
|
||||
using GFLAGS_NAMESPACE::AllowCommandLineReparsing;
|
||||
using GFLAGS_NAMESPACE::ReparseCommandLineNonHelpFlags;
|
||||
using GFLAGS_NAMESPACE::ShutDownCommandLineFlags;
|
||||
using GFLAGS_NAMESPACE::FlagRegisterer;
|
||||
|
||||
#ifndef SWIG
|
||||
using GFLAGS_NAMESPACE::ParseCommandLineFlags;
|
||||
#endif
|
||||
|
||||
|
||||
} // namespace gflags
|
||||
|
||||
|
||||
#endif // GFLAGS_NS_GFLAGS_H_
|
|
@ -47,6 +47,8 @@
|
|||
// 5b) Trim most flag's descriptions to fit on a single terminal line
|
||||
|
||||
|
||||
#include "gflags_completions.h"
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -344,8 +344,5 @@ class WriterMutexLock {
|
|||
|
||||
} // namespace MUTEX_NAMESPACE
|
||||
|
||||
using namespace MUTEX_NAMESPACE;
|
||||
|
||||
#undef MUTEX_NAMESPACE
|
||||
|
||||
#endif /* #define GFLAGS_MUTEX_H__ */
|
||||
|
|
|
@ -88,9 +88,10 @@ typedef unsigned char uint8;
|
|||
|
||||
// -- utility macros ---------------------------------------------------------
|
||||
|
||||
template <bool> struct CompileAssert {};
|
||||
template <bool b> struct CompileAssert;
|
||||
template <> struct CompileAssert<true> {};
|
||||
#define COMPILE_ASSERT(expr, msg) \
|
||||
typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
|
||||
enum { assert_##msg = sizeof(CompileAssert<bool(expr)>) }
|
||||
|
||||
// Returns the number of elements in an array.
|
||||
#define arraysize(arr) (sizeof(arr)/sizeof(*(arr)))
|
||||
|
|
|
@ -43,7 +43,8 @@
|
|||
#include "windows_port.h"
|
||||
|
||||
// These call the windows _vsnprintf, but always NUL-terminate.
|
||||
#if !defined(__MINGW32__) && !defined(__MINGW64__) && !(defined(_MSC_VER) && _MSC_VER >= 1900) /* mingw already defines */
|
||||
#if !defined(__MINGW32__) && !defined(__MINGW64__) /* mingw already defines */
|
||||
#if !(defined(_MSC_VER) && _MSC_VER >= 1900) /* msvc 2015 already defines */
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
|
@ -68,4 +69,5 @@ int snprintf(char *str, size_t size, const char *format, ...) {
|
|||
return r;
|
||||
}
|
||||
|
||||
#endif /* #if !defined(__MINGW32__) && !defined(__MINGW64__) && !(defined(_MSC_VER) && _MSC_VER >= 1900) */
|
||||
#endif /* if !(defined(_MSC_VER) && _MSC_VER >= 1900) */
|
||||
#endif /* #if !defined(__MINGW32__) && !defined(__MINGW64__) */
|
||||
|
|
|
@ -62,13 +62,15 @@
|
|||
* because they don't always NUL-terminate. :-( We also can't use the
|
||||
* name vsnprintf, since windows defines that (but not snprintf (!)).
|
||||
*/
|
||||
#if !defined(__MINGW32__) && !defined(__MINGW64__) && !(_MSC_VER >= 1900) /* mingw already defines */
|
||||
#if !defined(__MINGW32__) && !defined(__MINGW64__) /* mingw already defines */
|
||||
#if !(defined(_MSC_VER) && _MSC_VER >= 1900) /* msvc 2015 already defines */
|
||||
extern GFLAGS_DLL_DECL int snprintf(char *str, size_t size,
|
||||
const char *format, ...);
|
||||
extern int GFLAGS_DLL_DECL safe_vsnprintf(char *str, size_t size,
|
||||
const char *format, va_list ap);
|
||||
#define vsnprintf(str, size, format, ap) safe_vsnprintf(str, size, format, ap)
|
||||
#define va_copy(dst, src) (dst) = (src)
|
||||
#endif
|
||||
#endif /* #if !defined(__MINGW32__) && !defined(__MINGW64__) */
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
@ -107,7 +109,7 @@ inline void setenv(const char* name, const char* value, int) {
|
|||
#define unlink _unlink
|
||||
#endif
|
||||
|
||||
#if !(_MSC_VER >= 1900)
|
||||
#if !(defined(_MSC_VER) && _MSC_VER >= 1900)
|
||||
#define PRId32 "d"
|
||||
#define PRIu32 "u"
|
||||
#define PRId64 "I64d"
|
||||
|
|
|
@ -1677,7 +1677,8 @@ void LogToStderr() {
|
|||
namespace base {
|
||||
namespace internal {
|
||||
|
||||
static bool GetExitOnDFatal() {
|
||||
bool GetExitOnDFatal();
|
||||
bool GetExitOnDFatal() {
|
||||
MutexLock l(&log_mutex);
|
||||
return exit_on_dfatal;
|
||||
}
|
||||
|
@ -1692,7 +1693,8 @@ static bool GetExitOnDFatal() {
|
|||
// and the stack trace is not recorded. The LOG(FATAL) *will* still
|
||||
// exit the program. Since this function is used only in testing,
|
||||
// these differences are acceptable.
|
||||
static void SetExitOnDFatal(bool value) {
|
||||
void SetExitOnDFatal(bool value);
|
||||
void SetExitOnDFatal(bool value) {
|
||||
MutexLock l(&log_mutex);
|
||||
exit_on_dfatal = value;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue