mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-27 08:15:33 +01:00
4288bfe0f9
Given this is actually a part of the Host interface, this should be placed with it. While we're at it, turn it into an enum class so that we don't dump its contained values into the surrounding scope. We can also make Host_Message take the enum type itself directly instead of taking a general int value. After this, it'll be trivial to divide out the rest of Common.h and remove the header from the repository entirely
60 lines
1.7 KiB
C
60 lines
1.7 KiB
C
// Copyright 2008 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#if defined(__GNUC__) || __clang__
|
|
// Disable "unused function" warnings for the ones manually marked as such.
|
|
#define UNUSED __attribute__((unused))
|
|
#else
|
|
// Not sure MSVC even checks this...
|
|
#define UNUSED
|
|
#endif
|
|
|
|
#if defined _WIN32
|
|
|
|
// Memory leak checks
|
|
#define CHECK_HEAP_INTEGRITY()
|
|
|
|
// Debug definitions
|
|
#if defined(_DEBUG)
|
|
#include <crtdbg.h>
|
|
#undef CHECK_HEAP_INTEGRITY
|
|
#define CHECK_HEAP_INTEGRITY() \
|
|
{ \
|
|
if (!_CrtCheckMemory()) \
|
|
PanicAlert("memory corruption detected. see log."); \
|
|
}
|
|
// If you want to see how much a pain in the ass singletons are, for example:
|
|
// {614} normal block at 0x030C5310, 188 bytes long.
|
|
// Data: <Master Log > 4D 61 73 74 65 72 20 4C 6F 67 00 00 00 00 00 00
|
|
struct CrtDebugBreak
|
|
{
|
|
CrtDebugBreak(int spot) { _CrtSetBreakAlloc(spot); }
|
|
};
|
|
// CrtDebugBreak breakAt(614);
|
|
#endif // end DEBUG/FAST
|
|
|
|
#endif
|
|
|
|
// Windows compatibility
|
|
#ifndef _WIN32
|
|
#include <limits.h>
|
|
#define MAX_PATH PATH_MAX
|
|
|
|
#define __forceinline inline __attribute__((always_inline))
|
|
#endif
|
|
|
|
#ifdef _MSC_VER
|
|
#define __getcwd _getcwd
|
|
#define __chdir _chdir
|
|
#else
|
|
#define __getcwd getcwd
|
|
#define __chdir chdir
|
|
#endif
|
|
|
|
// Dummy macro for marking translatable strings that can not be immediately translated.
|
|
// wxWidgets does not have a true dummy macro for this.
|
|
#define _trans(a) a
|