mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-01-19 13:41:11 +00:00
Codechange: Rearrange struct packing defines and make MinGW use _Pragma pack style
This commit is contained in:
parent
93469a92f2
commit
63898f61b0
@ -102,21 +102,19 @@ private:
|
||||
bool ReadDLSWave(FILE *f, DWORD list_length, long offset);
|
||||
};
|
||||
|
||||
#pragma pack(2)
|
||||
/** A RIFF chunk header. */
|
||||
struct ChunkHeader {
|
||||
PACK_N(struct ChunkHeader {
|
||||
FOURCC type; ///< Chunk type.
|
||||
DWORD length; ///< Length of the chunk, not including the chunk header itself.
|
||||
};
|
||||
}, 2);
|
||||
|
||||
/** Buffer format for a DLS wave download. */
|
||||
struct WAVE_DOWNLOAD {
|
||||
PACK_N(struct WAVE_DOWNLOAD {
|
||||
DMUS_DOWNLOADINFO dlInfo;
|
||||
ULONG ulOffsetTable[2];
|
||||
DMUS_WAVE dmWave;
|
||||
DMUS_WAVEDATA dmWaveData;
|
||||
};
|
||||
#pragma pack()
|
||||
}, 2);
|
||||
|
||||
struct PlaybackSegment {
|
||||
uint32 start, end;
|
||||
|
@ -805,16 +805,15 @@ int OTTDStringCompare(const char *s1, const char *s2)
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* Code from MSDN: https://msdn.microsoft.com/en-us/library/xcb2z8hs.aspx */
|
||||
/* Based on code from MSDN: https://msdn.microsoft.com/en-us/library/xcb2z8hs.aspx */
|
||||
const DWORD MS_VC_EXCEPTION = 0x406D1388;
|
||||
#pragma pack(push,8)
|
||||
typedef struct {
|
||||
|
||||
PACK_N(struct THREADNAME_INFO {
|
||||
DWORD dwType; ///< Must be 0x1000.
|
||||
LPCSTR szName; ///< Pointer to name (in user addr space).
|
||||
DWORD dwThreadID; ///< Thread ID (-1=caller thread).
|
||||
DWORD dwFlags; ///< Reserved for future use, must be zero.
|
||||
} THREADNAME_INFO;
|
||||
#pragma pack(pop)
|
||||
}, 8);
|
||||
|
||||
/**
|
||||
* Signal thread name to any attached debuggers.
|
||||
|
@ -71,23 +71,16 @@ struct ScreenshotFormat {
|
||||
/*************************************************
|
||||
**** SCREENSHOT CODE FOR WINDOWS BITMAP (.BMP)
|
||||
*************************************************/
|
||||
#if defined(_MSC_VER) || defined(__WATCOMC__)
|
||||
#pragma pack(push, 1)
|
||||
#endif
|
||||
|
||||
/** BMP File Header (stored in little endian) */
|
||||
struct BitmapFileHeader {
|
||||
PACK(struct BitmapFileHeader {
|
||||
uint16 type;
|
||||
uint32 size;
|
||||
uint32 reserved;
|
||||
uint32 off_bits;
|
||||
} GCC_PACK;
|
||||
});
|
||||
assert_compile(sizeof(BitmapFileHeader) == 14);
|
||||
|
||||
#if defined(_MSC_VER) || defined(__WATCOMC__)
|
||||
#pragma pack(pop)
|
||||
#endif
|
||||
|
||||
/** BMP Info Header (stored in little endian) */
|
||||
struct BitmapInfoHeader {
|
||||
uint32 size;
|
||||
|
13
src/stdafx.h
13
src/stdafx.h
@ -133,7 +133,6 @@
|
||||
#define NORETURN __attribute__ ((noreturn))
|
||||
#define CDECL
|
||||
#define __int64 long long
|
||||
#define GCC_PACK __attribute__((packed))
|
||||
/* Warn about functions using 'printf' format syntax. First argument determines which parameter
|
||||
* is the format string, second argument is start of values passed to printf. */
|
||||
#define WARN_FORMAT(string, args) __attribute__ ((format (printf, string, args)))
|
||||
@ -158,7 +157,6 @@
|
||||
#if defined(__WATCOMC__)
|
||||
#define NORETURN
|
||||
#define CDECL
|
||||
#define GCC_PACK
|
||||
#define WARN_FORMAT(string, args)
|
||||
#define FINAL
|
||||
#define FALLTHROUGH
|
||||
@ -224,7 +222,6 @@
|
||||
#endif
|
||||
|
||||
#define CDECL _cdecl
|
||||
#define GCC_PACK
|
||||
#define WARN_FORMAT(string, args)
|
||||
#define FINAL sealed
|
||||
|
||||
@ -303,6 +300,16 @@
|
||||
#define PATHSEPCHAR '/'
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) || defined(__WATCOMC__)
|
||||
# define PACK_N(type_dec, n) __pragma(pack(push, n)) type_dec; __pragma(pack(pop))
|
||||
#elif defined(__MINGW32__)
|
||||
# define PRAGMA(x) _Pragma(#x)
|
||||
# define PACK_N(type_dec, n) PRAGMA(pack(push, n)) type_dec; PRAGMA(pack(pop))
|
||||
#else
|
||||
# define PACK_N(type_dec, n) type_dec __attribute__((__packed__, aligned(n)))
|
||||
#endif
|
||||
#define PACK(type_dec) PACK_N(type_dec, 1)
|
||||
|
||||
/* MSVCRT of course has to have a different syntax for long long *sigh* */
|
||||
#if defined(_MSC_VER) || defined(__MINGW32__)
|
||||
#define OTTD_PRINTF64 "%I64d"
|
||||
|
Loading…
Reference in New Issue
Block a user