Added some assertions to track down a win32/pe unpack problem which

shows up on 64-bit machines.
This commit is contained in:
Markus F.X.J. Oberhumer
2006-06-22 16:47:10 +02:00
parent 83c5727698
commit 4c5b1a6ff4
2 changed files with 3 additions and 0 deletions
+1
View File
@@ -2388,6 +2388,7 @@ void PackW32Pe::rebuildImports(upx_byte *& extrainfo)
const unsigned ilen = strlen(++p) + 1;
if (inamespos)
{
assert(oimpdlls != NULL); // FIXME
if (ptr_diff(importednames,oimpdlls) & 1)
importednames -= 1;
omemcpy(importednames + 2, p, ilen);
+2
View File
@@ -69,6 +69,7 @@ template <class T>
inline int ptr_diff(const T *p1, const T *p2)
{
COMPILE_TIME_ASSERT(sizeof(T) == 1)
assert(p1 != NULL); assert(p2 != NULL);
ptrdiff_t d = (const char*) p1 - (const char*) p2;
assert((int)d == d);
return (int) d;
@@ -76,6 +77,7 @@ inline int ptr_diff(const T *p1, const T *p2)
#endif
inline int ptr_diff(const void *p1, const void *p2)
{
assert(p1 != NULL); assert(p2 != NULL);
ptrdiff_t d = (const char*) p1 - (const char*) p2;
assert((int)d == d);
return (int) d;