Skip to content

Commit

Permalink
GTTF: Enable tcmalloc's debugallocation on Windows.
Browse files Browse the repository at this point in the history
BUG=30715
R=jar@chromium.org, rtenneti@chromium.org

Review URL: https://codereview.chromium.org/15100010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200327 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
phajdan.jr@chromium.org committed May 15, 2013
1 parent 5e6b0fa commit 83ba8d4
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 13 deletions.
3 changes: 1 addition & 2 deletions base/allocator/allocator.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -313,8 +313,7 @@
'disable_debugallocation%': 0,
},
'conditions': [
# TODO(phajdan.jr): Also enable on Windows.
['disable_debugallocation==0 and OS!="win"', {
['disable_debugallocation==0', {
'defines': [
# Use debugallocation for Debug builds to catch problems early
# and cleanly, http://crbug.com/30715 .
Expand Down
2 changes: 1 addition & 1 deletion third_party/tcmalloc/chromium/src/config_win.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
#undef HAVE_EXECINFO_H

/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
#define HAVE_FCNTL_H 1

/* Define to 1 if you have the <features.h> header file. */
#undef HAVE_FEATURES_H
Expand Down
15 changes: 5 additions & 10 deletions third_party/tcmalloc/chromium/src/debugallocation.cc
Original file line number Diff line number Diff line change
Expand Up @@ -127,19 +127,16 @@ DEFINE_bool(symbolize_stacktrace,
EnvToBool("TCMALLOC_SYMBOLIZE_STACKTRACE", true),
"Symbolize the stack trace when provided (on some error exits)");

// If we are LD_PRELOAD-ed against a non-pthreads app, then
// pthread_once won't be defined. We declare it here, for that
// case (with weak linkage) which will cause the non-definition to
// resolve to NULL. We can then check for NULL or not in Instance.
extern "C" int pthread_once(pthread_once_t *, void (*)(void))
ATTRIBUTE_WEAK;

// ========================================================================= //

// A safe version of printf() that does not do any allocation and
// uses very little stack space.
static void TracePrintf(int fd, const char *fmt, ...)
#ifdef __GNUC__
__attribute__ ((__format__ (__printf__, 2, 3)));
#else
;
#endif

// The do_* functions are defined in tcmalloc/tcmalloc.cc,
// which is included before this file
Expand Down Expand Up @@ -624,9 +621,7 @@ class MallocBlock {
}

static void CheckForDanglingWrites(const MallocBlockQueueEntry& queue_entry) {
// Initialize the buffer if necessary.
if (pthread_once)
pthread_once(&deleted_buffer_initialized_, &InitDeletedBuffer);
perftools_pthread_once(&deleted_buffer_initialized_, &InitDeletedBuffer);
if (!deleted_buffer_initialized_no_pthreads_) {
// This will be the case on systems that don't link in pthreads,
// including on FreeBSD where pthread_once has a non-zero address
Expand Down
3 changes: 3 additions & 0 deletions third_party/tcmalloc/chromium/src/windows/port.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@

#ifdef _WIN32

#ifndef NOMINMAX
#define NOMINMAX /* Do not define min and max macros. */
#endif
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN /* We always want minimal includes */
#endif
Expand Down

0 comments on commit 83ba8d4

Please sign in to comment.