diff --git a/src/File.cpp b/src/File.cpp index 6457625e263bd037f300bd0f10cce7de145ae1be..a2410796526f2163eb69d385fad5ec7a40f656ad 100644 --- a/src/File.cpp +++ b/src/File.cpp @@ -222,7 +222,7 @@ long File::getpos() bool File::memBookmarkPos() { - if((bookmarkPos = ftell(fp)) != (dword) -1) + if((bookmarkPos = ftell(fp)) != -1) return true; else return false; diff --git a/src/PartOfPacket.cpp b/src/PartOfPacket.cpp index 7673ad36158a92f9a1487f369806908d264cf372..1756cda8457e7c2a2a66f6ac7df208cf25cd13bc 100644 --- a/src/PartOfPacket.cpp +++ b/src/PartOfPacket.cpp @@ -506,7 +506,7 @@ double PartOfPacket::getFieldValue_64f(word index) //TODO throw new PacketException("The getFieldValue_64f() does not work in a 32 bit operating system"); } - + union u_tag { /// 64 bit for 64 bit os) @@ -514,7 +514,11 @@ double PartOfPacket::getFieldValue_64f(word index) /// 64 bit double precision double d; } u; + +#ifdef __x86_64__ u.i = (unsigned long) ( (unsigned long) getFieldValue(index) << (48)) | ( (unsigned long) getFieldValue(index + 1) << (32)) | ( (unsigned long) getFieldValue(index + 2) << (16)) | ( (unsigned long) getFieldValue(index + 3) ); +#endif + return u.d; } @@ -541,7 +545,8 @@ void PartOfPacket::setFieldValue_64f(word index, double value) //TODO throw new PacketException("The getFieldValue_64f() does not work in a 32 bit operating system"); } - + +#if __x86_64__ union u_tag { /// 64 bit for 64 bit os) @@ -560,6 +565,7 @@ void PartOfPacket::setFieldValue_64f(word index, double value) setFieldValue(index + 2, w); w = (word)(0xFFFF & u.i); setFieldValue(index + 3, w); +#endif } signed long PartOfPacket::getFieldValue_32i(word index)