Changeset - r22957:2af6ade860c3
[Not reviewed]
master
0 4 0
Charles Pigott - 6 years ago 2018-06-18 20:21:45
charlespigott@googlemail.com
Codechange: Rearrange struct packing defines and make MinGW use _Pragma pack style
4 files changed with 20 insertions and 23 deletions:
0 comments (0 inline, 0 general)
src/music/dmusic.cpp
Show inline comments
 
@@ -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;
src/os/windows/win32.cpp
Show inline comments
 
@@ -805,16 +805,15 @@ int OTTDStringCompare(const char *s1, co
 
}
 

	
 
#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.
src/screenshot.cpp
Show inline comments
 
@@ -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;
src/stdafx.h
Show inline comments
 
@@ -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"
0 comments (0 inline, 0 general)