update ooo310-m15
[ooovba.git] / applied_patches / 0240-typesconfig-enforce.alignment.diff
blob004fd932edbe75562034719f7bce9eb6c1b2ad3a
1 Index: typesconfig/typesconfig.c
2 ===================================================================
3 --- sal/typesconfig/typesconfig.c (.../tags/DEV300_m44/sal) (Revision 269953)
4 +++ sal/typesconfig/typesconfig.c (.../cws/cmcfixes56/sal) (Revision 269953)
5 @@ -163,20 +163,37 @@
6 |* Letzte Aenderung
7 |*
8 *************************************************************************/
9 -static int dummy(void* unused);
10 +#if defined(IA64) || defined(ARM32)
12 +int forceerror()
14 +#if defined(ARM32)
15 +// workaround for qemu-user
16 + hit = 1;
17 +#else
18 + raise (SIGBUS);
19 +#endif
20 + return 1;
23 int GetAtAddress( Type eT, void* p )
25 -#if defined(IA64) || defined(ARM32)
26 switch ( eT )
28 case t_char: return *((char*)p);
29 - case t_short: if ((long)p % sizeof(short)) abort(); else return *((short*)p);
30 - case t_int: if ((long)p % sizeof(int)) abort(); else return *((int*)p);
31 - case t_long: if ((long)p % sizeof(long)) abort(); else return *((long*)p);
32 - case t_double: if ((long)p % sizeof(double)) abort(); else return *((double*)p);
33 + case t_short: if ((long)p % sizeof(short)) return forceerror(); else return *((short*)p);
34 + case t_int: if ((long)p % sizeof(int)) return forceerror(); else return *((int*)p);
35 + case t_long: if ((long)p % sizeof(long)) return forceerror(); else return *((long*)p);
36 + case t_double: if ((long)p % sizeof(double)) return forceerror(); else return *((double*)p);
38 + abort();
41 #else
42 +static int dummy(void* unused);
44 +int GetAtAddress( Type eT, void* p )
46 switch ( eT )
48 case t_char: { char x = *(char*)p; return dummy(&x); }
49 @@ -185,7 +202,6 @@
50 case t_long: { long x = *(long*)p; return dummy(&x); }
51 case t_double: { double x = *(double*)p; return dummy(&x); }
53 -#endif
54 abort();
57 @@ -195,6 +211,7 @@
58 return 0;
61 +#endif
62 /*************************************************************************
64 |* SetAtAddress()