mirror of https://github.com/mpv-player/mpv
Fix for gcc 4 and strict-aliasing. Patch by Uoti A Urpala ( urpala () cc ! helsinki ! fi ).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15960 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
c54b5a06bd
commit
3987f2d260
|
@ -175,30 +175,26 @@ ebml_read_float (stream_t *s, uint64_t *length)
|
|||
{
|
||||
case 4:
|
||||
{
|
||||
uint32_t i;
|
||||
float *f;
|
||||
i = stream_read_dword (s);
|
||||
f = (float *) (void *) &i;
|
||||
value = *f;
|
||||
union {uint32_t i; float f;} u;
|
||||
u.i = stream_read_dword (s);
|
||||
value = u.f;
|
||||
break;
|
||||
}
|
||||
|
||||
case 8:
|
||||
{
|
||||
uint64_t i;
|
||||
double *d;
|
||||
i = stream_read_qword (s);
|
||||
d = (double *) (void *) &i;
|
||||
value = *d;
|
||||
union {uint64_t i; double d;} u;
|
||||
u.i = stream_read_qword (s);
|
||||
value = u.d;
|
||||
break;
|
||||
}
|
||||
|
||||
case 10:
|
||||
{
|
||||
uint8_t data[10];
|
||||
if (stream_read (s, data, 10) != 10)
|
||||
union {uint8_t data[10]; long double ld;} u;
|
||||
if (stream_read (s, u.data, 10) != 10)
|
||||
return EBML_FLOAT_INVALID;
|
||||
value = * (long double *) data;
|
||||
value = u.ld;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue