mozglue/misc/StackWalk_windows.h
author Emilio Cobos Álvarez <emilio@crisal.io>
Tue, 02 Jul 2019 18:50:04 +0000
changeset 480995 6525ac41c35455512bc1b681df331a5b74cb75cc
parent 451475 7eb93bcd0ee33a56004853d12a0e0822dd168f10
child 481598 50d73bfcb2a111be4f816945d8e9eebb6d40c5e4
permissions -rw-r--r--
Bug 1562789 - SmallPointerArray should support moves, and have an IsEmpty() helper. r=froydnj This also implicitly deletes its copy-assignment operator and copy-constructor, which is great since it's a huge footgun. Differential Revision: https://phabricator.services.mozilla.com/D36549

#ifndef mozilla_StackWalk_windows_h
#define mozilla_StackWalk_windows_h

#include "mozilla/Types.h"

#if defined(_M_AMD64) || defined(_M_ARM64)
/**
 * Allow stack walkers to work around the egregious win64 dynamic lookup table
 * list API by locking around SuspendThread to avoid deadlock.
 *
 * See comment in StackWalk.cpp
 */
struct MOZ_RAII AutoSuppressStackWalking {
  MFBT_API AutoSuppressStackWalking();
  MFBT_API ~AutoSuppressStackWalking();
};

MFBT_API void RegisterJitCodeRegion(uint8_t* aStart, size_t size);

MFBT_API void UnregisterJitCodeRegion(uint8_t* aStart, size_t size);
#endif  // _M_AMD64

#endif  // mozilla_StackWalk_windows_h