Index: SCons/Config/gnu
--- ../release/nsis-2.17-src/SCons/Config/gnu 2006-04-28 08:54:41.000000000 -0700
+++ SCons/Config/gnu 2006-08-07 18:49:47.000000000 -0700
@@ -65,7 +65,7 @@
cross_env(stub_env)
if not defenv['DEBUG']:
- stub_env.Append(CCFLAGS = '-Os') # optimize for size
+ stub_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size
stub_env.Append(CCFLAGS = '-Wall') # all warnings
stub_env.Append(CCFLAGS = '-x c') # force compile as c
@@ -82,8 +82,8 @@
makensis_env = defenv.Copy()
if not defenv['DEBUG']:
- makensis_env.Append(CCFLAGS = '-O2') # optimize
+ makensis_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize
makensis_env.Append(CCFLAGS = '-Wall') # all warnings
conf = FlagsConfigure(makensis_env)
conf.CheckLinkFlag('$MAP_FLAG') # generate map file
@@ -97,7 +97,7 @@
cross_env(plugin_env)
if not defenv['DEBUG']:
- plugin_env.Append(CCFLAGS = '-Os') # optimize for size
+ plugin_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size
plugin_env.Append(CCFLAGS = '-Wall') # level 3 warnings
if not defenv['DEBUG']:
@@ -111,7 +111,7 @@
cp_util_env = defenv.Copy()
if not defenv['DEBUG']:
- cp_util_env.Append(CCFLAGS = '-O2') # optimize
+ cp_util_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize
cp_util_env.Append(CCFLAGS = '-Wall') # all warnings
conf = FlagsConfigure(cp_util_env)
Index: Source/build.cpp
--- ../release/nsis-2.17-src/Source/build.cpp 2006-04-14 03:05:01.000000000 -0700
+++ ./Source/build.cpp 2006-07-31 13:26:38.000000000 -0700
@@ -2384,7 +2384,7 @@
return PS_ERROR;
}
#ifdef NSIS_CONFIG_CRC_SUPPORT
- crc_writer_sink crc_sink((unsigned long *) &crc);
+ crc_writer_sink crc_sink((unsigned int *) &crc);
firstheader_writer w(&crc_sink);
w.write(&fh);
Index: Source/build.h
--- ../release/nsis-2.17-src/Source/build.h 2005-04-02 04:04:06.000000000 -0800
+++ ./Source/build.h 2006-07-31 13:28:44.000000000 -0700
@@ -38,7 +38,7 @@
#ifdef NSIS_CONFIG_CRC_SUPPORT
extern "C"
{
- unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
+ unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
};
#endif
Index: Source/crc32.c
--- ../release/nsis-2.17-src/Source/crc32.c 2004-03-12 12:43:54.000000000 -0800
+++ ./Source/crc32.c 2006-07-31 13:27:12.000000000 -0700
@@ -3,18 +3,18 @@
#ifdef NSIS_CONFIG_CRC_SUPPORT
// this is based on the (slow,small) CRC32 implementation from zlib.
-unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len)
+unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len)
{
- static unsigned long crc_table[256];
+ static unsigned int crc_table[256];
if (!crc_table[1])
{
- unsigned long c;
+ unsigned int c;
int n, k;
for (n = 0; n < 256; n++)
{
- c = (unsigned long)n;
+ c = (unsigned int)n;
for (k = 0; k < 8; k++) c = (c >> 1) ^ (c & 1 ? 0xedb88320L : 0);
crc_table[n] = c;
}
Index: Source/DialogTemplate.cpp
--- ../release/nsis-2.17-src/Source/DialogTemplate.cpp 2006-03-24 10:36:24.000000000 -0800
+++ ./Source/DialogTemplate.cpp 2006-07-31 05:48:44.000000000 -0700
@@ -93,7 +93,7 @@
if (IS_INTRESOURCE(x)) { \
*(WORD*)seeker = 0xFFFF; \
seeker += sizeof(WORD); \
- *(WORD*)seeker = ConvertEndianness(WORD(DWORD(x))); \
+ *(WORD*)seeker = ConvertEndianness(WORD(ULONG_PTR(x))); \
seeker += sizeof(WORD); \
} \
else { \
@@ -629,7 +629,7 @@
}
}
- assert((DWORD) seeker - (DWORD) pbDlg == dwSize);
+ assert((ULONG_PTR) seeker - (ULONG_PTR) pbDlg == dwSize);
// DONE!
return pbDlg;
Index: Source/exehead/fileform.c
--- ../release/nsis-2.17-src/Source/exehead/fileform.c 2005-09-09 09:08:44.000000000 -0700
+++ ./Source/exehead/fileform.c 2006-07-31 13:26:08.000000000 -0700
@@ -95,7 +95,7 @@
static z_stream g_inflate_stream;
#endif
-extern unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
+extern unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
const char * NSISCALL loadHeaders(int cl_flags)
{
Index: Source/Platform.h
--- ../release/nsis-2.17-src/Source/Platform.h 2006-05-03 08:43:54.000000000 -0700
+++ ./Source/Platform.h 2006-07-31 05:48:44.000000000 -0700
@@ -16,15 +16,15 @@
// basic types
typedef unsigned char BYTE, *PBYTE, *LPBYTE;
typedef unsigned short WORD, *LPWORD;
-typedef unsigned long DWORD, *LPDWORD;
+typedef unsigned int DWORD, *LPDWORD;
typedef short SHORT;
typedef unsigned short USHORT;
typedef unsigned int UINT;
typedef unsigned int UINT32;
typedef int INT;
typedef int INT32;
-typedef long LONG;
-typedef unsigned long ULONG;
+typedef int LONG;
+typedef unsigned int ULONG;
typedef long long INT64, LARGE_INTEGER;
typedef unsigned long long UINT64, ULARGE_INTEGER;
typedef int BOOL, *LPBOOL;
@@ -35,13 +35,14 @@
typedef const char *LPCCH, *PCSTR, *LPCSTR;
typedef unsigned short WCHAR, *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR;
typedef const unsigned short *LPCWCH, *PCWCH, *LPCWSTR, *PCWSTR;
-typedef unsigned int UINT_PTR;
+typedef unsigned long UINT_PTR;
+typedef unsigned long ULONG_PTR;
// basic stuff
typedef void * HANDLE;
-typedef unsigned long HKEY;
+typedef unsigned int HKEY;
// some gdi
-typedef unsigned long COLORREF;
-typedef unsigned long HBRUSH;
+typedef unsigned int COLORREF;
+typedef unsigned int HBRUSH;
// bool
# define FALSE 0
# define TRUE 1
@@ -129,13 +130,13 @@
#ifndef _WIN32
# ifndef FIELD_OFFSET
-# define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))
+# define FIELD_OFFSET(t,f) ((ULONG_PTR)&(((t*)0)->f))
# endif
# ifndef MAKEINTRESOURCE
# define MAKEINTRESOURCE(i) (LPSTR)((DWORD)((WORD)(i)))
# endif
# ifndef IMAGE_FIRST_SECTION
-# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (DWORD) h + \
+# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (ULONG_PTR) h + \
FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader) + \
FIX_ENDIAN_INT16(PIMAGE_NT_HEADERS(h)->FileHeader.SizeOfOptionalHeader) ) )
# endif
@@ -166,9 +167,9 @@
# define FOF_NOERRORUI 0x0400
#endif
-#ifndef ULONG_PTR
-# define ULONG_PTR DWORD
-#endif
+//#ifndef ULONG_PTR
+//# define ULONG_PTR ULONG
+//#endif
#ifndef IDC_HAND
# define IDC_HAND MAKEINTRESOURCE(32649)
Index: Source/Plugins.cpp
--- ../release/nsis-2.17-src/Source/Plugins.cpp 2006-04-05 11:42:12.000000000 -0700
+++ ./Source/Plugins.cpp 2006-07-31 06:50:08.000000000 -0700
@@ -120,8 +120,8 @@
DWORD prd = FIX_ENDIAN_INT32(sections[i].PointerToRawData);
PIMAGE_EXPORT_DIRECTORY exports = PIMAGE_EXPORT_DIRECTORY(&dlldata[0] + prd + ExportDirVA - va);
DWORD na = FIX_ENDIAN_INT32(exports->AddressOfNames);
- unsigned long *names = (unsigned long*)((unsigned long) exports + (char *) na - ExportDirVA);
- for (unsigned long j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
+ unsigned int *names = (unsigned int*)((unsigned long) exports + (char *) na - ExportDirVA);
+ for (unsigned int j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
{
const string name = string((char*)exports + FIX_ENDIAN_INT32(names[j]) - ExportDirVA);
const string signature = dllName + "::" + name;
Index: Source/ResourceEditor.cpp
--- ../release/nsis-2.17-src/Source/ResourceEditor.cpp 2006-04-05 11:40:09.000000000 -0700
+++ ./Source/ResourceEditor.cpp 2006-07-31 05:48:44.000000000 -0700
@@ -545,7 +545,7 @@
rdDir.NumberOfIdEntries = ConvertEndianness(rdDir.NumberOfIdEntries);
CopyMemory(seeker, &rdDir, sizeof(IMAGE_RESOURCE_DIRECTORY));
- crd->m_dwWrittenAt = DWORD(seeker);
+ crd->m_dwWrittenAt = ULONG_PTR(seeker);
seeker += sizeof(IMAGE_RESOURCE_DIRECTORY);
for (int i = 0; i < crd->CountEntries(); i++) {
@@ -566,7 +566,7 @@
rDirE.NameString.NameIsString = (crd->GetEntry(i)->HasName()) ? 1 : 0;
CopyMemory(seeker, &rDirE, sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY));
- crd->GetEntry(i)->m_dwWrittenAt = DWORD(seeker);
+ crd->GetEntry(i)->m_dwWrittenAt = ULONG_PTR(seeker);
seeker += sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY);
}
qDirs.pop();
@@ -582,7 +582,7 @@
rDataE.Size = ConvertEndianness(cRDataE->GetSize());
CopyMemory(seeker, &rDataE, sizeof(IMAGE_RESOURCE_DATA_ENTRY));
- cRDataE->m_dwWrittenAt = DWORD(seeker);
+ cRDataE->m_dwWrittenAt = ULONG_PTR(seeker);
seeker += sizeof(IMAGE_RESOURCE_DATA_ENTRY);
qDataEntries.pop();
@@ -594,7 +594,7 @@
while (!qStrings.empty()) {
CResourceDirectoryEntry* cRDirE = qStrings.front();
- PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(seeker) - DWORD(pbRsrcSec));
+ PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(ULONG_PTR(seeker) - ULONG_PTR(pbRsrcSec)));
char* szName = cRDirE->GetName();
WORD iLen = strlen(szName) + 1;
@@ -626,7 +626,7 @@
while (!qDataEntries2.empty()) {
CResourceDataEntry* cRDataE = qDataEntries2.front();
CopyMemory(seeker, cRDataE->GetData(), cRDataE->GetSize());
- PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(seeker - pbRsrcSec + m_dwResourceSectionVA);
+ PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(DWORD(seeker - pbRsrcSec + m_dwResourceSectionVA));
seeker += RALIGN(cRDataE->GetSize(), 8);
@@ -636,7 +636,7 @@
/*
* Set all of the directory entries offsets.
*/
- SetOffsets(m_cResDir, DWORD(pbRsrcSec));
+ SetOffsets(m_cResDir, ULONG_PTR(pbRsrcSec));
}
// Sets the offsets in directory entries
@@ -650,7 +650,7 @@
SetOffsets(resDir->GetEntry(i)->GetSubDirectory(), newResDirAt);
}
else {
- rde->OffsetToData = ConvertEndianness(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt);
+ rde->OffsetToData = ConvertEndianness(DWORD(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt));
}
}
}
@@ -758,7 +758,7 @@
// Returns -1 if can not be found
int CResourceDirectory::Find(char* szName) {
if (IS_INTRESOURCE(szName))
- return Find((WORD) (DWORD) szName);
+ return Find((WORD) (ULONG_PTR) szName);
else
if (szName[0] == '#')
return Find(WORD(atoi(szName + 1)));
@@ -836,7 +836,7 @@
if (IS_INTRESOURCE(szName)) {
m_bHasName = false;
m_szName = 0;
- m_wId = (WORD) (DWORD) szName;
+ m_wId = (WORD) (ULONG_PTR) szName;
}
else {
m_bHasName = true;
@@ -851,7 +851,7 @@
if (IS_INTRESOURCE(szName)) {
m_bHasName = false;
m_szName = 0;
- m_wId = (WORD) (DWORD) szName;
+ m_wId = (WORD) (ULONG_PTR) szName;
}
else {
m_bHasName = true;
Index: Source/ResourceEditor.h
--- ../release/nsis-2.17-src/Source/ResourceEditor.h 2006-04-28 08:54:42.000000000 -0700
+++ ./Source/ResourceEditor.h 2006-07-31 05:48:44.000000000 -0700
@@ -173,7 +173,7 @@
void Destroy();
- DWORD m_dwWrittenAt;
+ ULONG_PTR m_dwWrittenAt;
private:
IMAGE_RESOURCE_DIRECTORY m_rdDir;
@@ -197,7 +197,7 @@
CResourceDataEntry* GetDataEntry();
- DWORD m_dwWrittenAt;
+ ULONG_PTR m_dwWrittenAt;
private:
bool m_bHasName;
@@ -226,7 +226,7 @@
DWORD GetSize();
DWORD GetCodePage();
- DWORD m_dwWrittenAt;
+ ULONG_PTR m_dwWrittenAt;
private:
BYTE* m_pbData;
Index: Source/script.cpp
--- ../release/nsis-2.17-src/Source/script.cpp 2006-03-28 10:22:34.000000000 -0800
+++ ./Source/script.cpp 2006-07-31 20:56:03.000000000 -0700
@@ -4748,8 +4748,8 @@
{
struct
{
- long l;
- long h;
+ int l;
+ int h;
} words;
long long ll;
};
@@ -6075,8 +6075,8 @@
{
struct
{
- long l;
- long h;
+ int l;
+ int h;
} words;
long long ll;
};
Index: Source/util.cpp
--- ../release/nsis-2.17-src/Source/util.cpp 2006-04-28 08:54:42.000000000 -0700
+++ ./Source/util.cpp 2006-07-31 05:48:44.000000000 -0700
@@ -312,7 +312,7 @@
FIX_ENDIAN_INT32_INPLACE(rdEntry.OffsetToData);
MY_ASSERT(!rdEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
- PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot));
+ PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot));
MY_ASSERT((size_t)rdIcons - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
@@ -325,7 +325,7 @@
FIX_ENDIAN_INT32_INPLACE(icoEntry.OffsetToData);
MY_ASSERT(!icoEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
- PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot));
+ PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot));
MY_ASSERT((size_t)rd - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
@@ -334,7 +334,7 @@
MY_ASSERT(datEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
- PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + DWORD(rdRoot));
+ PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + ULONG_PTR(rdRoot));
MY_ASSERT((size_t)rde - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
@@ -355,10 +355,10 @@
}
// Set offset
- DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + DWORD(rdRoot) - dwResourceSectionVA - DWORD(exeHeader);
+ DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + ULONG_PTR(rdRoot) - dwResourceSectionVA - ULONG_PTR(exeHeader);
*(LPDWORD) seeker = FIX_ENDIAN_INT32(dwOffset);
- MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (DWORD)rdRoot - (DWORD)exeHeader, "invalid data offset - icon resource probably compressed");
+ MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (ULONG_PTR)rdRoot - (ULONG_PTR)exeHeader, "invalid data offset - icon resource probably compressed");
}
LPBYTE seeker = uninstIconData;
Index: Source/writer.cpp
--- ../release/nsis-2.17-src/Source/writer.cpp 2006-03-11 03:13:07.000000000 -0800
+++ ./Source/writer.cpp 2006-07-31 13:27:37.000000000 -0700
@@ -64,7 +64,7 @@
}
#ifdef NSIS_CONFIG_CRC_SUPPORT
-extern "C" unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
+extern "C" unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
void crc_writer_sink::write_data(const void *data, const size_t size)
{
Index: Source/writer.h
--- ../release/nsis-2.17-src/Source/writer.h 2006-03-11 03:13:07.000000000 -0800
+++ ./Source/writer.h 2006-07-31 13:27:58.000000000 -0700
@@ -57,12 +57,12 @@
#ifdef NSIS_CONFIG_CRC_SUPPORT
class crc_writer_sink : public writer_sink {
public:
- crc_writer_sink(unsigned long *crc) : m_crc(crc) {}
+ crc_writer_sink(unsigned int *crc) : m_crc(crc) {}
virtual void write_data(const void *data, const size_t size);
private:
- unsigned long *m_crc;
+ unsigned int *m_crc;
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1