Apply lekensteyn's workarounds from the DMS repository to prevent compiler warnings.
This commit is contained in:
parent
a86051b319
commit
3f089117c7
2 changed files with 13 additions and 5 deletions
14
lib/amf.cpp
14
lib/amf.cpp
|
@ -267,6 +267,7 @@ AMF::Object AMF::parseOne(const unsigned char *& data, unsigned int &len, unsign
|
||||||
std::string tmpstr;
|
std::string tmpstr;
|
||||||
unsigned int tmpi = 0;
|
unsigned int tmpi = 0;
|
||||||
unsigned char tmpdbl[8];
|
unsigned char tmpdbl[8];
|
||||||
|
double *d;// hack to work around strict aliasing
|
||||||
#if DEBUG >= 10
|
#if DEBUG >= 10
|
||||||
fprintf(stderr, "Note: AMF type %hhx found. %i bytes left\n", data[i], len-i);
|
fprintf(stderr, "Note: AMF type %hhx found. %i bytes left\n", data[i], len-i);
|
||||||
#endif
|
#endif
|
||||||
|
@ -281,7 +282,8 @@ AMF::Object AMF::parseOne(const unsigned char *& data, unsigned int &len, unsign
|
||||||
tmpdbl[1] = data[i+7];
|
tmpdbl[1] = data[i+7];
|
||||||
tmpdbl[0] = data[i+8];
|
tmpdbl[0] = data[i+8];
|
||||||
i+=9;//skip 8(a double)+1 forwards
|
i+=9;//skip 8(a double)+1 forwards
|
||||||
return AMF::Object(name, *(double*)tmpdbl, AMF::AMF0_NUMBER);
|
d = (double*)tmpdbl;
|
||||||
|
return AMF::Object(name, *d, AMF::AMF0_NUMBER);
|
||||||
break;
|
break;
|
||||||
case AMF::AMF0_DATE:
|
case AMF::AMF0_DATE:
|
||||||
tmpdbl[7] = data[i+1];
|
tmpdbl[7] = data[i+1];
|
||||||
|
@ -293,7 +295,8 @@ AMF::Object AMF::parseOne(const unsigned char *& data, unsigned int &len, unsign
|
||||||
tmpdbl[1] = data[i+7];
|
tmpdbl[1] = data[i+7];
|
||||||
tmpdbl[0] = data[i+8];
|
tmpdbl[0] = data[i+8];
|
||||||
i+=11;//skip 8(a double)+1+timezone(2) forwards
|
i+=11;//skip 8(a double)+1+timezone(2) forwards
|
||||||
return AMF::Object(name, *(double*)tmpdbl, AMF::AMF0_DATE);
|
d = (double*)tmpdbl;
|
||||||
|
return AMF::Object(name, *d, AMF::AMF0_DATE);
|
||||||
break;
|
break;
|
||||||
case AMF::AMF0_BOOL:
|
case AMF::AMF0_BOOL:
|
||||||
i+=2;//skip bool+1 forwards
|
i+=2;//skip bool+1 forwards
|
||||||
|
@ -609,6 +612,7 @@ AMF::Object3 AMF::parseOne3(const unsigned char *& data, unsigned int &len, unsi
|
||||||
unsigned int tmpi = 0;
|
unsigned int tmpi = 0;
|
||||||
unsigned int arrsize = 0;
|
unsigned int arrsize = 0;
|
||||||
unsigned char tmpdbl[8];
|
unsigned char tmpdbl[8];
|
||||||
|
double *d;// hack to work around strict aliasing
|
||||||
#if DEBUG >= 10
|
#if DEBUG >= 10
|
||||||
fprintf(stderr, "Note: AMF3 type %hhx found. %i bytes left\n", data[i], len-i);
|
fprintf(stderr, "Note: AMF3 type %hhx found. %i bytes left\n", data[i], len-i);
|
||||||
#endif
|
#endif
|
||||||
|
@ -654,7 +658,8 @@ AMF::Object3 AMF::parseOne3(const unsigned char *& data, unsigned int &len, unsi
|
||||||
tmpdbl[1] = data[i+7];
|
tmpdbl[1] = data[i+7];
|
||||||
tmpdbl[0] = data[i+8];
|
tmpdbl[0] = data[i+8];
|
||||||
i+=9;//skip 8(a double)+1 forwards
|
i+=9;//skip 8(a double)+1 forwards
|
||||||
return AMF::Object3(name, *(double*)tmpdbl, AMF::AMF3_DOUBLE);
|
d = (double*)tmpdbl;
|
||||||
|
return AMF::Object3(name, *d, AMF::AMF3_DOUBLE);
|
||||||
break;
|
break;
|
||||||
case AMF::AMF3_STRING:
|
case AMF::AMF3_STRING:
|
||||||
if (data[i+1] < 0x80){
|
if (data[i+1] < 0x80){
|
||||||
|
@ -809,8 +814,9 @@ AMF::Object3 AMF::parseOne3(const unsigned char *& data, unsigned int &len, unsi
|
||||||
tmpdbl[2] = data[i+5];
|
tmpdbl[2] = data[i+5];
|
||||||
tmpdbl[1] = data[i+6];
|
tmpdbl[1] = data[i+6];
|
||||||
tmpdbl[0] = data[i+7];
|
tmpdbl[0] = data[i+7];
|
||||||
|
d = (double*)tmpdbl;
|
||||||
i += 8;//skip a double forwards
|
i += 8;//skip a double forwards
|
||||||
return AMF::Object3(name, *(double*)tmpdbl, AMF::AMF3_DATE);
|
return AMF::Object3(name, *d, AMF::AMF3_DATE);
|
||||||
break;
|
break;
|
||||||
case AMF::AMF3_ARRAY:{
|
case AMF::AMF3_ARRAY:{
|
||||||
if (data[i+1] < 0x80){
|
if (data[i+1] < 0x80){
|
||||||
|
|
|
@ -406,6 +406,7 @@ std::string DTSC::DTMI::Pack(bool netpack){
|
||||||
DTSC::DTMI DTSC::parseOneDTMI(const unsigned char *& data, unsigned int &len, unsigned int &i, std::string name){
|
DTSC::DTMI DTSC::parseOneDTMI(const unsigned char *& data, unsigned int &len, unsigned int &i, std::string name){
|
||||||
unsigned int tmpi = 0;
|
unsigned int tmpi = 0;
|
||||||
unsigned char tmpdbl[8];
|
unsigned char tmpdbl[8];
|
||||||
|
uint64_t * d;// hack to work around strict aliasing
|
||||||
#if DEBUG >= 10
|
#if DEBUG >= 10
|
||||||
fprintf(stderr, "Note: AMF type %hhx found. %i bytes left\n", data[i], len-i);
|
fprintf(stderr, "Note: AMF type %hhx found. %i bytes left\n", data[i], len-i);
|
||||||
#endif
|
#endif
|
||||||
|
@ -420,7 +421,8 @@ DTSC::DTMI DTSC::parseOneDTMI(const unsigned char *& data, unsigned int &len, un
|
||||||
tmpdbl[1] = data[i+7];
|
tmpdbl[1] = data[i+7];
|
||||||
tmpdbl[0] = data[i+8];
|
tmpdbl[0] = data[i+8];
|
||||||
i+=9;//skip 8(an uint64_t)+1 forwards
|
i+=9;//skip 8(an uint64_t)+1 forwards
|
||||||
return DTSC::DTMI(name, *(uint64_t*)tmpdbl, DTMI_INT);
|
d = (uint64_t*)tmpdbl;
|
||||||
|
return DTSC::DTMI(name, *d, DTMI_INT);
|
||||||
break;
|
break;
|
||||||
case DTMI_STRING:{
|
case DTMI_STRING:{
|
||||||
tmpi = data[i+1]*256*256*256+data[i+2]*256*256+data[i+3]*256+data[i+4];//set tmpi to UTF-8-long length
|
tmpi = data[i+1]*256*256*256+data[i+2]*256*256+data[i+3]*256+data[i+4];//set tmpi to UTF-8-long length
|
||||||
|
|
Loading…
Add table
Reference in a new issue